SDK Manual - Map Editor

Last-modified: 2016-04-25 (月) 17:44:09

初めに

我々は辞典のような技術ハンドブックを目指そうとしました。しかしOMSIの複雑さが増すに連れて、難度の低いものから高いものまでトピックごとに一歩一歩解説するほうが有用ではないかと気付き、チュートリアルのようなドキュメントを作成するのが一番だと考えました。

 

当然、チュートリアルとリファレンスブックの両方があればベストですが、我々にはあまりに多くの仕事になります。

 

そういうわけでチュートリアルドキュメントをお届けします――が、検索機能で特別なキーワードを探すこともできます!

 

この技術ドキュメントには誤字脱字、文法ミスの可能性があることをお断りしておきます ―― もし間違いを見つけたら、そっと飲み込んでね!

レッスン1: シーナリーオブジェクトとスプライン

OMSIのマップ編集の基本をマップエディターで学びましょう。OMSIにはマップの数に明確な制約はありません。それぞれのマップはそれ自身で閉ざされます。マップから他のマップへ運転していくことはできません。

1.1. 既存のマップをコピーする

マップのコピーを作るには、OMSIをインストールしたディレクトリを開きます。効率のいいやり方として、デスクトップのOMSIアイコンを右クリックして"プロパティ"を選択してください。

 

Manual_SDK_1_EN_01.jpg

 

「ファイルの場所を開く...」をクリックすれば、これでOMSIのディレクトリが開きます。

 

「maps」サブディレクトリにOMSIのマップが収められています。「Grundorf」ディレクトリをコピーします。コピーしたものを例えば「My_Map」とリネームします。

 

これでディレクトリ名は変更できましたが ―― しかしマップそれ自体の名前はまだ「Grundorf」です。これを変更しましょう。

 

「My_Map」ディレクトリへ移動します。ここにはマップを記述したすべてのファイルが見られます。そこで最も重要なファイルが「global.cfg」で、これにはマップのグローバルなプロパティが全て含まれます。

 

このファイルをWindowsのメモ帳などのテキストエディターで開きます。OMSIのほとんどのファイル形式はメモ帳で編集できます。Windowsはこのファイル形式を知らないので、メモ帳で開くようにWindowsに知らせる必要があります。

 

ファイルをダブルクリックします。次のウインドウがポップアップし、赤で囲ったオプションを選択して"OK"をクリックします。

 

Manual_SDK_1_EN_02.jpg

 

すると次のウインドウがポップアップします。

 

Manual_SDK_1_EN_03.jpg

 

「メモ帳」を選択し、「このファイルタイプは常にこのプログラムで開く」のチェックボックスにチェックを入れ、「OK」で確定します。これでWindowsはこのファイルタイプを常にメモ帳で開くようになります。

 

これでこのファイルのウインドウが開きます。

 

Manual_SDK_1_EN_04.jpg

 

キーワード "[name]" と "[friendlyname]" が見えるでしょう。それぞれの行を「Grundorf」から「My_Map」に変更してください。
(※訳注: 「global_***.dcs」ファイルがあれば [friendlyname] と [Description] はその内容で上書きされます。)

 

Manual_SDK_1_EN_05.png

 

ファイルを保存して閉じてください。

 

OMSIマップエディターを起動します(※訳注: マップエディターの開き方はツールを参照してください)。最初に「Would you like to continue, where you have stopped last 17:43:54」(前回終了した場所から続けますか?)と毎回聞かれますが、新しいマップを選択するために「Nein」(No) をクリックしてください。

 

するとダイアログが開くので、「My_Map」ディレクトリを開き 「global.cfg」 をダブルクリックします。

 

これでエディターはGrundorfをコピーしたマップを開くので、我々は最初のレッスンとしてこのマップを編集してみましょう。

 

Manual_SDK_1_EN_06.jpg

 

視点の操作はOMSIでのマップビューカメラと同じです。マップの全てを見回すことができます。全てのガイダンスオブジェクトといくつかのヘルパーオブジェクトも見ることができ、これはマップエディターだけに表示されます。

1.2. シーナリーオブジェクトを配置する

