ETS2 GPS画面にバックビューを表示させる

published_with_changes 更新日: event_note 公開日:

labelETS2

このブログに倣って、GPS画面にバックビューを表示させます。同じことを真似てみたのですが、クラッシュが着きまとっていました。あれこれ試行錯誤の末、やっとクラッシュしないようにできました。


Pivaさんのバックモニター

Pivaさんのバックモニター

PivaさんのMODに、車載ナビゲーションモニターを後方カメラにするというのがあります。http://ets2.lt/en/route-adviser-and-rearview-camera/ ゲームに無い視点をMOD化したとかすごい、と思って導入してみたらナンチャッテカメラでした。しかし着眼点はすごいなーと思うと同時に、色々とシステム的な制限や、仕様が判る面白いMODでした。 どの辺がナンチャッテなのかは、動…


元MODを探す

上記の引用元にリンクが張ってある「PivaさんのバックモニタMOD」は中身のファイルが多いので、同様のMODで構成がもっと簡素なMOD(Back Right Camera in GPS v1.0 ETS2)を改造ベースとして選びました。"APRIL 2, 2020" のタイムスタンプのMODです。

下記の構成で、GPSに画像を映す設定ファイルは gps.sii です。 

ui/
 ┣ gps.sii
 ┗ hud_right.sii

mod_info.txt  ---Modの説明ファイル
mod_image.jpg  ---Modマネージャー上で表示される画像
manifest.sii  ---Modパッケージ説明?ファイル



説明には次のようにあります。

この変更により、右バックミラー (カメラ) のシミュレーションが GPS に追加されます。
カメラは、フルタイムの内蔵 GPS を備えたすべてのトラックで動作します。
カメラの電源を入れるには、F2 キーを数回押します。

重要: 小さなバックミラーで mod を使用する場合は、誤った動作を避けるために、カメラmodのなかでこの mod の優先順位を上げてください!
mod が正常に動作するには、DLC「Cabin Accessories」が必要です。


F2キーの注釈は、「画面に映ってないカメラの画像を更新しない」というETS2の仕様に対応して、F2キーでミラーを画面にだすためのものだと思います。私の場合は3画面で右ミラーも常時表示しているので、ここは気にしなくてもOKです。

「重要」の項目は、後から読み込むMODに上書きされるので、同じ設定ファイルを使うMODを使用するなという意味でしょう。

元MODの動作とクラッシュ

このMODはE/GがONすると、GPSに右ミラーの画像を映します。普通に走行している間は問題なく動いているのですが、修理工場で修理やカスタマイズをしようとすると、その瞬間に固まり、続いてETS2が落ちてしまいます。このクラッシュは必ず起きます。

クラッシュの原因は、gps.sii の内容だと思います。なかを見てみると、現在のバージョンの gps.sii とは随分違います。元MODの gps.sii は現在のバージョンの gps.sii に比べて、記述は簡素です。なかで呼び出しているアイテム名も随分違っています。

この違いがバージョンによるものなのか、GPSにミラー画像を映すMODとしてのものなのかは不明です。

DLC「Cabin Accessories」が必要とあるので、そのせいかも知れませんが、同様の機能をする他のMODにはこの記述がないので、クラッシュの根本原因ではないと考えました。


クラッシュ対策

最初は元MODの gps.sii を少しづつ、現バージョンの gps.sii に書き換えて動作検証をしてみたのですが、修理工場でのクラッシュは一向に対策できませんでした。

そこで、現バージョンの gps.sii を元にして書き換えをすることにしました。GPSにマップを表示させているのは下記の記述です。"/bare_map.mat" が表示させるマップ画像になります。


ui::text : _nameless._.bare_map {
 text: "<img src=/material/ui/dashboard/bare_map.mat left=0.25 right=0.75 bottom=0.25 top=0.75 xscale=stretch yscale=stretch>"
 coords_l: 0
 coords_r: 256
 coords_t: 256
 coords_b: 0
 area_l: 1
 area_r: 0
 area_t: 0
 area_b: 1
 id: 0
 layer: 2
 tab: -1
 pointer: -1
 my_parent: _nameless.18ac.da40
}

試しに、この50行目だけを次の右ミラー画像 "/far_mirror_reflection.mat"  に変更してみたところ、GPSに右ミラーの画像が表示され、修理工場でのクラッシュも起きませんでした。無理やりでアイテム名と親アイテムの整合は取れていないのですが、クラッシュは起こりませんでした。

なので、これを基本に引用元のブログ記事に倣って、左右のミラー画像を表示できるように調整してみます。

 text: "<img src=/material/environment/far_mirror_reflection.mat xscale=stretch yscale=stretch top=1 bottom=0 right=1 left=0>"

調整したgps.sii 

GPS画面を左右に2分割して、右左のミラー画像を入れます。
運転席側の左画像は上下の位置調整とx軸のスケール調整をしています。助手席側の右画像は上下の位置調整とx軸のスケール調整に加えて、左右の調整も行っています。

