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

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

Sceneryobject (*.sco)

scoファイルは、主に建物や標識など自動車や人など別に定義されている以外のあらゆるオブジェクトを定義するものです。また、交差点のように車両や歩行者のパスを定義したり、信号機の動作周期データを定義したりすることもできます。
オブジェクトで使用するメッシュは配下のmodelフォルダに、オブジェクトで使用するテクスチャは配下のtextureフォルダに格納します。

Sceneryobjects

├─[*.sco file]

  ├─model
  └─texture

以下、テンプレートです。

'==============================================
' [groups] 省略可

' エディタ右側のペインに表示されるときのフォルダ分けを指定する。省略したときはフォルダに格納されずにルートに配置される。
' 階層数 (ルートなら0)
' フォルダ名を浅い方から列挙

' [friendlyname] 必須
' オブジェクト名

' [NightMapMode] 省略可

' 夜間照明モードを指定する(0-4)

' 0 : 街灯

' 1 : 連続的な照明のある建物

' 2 : 住宅 (23:00-翌6:00以外)

' 3 : 商業ビル (18:00-翌7:00以外)

' 4 : 学校 (15:00-翌7:00以外)

 ' [script] 省略可

' 調査中

' [varnamelist] 省略可

' 調査中

' [sound] 省略可

' 調査中

' [visible] 省略可

' 調査中

' [crossing_heightdeformation] 省略可

' 調査中

' [terrainhole] 省略可

' メッシュを使用して地形を切り取る

' メッシュ(*.o3d あるいは *.x)を指定

' [rendertype] 省略可
' 描画するタイミングを指定する

' presurface : 地形の描画前 (地形に穴を開けるときなど)

surface : 地形と同じ (道路など)

on_surface : 地形の後 (ヘルプ用の矢印など)

' 1 : 通常オブジェクトの描画前

' 2 : 通常オブジェクトと同じ (デフォルト)

' 3 : 通常オブジェクトの描画後

' 4 : 車両や歩行者の描画後 (ガラスなど透明性の高いオブジェクトなど)

' [complexity] 省略可
' 描画優先度(0-3)で0が最も優先度が高い

' 0 - 交差点、通常の建物、街灯、信号機、交通標識、バス停など非常に重要なオブジェクト

' 1 : バス停上屋、小さな建物など重要なオブジェクト

' 2 : ゴミ箱、電話ボックスなど道路沿いにある小さなオブジェクト

' 3 : 公園のベンチ、砂場など道路に面していないもの

' [LOD] 省略可

' 不明

' [mesh] 必須/複数可
' オブジェクト表示に使用するメッシュ(*.o3d あるいは *.x)を指定する

' [matl] 省略可

' 調査中

' [matl_alpha] 省略可

' 調査中

' [matl_envmap] 省略可

' 調査中

' [matl_change] 省略可

' 調査中

' [matl_item] 省略可

' 調査中

' [matl_nightmap] 省略可

' 調査中

' [collision_mesh] 省略可
' 当たり判定に使用するメッシュ(*.o3d あるいは *.x)を指定する。省略した場合は四角形で近似される。

' [nocollision] 省略可/パラメータなし

' このオブジェクトとの当たり判定を行わない

'[surface] 省略可/パラメータなし

' 地表と当たり判定が行われるようになる (交差点で使用)

' [fixed] 省略可/パラメータなし

' オブジェクトを固定して配置する。省略するとオブジェクトに衝突するしたとき飛んで行ってしまう。

' [boundingbox] 省略可

' 調査中

' [detail_factor] 省略可

' 調査中

' [particle_emitter] 省略可

' パーティクル効果

' [smoke] 省略可

' 煙などの効果

' [absheight] 省略可/パラメータなし

' オブジェクトの位置は地表からの相対位置ではなく、絶対位置として指定する (交差点などに使用)

' [onlyeditor] 省略可/パラメータなし

' ゲーム内ではパスだけ有効になり、メッシュはマップエディタでのみで表示される

' [petrolstation] 省略可

' オブジェクト付近で給油や洗車ができる (ガソリンスタンドで使用)

' [shadow] 省略可/パラメータなし
' オブジェクトに影をつける

' [new_attachment] 省略可/複数可

' アタッチできる場所を追加する

' attach_rot_zという行を入れて角度を入力

' attach_transという行を入れて

' オブジェクト内でのローカル座標(x,y,z)を指定

' [joinable] 省略可/パラメータなし

' 調査中

'==============================================

[groups]
2
Test Object
Bus Stop

[friendlyname]
Bus Stop (Andon)

[mesh]
Bus Stop (Andon).o3d

[fixed] 

 煙などの効果 (直前にしてた[mesh]に対して適用)

' ================================================ 

' 発煙位置 x

' 発煙位置 y

' 発煙位置 z

' 発煙方向 x

' 発煙方向 y

' 発煙方向 z

' 排出速度

' 速度変動率

' 周波数

' 拡散して見えなくなるまでの時間

' (不明)

' 落下係数

' (不明)

' (不明)

' 初期アルファ値

' アルファバリエーション

' 煙の色 R

' 煙の色 G

' 煙の色 B

' ================================================

[smoke]
0
0
17.7
0
0
1
0.6
0.1
6
2
0.98
-0.1
0.3
1
1
0.5
0.4
0.3
0.25

パーティクル効果 (調査中)

[particle_emitter]
-5.25
0.8
2.85
0
0
1
--PS_veloc--
0.5
0.2
--PS_freq--
10
1
--PS_livetime--
0.5
0.4
--PS_brakefactor--
0.95
0
--PS_g--
0
0
--PS_size_start--
0.3
0
--PS_size_grow--
-0.2
0
--PS_alpha_initial--
1
0
--PS_alpha_final--
0.2
0
--PS_RGB--
1.0
0
0.5
0
0.2
0
--PS_calcdist--
200
--PS_emissive--
--PS_bitmap--
texture\licht.bmp
0

 物理特性 (省略可)

'トン単位質量

[mass]

0.5

'慣性モーメント

[momentofintertia]

x軸

z軸

y軸

'重心

[cog]

重心位置x

重心位置y

重心位置z