シーナリーオブジェクトの追加と移動と削除は簡単で、かつ最重要な操作です。あらゆるシーナリーオブジェクトは、マップエディターに配置する最小単位、例えば雑木や建物や交通標識などです。

 

それではカメラをマップの空けた場所、例えば矢印で示された場所に移動しましょう。

 

Manual_SDK_1_EN_07.jpg

 

マップエディターのウィンドウ右端にはいくつかのタブがあり、それぞれ別の編集モードになります。どれかを選ぶとそれに応じてエディターはモードを変更します。

 

シーナリーオブジェクトを編集するため「Objects」タブを開きます。

 

Manual_SDK_1_EN_08.jpg

 

一番上にはドロップダウンリストがあり、現在のタイルの中で使用されている特定のオブジェクトを検索できます。通常この機能は必要ありませんが、「見失った」オブジェクトを探すことができます。

 

真下にはシーナリーオブジェクトタイプのツリービューがあります。

 

重要: エディターを起動した直後、ここにはマップで利用されているオブジェクトが表示されています!しかしもちろん、「Load」をクリックしてオブジェクトを追加することができ(そこで望みのオブジェクトを探す)、あるいは「Load all!」をクリックしてインストールされた全てのオブジェクトがツリービューに追加されます。
(※訳注: 現バージョンは「Load Directory!」に置き換えられている。)

 

しかしここでは必要ありません。我々は既にツリービューに追加されているオブジェクトだけを使いましょう。

 

下のエリアには現在選択されているオブジェクトの様々なプロパティが表示されます。しかし今はまだ何も選択されていない状態です。

 

それではスクリーンショットのように「High Rise-05」オブジェクトタイプを選択してください。そして[N]キー("New")を押し、3Dビューでマウスを動かしましょう!

 

Manual_SDK_1_EN_09.jpg

 

カーソルの動きに従ってオブジェクトが動きます!左クリックするか[Enter]を押すとオブジェクトが設置されます。

 

すると右側のプロパティが数値で埋められます!

 

ここには例えば正確な座標や回転角度を数値で入力できます。例: 「rot」フィールドに90を入力すると文字は青くなり、これはまだ確定していない状態です![Enter]を押して確定します。するとオブジェクトは垂直軸に沿って90°回転します。

 

Manual_SDK_1_EN_10.jpg

 

同様にして3種類の座標も変更することができます。

 

もちろん移動や回転はマウスでも行うことができます。オブジェクトを好きなように[G]("Grab")で掴んで[R]("Rotation")で回転できます。そして[Enter]か左クリックして確定、または[Esc]でキャンセルできます。

 

重要: ほとんどの場合、z位置は地面との相対高度です。しかし一部のオブジェクト(交差点や橋)は絶対的な(マップのゼロレベルからの)高さが必要です。

 

オブジェクトが選択中だと赤くマークされます。選択を解除したい場合はオブジェクトのない場所をクリックします。再び選択したいときはオブジェクトをクリックします ―― 選択されていないオブジェクトにカーソルをホバーリングすると青く表示されます。

 

オブジェクトの選択中はツリービューで他の種類をクリックして種類を変更できます。

 

[Del]キーを押してオブジェクトを削除できます。

 

重要: オブジェクトの選択中に[N]キーを押した場合は少々異なります!この場合、現在の選択オブジェクトがコピーされ、同じ高さの同じ回転角度の同じプロパティを持った新しいオブジェクトが作られます。

1.3. 樹木

若干の例外は別として、多くの樹木には特別なプロパティがあり、ここでデモンストレーションしましょう。

 

オブジェクトを何も選択していないことを確認し、「Trees LQ \ Decidous \ Medium Size \ Tree Medium 01」を選択します。ではこの樹木オブジェクトを置いてみましょう。

 

Manual_SDK_1_EN_11.jpg

 

木の根本にあるちょうど小さな緑のボックスがオブジェクトそれ自体です。これを選択し、掴み、回転させ、削除することができます。樹木それ自身は選択することはできません。

 

その理由としては、全ての樹木はパフォーマンスのため内部的にOMSIによって追加されます。第二に、様々な高さと幅の樹木をあなたが作成することができます。

 