変更内容
  • my_children の _nameless._.bare_map を _nameless._.gps_cmirror に名称変更
  • my_children に _nameless._.gps_fmirror を追加挿入
  • my_children 数を1つ増やして、4 に変え、番号付けを整合
  • ui::text : _nameless._.gps_cmirror に名称変更し、画像URLとその描画設定を変更
  • ui::text : _nameless._.gps_fmirror を追加。( { から } までの一連の記述を追加 )

SiiNunit
{
ui::window : _nameless.063ae3791 {
 window_handler: null
 clip_children: false
 keep_aspect: none
 user_string_data: ""
 first_direction_focus_id: 0
 fitting: true
 my_children: 2
 my_children[0]: _nameless.18ac.da40
 my_children[1]: _nameless.a8f.f870
 coords_l: 0
 coords_r: 256
 coords_t: 256
 coords_b: 0
 area_l: 0
 area_r: 256
 area_t: 256
 area_b: 0
 id: 0
 layer: 0
 tab: -1
 pointer: -1
 my_parent: null
}

ui::group : _nameless.18ac.da40 {
 fitting: true
 my_children: 4
 my_children[0]: _nameless._.gps_cmirror
 my_children[1]: _nameless._.gps_fmirror
 my_children[2]: _nameless._.speed.limit
 my_children[3]: _nameless._.background
 coords_l: 0
 coords_r: 256
 coords_t: 256
 coords_b: 0
 area_l: 0
 area_r: 256
 area_t: 256
 area_b: 0
 id: 100
 layer: 1
 tab: -1
 pointer: -1
 my_parent: _nameless.063ae3791
}

ui::text : _nameless._.gps_cmirror {
 text: "<img src=/material/environment/close_mirror_reflection.mat xscale=1 yscale=stretch top=0.7 bottom=0 right=1 left=0>"
 coords_l: 0
 coords_r: 128
 coords_t: 256
 coords_b: 0
 area_l: 1
 area_r: 0
 area_t: 0
 area_b: 1
 id: 0
 layer: 2
 tab: -1
 pointer: -1
 my_parent: _nameless.18ac.da40
}

ui::text : _nameless._.gps_fmirror {
 text: "<img src=/material/environment/far_mirror_reflection.mat xscale=1 yscale=stretch top=0.69 bottom=-0.01 right=1 left=0.17>"
 coords_l: 128
 coords_r: 256
 coords_t: 256
 coords_b: 0
 area_l: 1
 area_r: 0
 area_t: 0
 area_b: 1
 id: 0
 layer: 2
 tab: -1
 pointer: -1
 my_parent: _nameless.18ac.da40
}

ui::text_common : _nameless._.speed.limit {
 value: 50
 look_template: txt.db_navi_spd
 text: ""
 coords_l: 7
 coords_r: 47
 coords_t: 148
 coords_b: 108
 area_l: 1
 area_r: 0
 area_t: 0
 area_b: 1
 id: 1610
 layer: 3
 tab: -1
 pointer: -1
 my_parent: _nameless.18ac.da40
}

ui::text : _nameless._.background {
 text: "<img src=/material/ui/white.mat color=ff191919 xscale=stretch yscale=stretch >"
 coords_l: 0
 coords_r: 256
 coords_t: 256
 coords_b: 0
 area_l: 1
 area_r: 0
 area_t: 0
 area_b: 1
 id: 0
 layer: 1
 tab: -1
 pointer: -1
 my_parent: _nameless.18ac.da40
}

ui::group : _nameless.a8f.f870 {
 fitting: true
 my_children: 1
 my_children[0]: _nameless.18bd.a3c0
 coords_l: 0
 coords_r: 256
 coords_t: 256
 coords_b: 0
 area_l: 0
 area_r: 256
 area_t: 256
 area_b: 0
 id: 200
 layer: 1
 tab: -1
 pointer: -1
 my_parent: _nameless.063ae3791
}

ui::text : _nameless.18bd.a3c0 {
 text: "<img src=/material/ui/white.mat color=ff000000 xscale=stretch yscale=stretch >"
 coords_l: 0
 coords_r: 256
 coords_t: 256
 coords_b: 0
 area_l: 1
 area_r: 0
 area_t: 0
 area_b: 1
 id: 0
 layer: 1
 tab: -1
 pointer: -1
 my_parent: _nameless.a8f.f870
}

}

感想

修理工場でのクラッシュだけなので、だましだましで使ったり、使わなかったりしていたのですが、やっと安定して表示できるようになりました。

GPSにバック画像を映す狙いは、後ろを見ながらバックするためなのですが、左右のミラー画像では実際には役不足です。本来なら真後ろを映した画像をはめ込みたいのですが、これは今後の課題です。
 

Powered by Blogger | Designed by QooQ

keyboard_double_arrow_down

keyboard_double_arrow_down