路線バス運転シミュレータ開発記

OMSIを使って路線バスの運転シミュレータを製作しています。備忘録的にゆるーく書いていきたいと思いますので、お付き合いいただければ幸いです。

交差点を左側通行にする

前回はスプライン(道路)を左側通行にする方法について書きましたが、交差点も左側通行にしなければ、AI Carが交差点に進入した瞬間に消えてしまう現象が起きます。
そこで試行錯誤の結果、以下の方法で左側通行にできることがわかりましたので書いておきます。
ただしこれはあくまで海外の配布オブジェクトを流用するためのテクニックみたいなもので、すべてのパスを削除して作り直すのが本来あるべき姿といえます。

 1)交差点を編集する前に、交差点に接続する予定のスプライン(sliファイル)をあらかじめSimpleSplineCreatorなどで左側通行に修正しておきます。

2)以下のサイトを開き、"OMSI 1+2 SDK-Tools"の"SDK-Tools"をクリックしてSDKをダウンロードする。
https://forum.omnibussimulator.de/forum/index.php?thread/27441-de-en-omsi-download-links-doku-sdk-sdk-tools-din-fonts/

3)zipを展開して、OMSIフォルダ直下にあるqtintf.dllとqtintf70.dllを展開後のフォルダにコピーします。

4)OmsiObjEditP.exeを起動し、編集する交差点(scoファイル)を開きます。

f:id:poplar1930:20210618074347p:plain

5)[Spline Templates]タブを開いて、インデックスごとに1)で修正したスプラインをロードします。すべてのインデックスにスプラインの割り当てが完了したら、[Path Edit]タブに戻ります。このテンプレートを適用することによってスプラインと交差点との接続状況がわかります。

6)[Index]を0から順にすべて見ていき、[Type]が"Street"となっているものがあったら、[Direction]を"Reverse"にします。これで車両は画面に表示されている矢印とは逆方向に移動するようになります。
なお、交差点でカーブするパスについては[Blinker]に"Left"あるいは"Right"の値が入っているかと思いますが、進行方向が逆になるので、曲がる方向も逆になり、元々の値とは逆の値をセットしてください。
交差点内で直進するパスについては[Blinker]が"Straight"にセットされていますが、"No"との違いがよくわからないのでそのままにしておきます。

7)次に交差点に進入あるいは進出する部分の短いパスがあるかと思いますが、進行方向が変わっているためそれぞれ[Traffic Lgts]を設定しなおす必要があります。
これは交差点に進入あるいは進出する際にどの信号機を参照してAI Carを制御するか決めるもので、"Main"に設定したとすると、AI Carはそのパスにいる間にMain側の信号機が変化するとそれに応じて発進したり停止したりします。
基本的に交差点に進入するパスは信号機を見なければなりませんので、[Traffic Lgts]を適切なものに設定し、交差点を進出するパスは[Traffic Lgts]を"<none>"に設定します。また、交差点内のパスについても信号機が変化したからといって交差点内で立ち往生されてしまうと困るので[Traffic Lgts]を"<none>"に設定します。

※実はこの設定をしていなくて、AI Carが交差点の途中で止まってしまう(=進出するパスで信号機を見てしまっている)現象が発生してしまい、結構悩みました。

8)以上で基本的な設定は完了ですが、外国仕様の信号機だと「緑→黄→赤→黄→緑」となっている場合がありますので、[Traffic Lights]-[Edit]から確認して必要に応じて国内仕様の「緑→黄→赤」に変更し、保存して終了です。