「Option」をクリックします。テクスチャーの変更が可能で、高さと幅の比率も設定できます。

 

新しい樹木を置いたとき、値はランダムに決定されます。

 

さらに、「Random」チェックボックスを有効にすると、選択されているオブジェクトタイプのグループからランダムに新しいオブジェクトが追加されます ―― つまり[N]キーを押して左クリックするだけでランダムに樹木が配置され簡単に森を作ることができるのです!

 

Manual_SDK_1_EN_12.jpg

 

前述したように、全ての樹木が"リアル"な種類ではなく、「Chestnut 01」~「Chestnut 03」は"通常の"シーナリーオブジェクトです。が、それはまったく問題ありません!:) あなたは単に高さと幅を変更できないだけのことです。

1.4. スプライン/道路

Manual_SDK_1_EN_13.jpg

 

シーナリーオブジェクトに加えて、スプラインというものがあります。それぞれのスプラインはそのタイプによって定義されたプロファイルで構成され、直線や曲線に沿って延伸されます。このテクニックを使用して道路やガードレール、線路などを作成できます。

 

タブを「Splines」に切り換えます。このタブは「Objects」タブと似ていますが、「Load all」ボタンがありません。

 

スプラインの設置はオブジェクトの設置と同じ方法で行います。

 

「str_2spur_11m_SeeburgerStr1.sli」のプロファイルを選択し、[N]キーを押して新しいスプラインのセグメントを設置します。左クリックするとその位置で確定します。

 

Manual_SDK_1_EN_14.jpg

 

回転、高さの調整、タイプの変更、削除、プロパティの入力はシーナリーオブジェクトと同じ方法で行います。

 

もちろんスプラインをさらに成形することができます。「Length:」フィールドに「100」と入力し[Enter]を押すとスプラインの長さは100mとなります。また小数点も使えます。例えば「10.5」と入力すると10.5mの道路になります。

 

Manual_SDK_1_EN_15.jpg

 

重要: スプラインのセグメント最大長は300mです!それを超えるとグラフィックに問題が発生します(特定の視点で不可視になる、照明の不具合、衝突判定の不具合など)。

 

もちろん道路を曲げることもできます: 0以外の数値を「Radius」に入力します。正の値で右へカーブし、負の値で左へカーブします。

 

例: 「-200」と入力すると半径200mで左にカーブします。

 

Manual_SDK_1_EN_16.jpg

 

同様に勾配と傾きを入力することができます。この場合、両端それぞれに値を入力する必要があります。一つはスプラインの始点で勾配/傾斜を定義し、もう一つは終端を定義します。

 

もちろんセグメントを追加して伸ばすこともできます。

 

最後のセグメントを選択状態にし(赤くする)、[N]キーを押します。

 

Manual_SDK_1_EN_17.jpg

 

最後のセグメントに同じプロパティを持った新しいセグメントが追加されます。そしてそのプロパティを編集できます。例: Length=50、Radius=100

 

Manual_SDK_1_EN_18.jpg

 

重要: この連なりの最初のセグメントを「マスター」、それに繋がる全てのセグメントを「スレーブ」といいます。高さ(z)と方向(rot)は最初のセグメントで設定すれば、全てのスレーブはそれに従います。「前」のセグメントを変更すると「後」のセグメントがその設定に従います。

 

重要: スプライン・セグメントの連なりを新しく始めたい場合、既存のセグメントの選択を解除して[N]を押さなければなりません!

1.5. 交差点と道路

それでは交差点で道路を接続してみよう!

 

交差点はいわゆる「パス」を持つ特別なシーナリーオブジェクトです。パスはシーナリーオブジェクト(交差点など)やスプライン(道路など)の上にあり、トラフィックの進行方向を決める特定の幅を持った直線やカーブのラインです。

 

パスには車道や歩道などの異なるタイプがあります。パスは一方向または双方向で使用することができ、交通ルール(速度規制や交通優先度、ウインカーなど)を適用し、特別なトラフィック密度を持たせることができ、パスが接続ポイントを定義するので交差点や道路を精密に配置するのに使われます。

 

