2007/1/18

夜行列車の機関車の室内灯は、消えてるのがやっぱ正しいよな  VRM4ポータブル編成
と思いつつ、自分でも徹底できてない、というお話。

ポータブル編成ギミック一発組み込みは、汎用スクロールである関係上、編成に含まれるすべての車両に、有無を言わさずまったく同じスクリプトを書き込みます。

実際には、スクリプトの中で“自分が何号車か”であるとか“先頭/中間/最後尾車か”を調べたりして動作が変わるんですが、基本はまったく同じ動作をしています。そして、VRMスクリプトの車両系命令の中には“自分が機関車か否か”を調べるものはないので、多数派である“電車/気動車”を基本に動作を規定しています。

この結果、普通にスクロールを組み込むとヘッドライトと室内灯が連動するので、特に第5号の目玉となったブルートレインを夜間設定で走らせた場合、室内灯が点灯した状態になってしまって「おい、そりゃ危ないんでないの?」な状態になります。

で。これを改善するのは簡単で、スクロールを組み込んだ後に(または、何処からかダウンロードしたポータブル編成の)機関車の車両スクリプトを開いて、以下の部分を修正すればいいです。
[車両スクリプト]

(前略)

BeginFunc MtdLightOn
//
//点灯メソッド
//
 Var Tmp
 //共通アクション
 SetRoomlight 0
 SetSignlight 1
 //車両位置に応じたアクション
 GetCarPos Tmp
 ifzero Tmp
  SetHeadlight 0
  SetTaillight 0
 endif
 ifeq Tmp 1
  SetHeadlight 1
  SetTaillight 0
 endif
 ifeq Tmp 2
  SetHeadlight 0
  SetTaillight 1
 endif
EndFunc

(後略)
太字になっている行の 0は、ポータブル編成ギミック一発組み込みスクロールを組み込んだ時点では 1 になっています。これを 0 に変える。これだけです。

と自分で言いつつ、最近リリースしたブルートレイン系のポータブル編成のいくつかで(ひょっとすると全部か・・・@)これをやり忘れてるような気がしたので、懺悔しときます。気になる方は、各自で書き換えて上書き保存でもしちゃってください。

なお、電車・気動車の先頭/最後尾車にこれをやると、当然のことながら運転台だけでなく室内灯も消えてしまうのでNGです。これはもうVRM側の仕様なので我々にはどうしようもないですし、多分、今更これを変えるのはI.MAGiCにも無理でしょう。全先頭車モデルを再リリースしろ、と言ってるのに近いので。まぁ、VRM5の課題ですな。ちょっと気が早いけど。そんなモノがあるとして、の話ですが。
0


teacup.ブログ “AutoPage”
AutoPage最新お知らせ