<2025/7/27> 他列車ファイル使用のギミック
今回の記事はBVEの構文関係のお話しなので、ご存知の方には理解できるかもしれませんが、拙作BVE内部のちょっとした裏話ということでご了承ください。
最初に結論を言うと、ひとつの構文を使ってこういう表現をしています、という紹介記事です。
やり方まで説明すると長くなるので、とりあえず紹介だけです。詳しい解説記事はまた書けたらということで・・・。
まず簡単に、他列車ファイルの説明です。
BVEバージョン5以降は、対向列車を動かすことが出来るようになっており、これを動かす設定をしているのが他列車ファイルです。
詳しくは本家ページの解説に記載されていますが、対向列車が動く時刻・速度・停車時間・走行経路等を設定し、シナリオ起動時にこれを読み込んで描写するものです。
この他列車ファイルは、対向列車だけでなく、自分の運転する列車の前を走る先行列車や、並行する道路を走る自動車等、様々なギミックに応用できます。
拙作BVEでは自動車の再現まではしておりませんが、以下のようなギミックにこの他列車ファイルを使っております。
元々はすずはる様が拙作をBVE5にアップデートした際に追加されたギミックが多いです(以下の①②③がそれです)が、Ver3.5ではこれを参考にさせていただき、私の方でもいくつか新たにギミック(④以降)を作っております。
今回はそれらの中でいくつかを紹介させていただきます。
(各動画はWindowsの動画キャプチャで撮ったもので、画質が今一歩ですがご了承ください。あまりハッキリするとあちこちの粗が目立つのでこれで許してください・・・)
①他列車の動きに合わせた信号変化
自列車(運転している列車)の信号変化は、先行列車の設定等で可能ですが、拙作では他線の信号機も他列車の動きに合わせて変化するようにしています(中には自列車の信号機も、先行列車ではなく他列車ファイルで切り替えている物もあります)。
変化方法としては、信号機の変化に合わせた配列の信号機だけの「他列車」を作り、信号機の位置だけ正常位置に合わせてそれ以外の場所では地下を走らせる「走行経路」を作り、信号機の位置を「駅」、表示時間を「停車時間」、速度を非常に高速に設定して、切替の際に高速で信号機が移動するようにしています。信号機だけでなく、レピーター・一部の時機表示機、後述の発車標等もこの方式で切替を表現しています。
今回のVer3.5より、JR線の一部信号機も変化するように設定しました(見にくいですが・・・)。
②サウンド関係
放送については、基本的に車内放送は専用の構文がありますが、自列車が駅に入るときの接近放送、駅員による放送、対向列車が接近する放送等は原則他列車ファイルで鳴らしています。他列車ファイルには加減速音や走行音を設定できるので、ストラクチャは無しで音だけの「他列車」を作り、所定時刻に動かして鳴動させています。
これを使用すると、発車放送に被らせて他の放送を鳴らしたり、雨天時の雨音の再現等も出来るようになります。
③線路内の作業員配置
一部路線にたまに配置している作業員ストラクチャは、他列車ファイルを使用しています。作業員の有無・位置でいくつか「他列車」を作り、シナリオを読み込むごとにランダムな位置に作業員が配置され(読み込みによっては配置無しになる場合もあります)、配置がある場合のみ、手前の駅に警笛吹鳴用の作業旗が配置されるようになっています。
これは私が手掛けるVer3.5よりも前に確立されていた手法で、私も初見の時は思わず膝を叩きました。
④ポイント切替
これは私が拘りたかったもので、特に京都線淡路のポイントのトングレールを動かしたかったのもあって、必死で製作したギミックです。
原点の位置を調整したトングレール部のみのストラクチャを、わずかな距離でX軸方向に動かして、「奥はほどんど動かずに手前は大きく動く」(もしくはその逆)ようにして再現しています。
今回のVer3.5からは、他線のポイントも列車に合わせて一部動くようになっていますが、相当離れていて見にくい場所や、定刻より大幅にずれた時間に運転された場合までは想定しておりません。
もっとも、運転中にそんなところまで注目するのはどうかと思うのですが、個人的にやりたかったことなので。
⑤踏切動作
宝塚線の雲雀丘花屋敷にて、長時間停車する普通車の前の踏切がずっと閉まっているのはどうかと思い、今回のVer3.5から導入してみました。
BVE業界では何件か踏切を動作させておられるデータがありますが、多分似たようなギミックかと思います(他人様のデータの内部までは確認していないので、他の方法でしたらすみません)。
これも遮断桿ストラクチャをわずかな距離でY軸方向に動かして、疑似的に回転しているように見せている物です。ポイントと違い、閉鎖と開放を同じ他列車ファイルで再現出来なかったので、それぞれ別ファイルになっていて、一回動作するごとに同じ位置の別の他列車に切り替わるようにしています。
また一部の踏切は遮断桿の動作を省略して、反応灯の点滅のみ反映させているものもあります。
現在の公開データで遮断棹が動くのは、京都本線天神通踏切・嵐山線嵐山下一番踏切・千里線千里北陽踏切・宝塚本線雲雀丘道踏切・箕面線平尾踏切・神戸本線六甲道踏切・神戸本線高羽踏切です。
神戸本線は六甲道踏切の奥に高羽踏切があり、後者は自列車から視認できる右側の遮断棹だけが動作するようにしています(動画参照)。
⑥可動式ホーム柵関係
Ver3.5より新規導入になった可動式ホーム柵も他列車ファイルを使用しています。ホーム柵のメロディや、表示灯の点灯状況の反映がそれです。
また信号開通後に乗降客がセンサーを遮ると反応して音を発する装置も、ランダムに発生するように他列車ファイルで設定しています。
これらは前述した①と②のパターンに倣って動かしています。
⑦発車標切替
実際とはちょっと違う動きですが、一部駅の発車案内表示を、他列車の動きに合わせて切替するのを再現しています。
全駅全部は厳しいので、定刻運転時に見える範囲で、簡単に再現したものです。本当は点滅や流れるLEDもしてみたいのですが・・・。
⑧対向列車の警笛吹鳴
お遊びのようなものですが、対向列車が駅を通過するときに警笛を鳴らすギミックです。
基本は②と同じく音のみの「他列車」を対向列車の走行に合成していますが、走行軌道に少し工夫をしてあります。
ちなみにこのギミックは特定のシナリオでランダムに発生しますので、毎回離合の際に鳴らしてくるわけではありません。
⑨他列車の灯火切替
これもちょっとしたお遊びですが、終点に到着し折り返しする列車が、前照灯を消し、尾灯を付けるまでの再現をしたものです。
このギミックについては、あちこちで見れる場面でも無いので、使用しているのは一か所だけです。
⑩交換列車の衝突防止
単線路線でのギミックですが、嵐山線はVer3.4まででは、対向列車は交換駅に停車後、そのまま動かなくなっていました。
これは他列車ファイルの動作開始時刻が1回しか定義できないため、対向列車を一度動かすと、次に動かすためには「秒数経過」しか設定できず、だからと言って秒数経過(例えば60秒後など)で対向列車を交換駅から発車させると、もし自列車が大幅に遅れた際に秒数経過した対向列車が動き出してしまい、正面衝突の恐れがあるためです。
そもそも秒数経過だと、こちらが駅に入って停車するまでの時間が運転によってマチマチなので、正確に設定できません。
これを今回Ver3.5では、自列車がどんなに遅れても、ちゃんと交換駅に入線してから交換列車が発車するよう、疑似的に再現しています。
最初に試した方法としては、到着列車ストラクチャと発車列車ストラクチャを一瞬重ねて、どちらかを高速移動させて画面から消え去るようにしてみたものの、そうすると重なった瞬間にストラクチャをの影が濃くなってしまうことがわかったため、実際は違う方法で再現しています。
まぁあくまでも疑似的なので、ギミックの仕組みが分かってもネタばらししないでください・・・。
以上、10パターンほど紹介させていただきましたが、これ以外にもいくつか使用しているギミックがありますので、また機会があれば記載したいと思います。
ちなみにこれらのギミックの使用頻度ですが、例えば公開中の神戸線「通勤急行K3730」については、他列車ファイルが172箇所使われておりまして、その内訳をパーセンテージで表したのが右側のグラフです。
むしろ本来の意味である「他列車」として使っているものよりも他の使い方の方が多く、中でも放送関係が多いことがわかります。
拙作がいかにこの構文に依存したデータであるかがわかります・・・。
この先はオマケで、まだ公開データには反映していないギミックで、現在試行中のものを2つ紹介します。
一般公開データに反映するかはまだ検討中ですので参考までに。
◆信号待ち放送の鳴動条件対応
信号待ちの際、車掌が放送で「信号待ちのためしばらくお待ちください」、動き出すと「お待たせいたしました」と放送しますが、現在のデータではこれを放送構文で鳴らしているため、その設定地点を通過するとどんな状況でも放送されてしまいます。
例えば停止信号の手前をゆっくり走り、停まる前に開通して速度を上げても、結局放送が鳴ります。
これを解決するために、他列車ファイルを使用して、信号待ちするときだけ車掌放送を鳴らし、信号待ちを回避したときは鳴らない、というギミックを作ってみました。
条件が限られるので実際に運用できるかは未定ですが、動画で確認ください。
左(もしくは上)が信号待ち有りの時、右(もしくは下)が信号待ち無しの時の、同じシナリオです。
(なお、放送関係のギミックは、既存のギミックも含め、今後の製作状況により変更になる可能性があります)
◆他列車の幕回し
以前から個人的にやりたかったギミックです。
阪急では終点駅に着く手前で、走行中に幕の切替をしています。現在のデータでは元の幕のまま終点駅に入線していますが、これを走行中に折り返しの列車へ切り替えるギミックです。
LED車はパッと変化するので再現自体は難しくないですが、幕車はそのものが回転するので、ある程度制約が出てきます。当然他列車ファイルの定義方法が全く異なります。
今回動画で再現しているのは試験中のもので、実際は幕表示の間の空白がもう少し大きかったりするのですが、ギミックの都合もあり、運転中に確認してもそんなに違和感無さそうなので、状況を見つつ今後反映できたらと考えています。
下の動画では、順番に「LED車の切替」「幕回し(種別+行先)」「幕回し(行先)」となっています。
以上、他列車ファイルを利用したギミックの紹介でした。
あまり細かい所まで注目されても困る要素なのですが(前述の通り、そもそも前方注視が必要な運転士にとっては、各ギミックを見ているとよそ見になってしまうので・・・)、個人的にこのギミックだけで色々表現できるのが楽しいので、今後も色々試してみたいと思っています。