タブを「Traffic Rules」に切り替えてトラフィックパスを少し見てみましょう。

 

Manual_SDK_1_EN_19.jpg

 

歩道が緑、車道が茶色で表示されます(※訳注: バージョン2では白が基本色になります)。マップエディターではそれぞれのパスの幅は1mで表示されますが、実際の幅は通常異なります。

 

またパスには方向が示されていて、道路のパスは「一方行」であり、歩道のパスは「双方向」になります。

 

それでは「Object」モードに切り替えて交差点を追加しましょう。

 

オブジェクトタイプをこれまでのスプラインタイプと一致する「Crossings \ Junction Seeburger Str.」に変更します。

 

現バージョンのOMSI Editorでは交差点とスプラインの一致するペアを探すのは簡単にはいきませんから、何度か試行錯誤する必要があります。それぞれの場合に「Traffic Rules」モードで一致するか確認する必要があります!「Grundorf」マップではいくつかの標準な道路と交差点があり、それぞれは相互に互換性があります。Appendixでそれぞれのスプラインと交差点の一致するタイプを探せるでしょう。

 

[N]を押して交差点を"手元"に置きましょう。

 

Manual_SDK_1_EN_20.jpg

 

マウスで道路の端に移動してください!充分に近づけたら交差点は自動的に接続します。(※訳注: [Ctrl]キーを押しながらマウスを動かします。)

 

Manual_SDK_1_EN_21.jpg

 

しかしこの位置では意味がありませんね。上手く収まるようにもう少し交差点を右に移動する必要があります。

 

Manual_SDK_1_EN_22.jpg

 

でも交差点を"横"に回転したい場合はどうしたら?それは簡単です。望みの位置になるまで[F9]を("手元"にあるときに)押すだけです。(※訳注: [Ctrl]キーを一旦離してから[F9]を押すとノードが切り替わるので、もう一度[Ctrl]を押すと回転している。使いづらいので[Ctrl]+[R]などに設定変更するといいかもしれません)

 

Manual_SDK_1_EN_23.jpg

 

そして左クリックして確定すると、交差点はシーナリーに完全にフィットした位置に配置できます。

 

ではスプラインモードに変更し、新しいセグメントを作りましょう。同じ方法で交差点に接続します。

 

Manual_SDK_1_EN_24.jpg

 

交差点の両側へ二つの道路を100m追加します。

 

Manual_SDK_1_EN_25.jpg

 

バス停や建物、樹木がいくつかある新しいOMSIのマップがこれで作成されましたね!

 

オーケー、何か足りない...とは言えあなたはこれで素早く簡単に新しい道路網と交差点を作成することが可能になりました!

 

続けましょう:

 

左の直線道路を10mに戻し、2つ目の交差点をスクリーンショットのように置いてください。

 

Manual_SDK_1_EN_26.jpg

 

この交差点が既にあって動かせないと仮定します。道路をこれと接続するにはどうしましょう。

 

これも非常に簡単で、スプラインタブではこのための「Complete to...」機能があります。ボタンの隣のフィールドへ大きな半径2000000を入力します。そうすると半径に制限がなくなります。そして「Complete to...」をクリックし、一方のパスの端をクリックし...

 

Manual_SDK_1_EN_27.jpg

 

そしてもう一方の適切な端をクリックします(パスが違うとフィットしません!)

 

Manual_SDK_1_EN_28.jpg

 

即座に隙間がセグメントで埋められます!

 

Manual_SDK_1_EN_29.jpg

 

重要: 極端に短いセグメントが作られることがあります。これはAIトラフィックにトラブルが発生する可能性があります。これを解決するには、追加されたセグメントを一旦削除し、最初に5mの短いセグメントを作っておきます。

 

Manual_SDK_1_EN_30.jpg

 

これでいい感じの道路ができたのではないでしょうか。

 

重要: 現バージョンのマップエディターでは、現在のタイル(マップカメラの中心がそこに置かれる)に接続ポイントもなければなりません。場合によっては、接続ポイントをクリックする前に、マップビューの中心を接続ポイントの上に持ってくる必要があります。

 

どうでしょう、とても良い具合ではありませんか?

 

Manual_SDK_1_EN_31.jpg

 

※訳注: エラーの種類抜粋

Eingabe maximalradius fehlerhaft
(input maximum radius error) 最大半径のエラー
einrast-markieungen ungueltig
(snap-marks invalid) クリックしたパスが合わない
keine passende loesung gefunden
(no matching solution found) マッチングが解決できない

1.6. マップの保存

赤いヘッダーの「DESIGNMODUS***」に注目してください!この3つの星マークは「セーブの必要があります」の意味です!

 

ではメニューから「Map \ Save」をクリックするか[Ctrl]+[S]を押してセーブしてください。

1.7. エントリーポイントの追加とオブジェクトのラベル付け

あなたはこの新しいマップに訪れたい?もちろんエディターを閉じてOMSIを起動すれば何度でもテストできます ―― しかしその前に、我々は小さなヘルパーオブジェクトを追加しようと思います。

 

Manual_SDK_1_EN_32.jpg

 

オブジェクトのタイプから「Utilities \ Entrypoint for Bus」を選択して道路の近くに置きます(道路の上ではありません。そうじゃないとAI車両に追突されますよ!)

 

これはエントリーポイントと言い、バスを設置する場所に使われるのです!

 

そして名前を付けなければ!「Options...」をクリックし、

 

Manual_SDK_1_EN_33.jpg

 

青いフィールドに名前を入力しましょう!

 

重要: あなたはエントリーポイントそれぞれに同じ名前を点けることもできます!この場合、OMSIは他のバスがこれらの位置のどれかを埋めていたら、あなたのバスを最も可能性の高い場所に配置します。この状況を例えばNordspitze Bauernhofのターミナルで見ることができます。

 

Manual_SDK_1_EN_34.jpg

 

保存してエディターを閉じ、OMSIを起動させ、「My Map」を開いてあなたの新しい道路で初のテスト運転をしてみましょう!OMSIは自動的にAIトラフィックを生成して、新しい道路と交差点のパスを走っているのが見えるはずです!

 

重要: 最初にマップを訪れるまで、「Load last situation on map」のリストに選択肢が現れません。最初は「Load map without buses」から選択しなければなりません!

 

Manual_SDK_1_EN_35.jpg

レッスン2: オブジェクトの高度な編集

2.1.スプラインにオブジェクトをアタッチする

例えば街灯などを簡単に置く方法として、スプラインに沿ってオブジェクトを一列にアタッチすることができる特別な機能があります。我々はその機能を使ってみましょう。

 

オブジェクトのタイプから「German Street Side \ Lights \ Medium Neon on small whip pole」を選択し、最初に作った道路の近くに置いてください。

 

Manual_SDK_1_EN_36.jpg

 

そして「~ to Spline...」をクリックし、始点のスプラインセグメントをクリックします。そして道路の置きたい場所をクリックします。[G]キーで位置を決めます。

 

重要: あいにくMap Editorは完全に安定しているとは言えず、いくつかのバグが存在します。例えばアタッチした直後はオブジェクトが見えなくなることがあります ―― 見えなくても一旦確定し、その後に[G]キーを使って位置を決め直します。またオブジェクトの位置がまったく違っていたり、エディターがクラッシュすることもあるので、そのようなアクションを起こす前にマップの保存をするようにしてください。またできればマスターセグメントにアタッチするようにしてください。最悪のケースではこの機能の使用を控えるようにしてください。

 

Manual_SDK_1_EN_37.jpg

 

次に高さを調節しなければなりません。

 

重要: 全ての歩道の高さは0.25mです!(いくつかの非常に古い使用されないオブジェクトやスプラインだけは0.3mです)

 

では高さ(z)に「0.25」と入力して[Enter]で確定します。

 

重要: スプラインにアタッチされたオブジェクトは、スプラインを基準に回転します。これはつまり、あなたはただ回転角度を0°、90°、180°、270°のどれかで入力すればいいわけです。

 

それでは道路に沿って街灯の列を並べてみましょう!

 

「Distance:」の隣に「30」と入力し(30mごとに街灯を並べる)、「Range:」の隣に「300」と入力します(道路は明らかに300m以内なので、街灯は道路の端まで置かれる)。[Enter]で確定します。

 

Manual_SDK_1_EN_38.jpg

 

これで一つのユニットから全てのインスタンスが生成され、オブジェクトを一つ編集すれば全てに適用されます。移動したい場合は、列の最初のオブジェクトを動かしましょう。マウスで回転させることは現状不可能ですが、前述のとおり、通常必要なのは"イーブン"な値のみなので、キーボードからの入力で充分に編集できます。

 

同じ方法で他の道路に街灯を並べましょう。

2.2. オブジェクトにオブジェクトをアタッチする

前記の機能と同様に、オブジェクトを他のオブジェクトにアタッチすることもできます。これはアタッチポイントと呼ばれる場所にフィットさせます。

 

重要: これにはフィットさせる順序が大切です!常に"親"オブジェクトを作ってから"子"オブジェクトを作ります。

 

我々はデモンストレーションとして停留所でこの機能を使ってみましょう。ここで扱う停留所はインタラクティブな機能のない"普通の"シーナリーオブジェクトです!後にインタラクティブな停留所をどのように置くかを学べます。

 

まず第一に、時刻表とネームプレートのあるバス停フラッグを置きます(タイプ: 「German Street Side \ BVG \ Bus Stop with name plate and 1 timetable」)

 

Manual_SDK_1_EN_39.jpg

 

我々はここでバス停の先端にラインプレートを置きたいわけです。

 

バス停フラッグを選択解除し(重要!さもないと既に置かれたフラッグの種類が変更されてしまう!)、「German Street Side \ BVG \ Bus Stop Lineplate yellow 2-digit」を選択して[N]を押します(まだ確定しないで!)。今あなたはラインプレートを"手元"に持っていますが、それは非常に小さいものです。確定しないように、「Attach to Object...」をクリックして既に置いたバス停フラッグをクリックします。

 

Manual_SDK_1_EN_40.jpg

 

オーケー、これだとラインカードの位置が良くありませんね!:) しかしいくつかのアタッチ可能なポイントがあります。4つ以上のラインカードが必要な場合には、"ブリッジ"を使ってアタッチポイントを増やすことになります。では「AttachPntNr.」に「2」を入力してください。

 

Manual_SDK_1_EN_41.jpg

 

ラインカードが右に移動しました。

 

重要: 残念なことにマップエディターはこの機能にもバグがあります。もし"親"オブジェクトを移動した場合、"子"オブジェクトは親と即座に移動しませんが、マップをリロードしたり子を選択すると解消します。[G]を押し(アタッチされているとは思えないけど大丈夫)、[Enter] ―― これで子オブジェクトの位置がリフレッシュされます。

 

ところで、子オブジェクトはまた、さらに子オブジェクトの親になることもできます。Moritzstraße(モーリッツ・シュトラーセ / Spandauマップ)のバス停を見てみると、いくつかあるラインカードはラインカードブリッジの一つにアタッチされ、ラインカードブリッジは他のカードブリッジにアタッチされ、それはバス停フラッグにアタッチされています。いくつかのバス停フラッグは街路灯のポールにもアタッチされます。

 

Moritzstr.jpg

 

さらに子オブジェクトを回転することもできます(例えば街灯にアタッチされたバス停フラッグなどを)。この場合、 "0"にすれば意図通りに子が配置されます。

2.3. オブジェクトのラベル

ラインカードとバス停フラッグのラベルを好きなように付けましょう!それを選択し、「Label...」をクリックして好きなテキストを入力します。

 

注意: 「@」は改行です。さらにバス停では「{、[、]」の記号を使って青いボックスに白い"U"(地下鉄)、緑の円に白い"S"(鉄道)、紫の円に白い"X"(急行バス)を記入できます。例として 「{Walter-@Vogel-Platz」と入力した場合のスクリーンショットを載せます。

 

Manual_SDK_1_EN_42.jpg

 

2.4. 信号機の設置

OMSIの信号機は二つのパーツで構成されます。信号機の制御は交差点シーナリーオブジェクトに含まれ、信号機自体のユニットは交差点の上で実際に目にします。

 

つまり、信号機の制御部は既に設置している交差点に含まれていて、あなたはただ信号機のオブジェクトを交差点に追加して接続するだけで、信号システムを完全に機能させることができます。

 

まず、オブジェクトのタイプから「German Street Side \ Lights \ Whip beam for traffic light」を各コーナーに設置します。「Lights」に信号機の柱が含まれていますがベルリンの街灯と統一するためです。高さを0.25mに調整します。

 

Manual_SDK_1_EN_43.jpg

 

3つの柱が横断歩道の真ん中にありますが、これは後で歩行者用信号機を追加するためです。

 

では「Single pole for traffic light」オブジェクトを向かい側に設置して、同様に0.25mに高さ調整します。

 

Manual_SDK_1_EN_44.jpg

 

これで信号機の土台は完成です。では信号機自体を取付けましょう。最初に頭上の信号を支柱に直接アタッチします。

 

オブジェクトのタイプから「German Street Side \ Traffic Lights \ Traffic Light Cars Overhead w. Blind」を追加して、スクリーンショットのようにアタッチ機能を使い支柱に取り付けてください。

 

Manual_SDK_1_EN_45.jpg

 

信号機はまだ制御されないのに気づきますが、それは交差点を"知らされてない"からです!「Parent to...」をクリックし、交差点をクリックします。「Parent to...」ボタンの隣に交差点のIDコードが表示されるのが読めるでしょう。これはそれぞれのオブジェクトまたはスプラインを特定するユニーク番号です。オブジェクトタイプを選ぶウインドウ真下に、そのオブジェクトのIDコードを見ることができます!

 

リフレッシュし次第(信号をさらに追加したりどこかに移動したりなど)、信号機は動き出します。

 

では信号機が交通の流れに正常に割り当てられているか確認する必要がありますので、「Options...」をクリックします。

 

Manual_SDK_1_EN_46.jpg

 

グレーのボックスに信号制御リストが表示されます: Mian(メイン)、Side(サイド)、Main_Ped(歩行者)メイン、Side_Ped(歩行者サイド)、VacArrow_Main(左折信号)

 

重要: リストが空の場合、交差点が信号機の親になっていない、または交差点が信号機に対応していないかのどちらかです!

 

「Nr. Traffic Light」が「0」となっていれば、信号機はメインの方向を制御しています。

 

では最後に作成した信号機を選択したまま[N]を押し、最後に作成した信号機と同じプロパティを持つ(親も同じ)新しい信号機を作ります。それを反対側の支柱にアタッチし、それも「Nr. Traffic Light」が「0」であるかチェックします。

 

では同じく3つ目の信号機をサイドレーン側の支柱に同様にアタッチしてください!

 

Manual_SDK_1_EN_47.jpg

 

この信号機の「Nr. Traffic Light」には「1」を入力します。つまりサイドレーンを制御します!

 

ではエディターで信号機を観察したらOMSIでもきちんと車両を制御しているか確認しましょう!

 

重要: 信号機の少なくとも一つを交差点に親設定したら信号システムは有効になります。そうでない場合、信号機が無いのと同じになります(既存の優先規則に従います)。

 

足りない信号機を加えましょう。

 

その他全ての信号機は"通常の高さ"があり、ポールにアタッチせずとも自由に適した位置へ移動できます。これで高い柔軟性が確保されます。

 

既存の信号機から新しい信号機をコピーし(すでに親プロパティがセットされている)、支柱の近くに設置します。タイプを「Traffic Light Cars」にします。

 

Manual_SDK_1_EN_48.jpg

 

信号機の標準の高さとして「2.8」を入力し、正常な方向を向くように角度を調節します。

 

Manual_SDK_1_EN_49.jpg

 

移動してポールに添わせます。次の図のようにしてください。

 

Manual_SDK_1_EN_50.jpg

 

両方のマウントがポールに少しだけ"接触"するぐらいが良い結果になるはずです。

 

同様に残りの2つの信号機も設置してください。サイドレーンの信号機に「1」を入力するのを忘れないように。

 

Manual_SDK_1_EN_51.jpg

 

大事なことを忘れていました。歩行者用信号機(Traffic Light Humans)も設置しなくてはいけません。次の図で見られるようにこれらを設置して、メインルート側を「2」に、サイドルート側は「3」に設定します。高さは同じく2.8mです。

 

Manual_SDK_1_EN_52.jpg

 

それではOMSIで信号をテストしましょう!:)

 

Manual_SDK_1_EN_53.jpg

2.5. 交通ルール

AIトラフィックのためにいくつか交通ルールを追加してみましょう!

 

タブを「Traffic Rules」に切り換えます。トラフィックのパスが見えるようになります。(※訳注: OMSI2ではパスの色は異なります)

 

Manual_SDK_1_EN_54.jpg

 

右端のパネルには様々な交通ルールがリストされています。

 

最初に非スケジュールのトラフィクを左折禁止にしてみましょう(この禁止処置は一般車両だけに有効で、スケジュールを持つトラフィックは常に"自分自身の"パスを使います!)。「No Unscheduled Traffic」を選択して、左折関連のパスをクリックして"色付け"します。サイドレーンにある細かい直線のパスも見落とさないようにしてください。マークを消したいときは[Shift]キーを押しながらクリックします。

 

Manual_SDK_1_EN_55.jpg

 

そして交差点の歩行者の密度を減らしてみましょう。

 

「Unscheduled Traffic Density V. Low」を選択して、交差点の歩行者のパスを色付けしてください。スクリーンショットのように接点から接点へマークするようにしてください。

 

Manual_SDK_1_EN_56.jpg

 

ではサイドレーンの速度規制を30km/hに変更しましょう。「Speed Limit」を選択して「30」と入力します。そしてサイドレーンのパスをマークしてください。

 

Manual_SDK_1_EN_57.jpg

 

メインストリートを制限60km/hにしたければ、60と入力します。そうすると既にマークされたパスは黄色に変わります。これは速度規制を持っているという意味になります ―― がしかし、すべてが同じ制限というわけではありません。赤と黄色のマーキングは速度規制を非常によく表していますね。

 

全てのトラフィックルールの意味を掲載します。

Speed Limit
速度規制を変更する。標準の制限速度は50km/hです。
Overtaking Prohib
これは使わないで。AIトラフィックはまだオーバーテイクできません(※訳注: 不明)
No Unscheduled Traffic
パスにマークすると非スケジュールのトラフィックを制限する。
Unscheduled Tarffic Density Extrema Low/Very Low/Low/Nomal/High
トラフィック密度を変更する。終端や、新しいタイルへ向かう全経路に沿って密度の影響を与えることができるし、非スケジュール車両にどの交差点を使わせるかを決定できます。
Higher/Lower Priority
トラフィックの重要度を標準レベルから上げ下げする。
Cars prohibited
一般車両(Nomal Cars)を禁止する。
Trucks allowd
トラックの通行を許可する。
Buses & Cabs allowed
バスとタクシーを許可する。

例えばバスレーンを持ちたい場合、「Cars prohibited」と「Buses & Cabs allowed」でマークし、トラックレーンを持ちたい場合は「Cars prohibited」と「Trucks allowed」でマークし、トラックと混在したければ「Trucks allowed」のルールだけを追加します

 

(※訳注: 最後の3つの項目はOMSI2の新しいailists.cfgを使えば個別に細かく設定できるのではと思われます)

2.6. マップ優先度

このレッスンの最後にシーナリーオブジェクトにどのように優先度を設定するかデモンストレーションしましょう。

 

「Prior.」タブを開いてください。

 

Manual_SDK_1_EN_58.jpg

 

このように、全てのシーナリーオブジェクトが青く色付けされます。

 

優先度を「Set Priority to:」の1または2、"ペイント"モードを「Selection direct」(とっても精密)か「Selection via Circle」(おおまかに選択)で変更できます。例としてマンションを優先度1、街灯の支柱を優先度2にしてみました。

 

Manual_SDK_1_EN_59.jpg


つづき