Interlocking’s blog

鉄道信号・模型などなど趣味活録

A列車で行こう9 機回しバグの検証と対策

ゲームをプレイしていたところ、たまたまバグを見つけましたので、記事にまとめました。

これは機回しとファイル保存に関するバグです。発生するとマップ内のダイヤ乱れが生じ、最悪運転不能に陥るバグです。

 

きめ細かなダイヤ設定を採用しているゲームユーザーには致命傷となりうる事象であると認識しますので、検証と暫定的対策を記事にまとめます。

 

f:id:Interlocking:20210612014121p:plain

 【目 次】

 

バグ概要

 結論から言うと、

機関車が機回し走行中にゲームデータを保存すると、機関車が暴走し、正常に機回ししない

という不具合です。既にネット上においても同様の報告があるようです。

 

 

 先日、ゲームを起動し、ファイルを開いた直後、以下のように盛大に詰まってしまいました(図1)。

機回し中の機関車が折り返しせずに本線を逆走し、旅客列車と正面衝突しました。

f:id:Interlocking:20210612154321p:plain

図1:機回しバグにより本線逆走した機関車と列車詰まりを起こしたマップ

再起動を試みましたが、同様の結果となったことから、再現性のあるバグである可能性があると分かりました。

よって、この現象について詳しく見てゆきたいと思います。

 

検証方法

どのような状況においてこのバグが生じるのか、バグ検証用のマップを作成し、再現性についてテストしてみました。

検証に使用したアプリケーションのバージョンは「Version 5.00 Build 4431」です。

記事を執筆した2021年6月12日現在の最新のパッチで検証しました。

 

検証条件

バグは機回し中のファイル保存時に生じていると見られますから、

機回しする機関車の運転状況に応じてそれぞれファイル保存時期をずらして検証します。

 

検証マップを作成し、確認することとしました。

マップコンストラクションモードでテンプレート「平地」を選択します。

平地はVersion1で搭載されているマップデータを使用します。

 

現在私が使用しているマップはカスタム編成を使用して機回しを行っているので、

機回しに使用する編成はカスタム編成とします。

機関車と貨車の編成をそれぞれ作成し、検証に使用します。

 

そのほかの条件は以下とします。

  • 時間拡張は450倍(デフォルト値)
  • 車両最大数は20編成(デフォルト値)
  • スケール比は非1:1

 

検証用マップの作成

検証マップは2線の操車場を作成し、1番線に貨物列車を到着させ、2番線を経由して機回しするマップとします。

エンドレス路線を作成し、機回し可能な操車場を設置します(図2)。

f:id:Interlocking:20210612014926p:plain

図2:検証用マップ

機回しを1番線に設定します(図3)。

f:id:Interlocking:20210612015215p:plain

図3:1番線に機回し設定

 列車はカスタム編成を作成し、00編成に貨車、01編成に機関車とします(図4)。

機関車単機1両の編成とタンク車7両の編成をカスタムにて登録し、購入しました。

f:id:Interlocking:20210612015741p:plain

図4:作成した編成

駅のダイヤ設定は00編成、01編成を以下のようにそれぞれ設定します(図5・6)。

f:id:Interlocking:20210612165758p:plain

図5:編成00の駅ダイヤ設定(1番線)

f:id:Interlocking:20210612172252p:plain

図6:編成01の駅ダイヤ設定(1番線)

機関車は常時1番線に進入するよう、分岐器設定は1番線となるようにします(図7)。

f:id:Interlocking:20210612022801p:plain

図7:機関車(編成番号01)の分岐器設定

以上の設定で1番線に貨車を配置し、機関車を連結させて走行させます。

すると、1番線で機回しを常に行い、1番線で折り返し運転を常時するダイヤとなります。

 

 

検証

作成した検証マップを使用して、機回し中の機関車の各状態でファイル保存・読み込みを実施して、その後の挙動を確認してみました。

 

検証1:貨車を開放した直後

列車が1番線に到着し、貨車を開放して移動し始める直後で保存してみます(図10)。

f:id:Interlocking:20210612172627p:plain

図10:開放直後の状態

 すると、

 

f:id:Interlocking:20210612173045p:plain

図11:検証1結果

無事に機回しを継続しました。

開放直後では機回しを正常に継続するようです。

 

検証2:構内進出直後

機関車が1番線から完全に離れ、本線に入ろうとするところで保存してみます。

f:id:Interlocking:20210612173644p:plain

図12:1番線進出直後

 

すると、

f:id:Interlocking:20210612173718p:plain

図13:検証2結果

機回しをせず、遠方へ走り去って行ってしまいました。。

さらに分岐方向を無視し、直進で周回し続け、貨車と連結することはありませんでした。

 

検証3:本線折り返し点で停車中

1番線から本線に移動し、折り返しのために停車した状態で保存してみます(図14)。

速度0Km/h、方向転換はまだしていません。

f:id:Interlocking:20210612174516p:plain

図14:本線折り返し点で停車中

すると、

f:id:Interlocking:20210612174443p:plain

図15:検証3結果

無事に機回しを継続しました。

折り返し点では機回しを正常に継続するようです。

 

検証4:折り返して2番線を走行中

本線で折り返し、2番線を走行中に保存してみます(図16)。

機関車は最高速度で走行中です。

f:id:Interlocking:20210612181607p:plain

図16:2番線走行中

すると、

f:id:Interlocking:20210612181722p:plain

図17:検証4結果

またも遠方へ走り去って行ってしまいました。。

 

検証5:2番線通過後

2番線を通過し、本線折り返し点を向かう手前で保存してみます(図18)。

 機関車は折り返し点に向けて減速中です。

f:id:Interlocking:20210612182605p:plain

図18:2番線通過直後

すると、

f:id:Interlocking:20210612182534p:plain

図19:検証5結果

またも遠方へ走り去って行ってしまいました。。

 

検証6:本線折り返し点2で停車中

もう一方の本線折り返し点で停車中に保存してみます(図20)。

速度0Km/h、方向転換はまだしていません。

 

f:id:Interlocking:20210612183005p:plain

図20:本線折り返し点で停車

すると、

f:id:Interlocking:20210612183127p:plain

図21:検証6結果

方向転換せず、加速しながら遠方へ走り去りました。。

 

検証7:方向転換後、分岐器通過前

本線上で方向転換を行い、分岐器通過前で保存してみます(図22)。

f:id:Interlocking:20210612190506p:plain

図22:本線折り返し後、分岐器通過前

すると、

f:id:Interlocking:20210612190630p:plain

図23:検証7結果

無事に機回しを継続しました。

分岐方向を直進に変更しても、機回し設定経路通りに移動しました。

折り返し後は機回しを正常に継続するようです。

 

検証結果

以上の検証を踏まえると、検証結果は全7種の検証で

検証2、4、5、6において機回し失敗となりました。

検証3の1度目の折り返しでは問題なく、検証6の2回目では失敗しました。

検証2では加速中に、検証4、5では機関車が減速中又は最高速度で走行中に機回し失敗となりました。

 

機回しの全状態で失敗する訳ではなく、特定の状況において発生すると分かりました。

 

したがって、失敗しそうにないタイミングを見計らってファイル保存を狙うという方法が可能ではあります。

ですが、今回検証に使用したマップは最も簡素な線形で必要最小限で試していますので

複雑な経路を有す機回しをする場合は機回し中の時間帯を避けた方が無難と言えます。

 

回避策

今回のバグに対する暫定的回避策としては、以下のような対策を講じることが良さそうです。

いずれもユーザ側のソフト対策に過ぎないのですが、ゲームを起動した際のダイヤ乱れをできるだけ避けられるでしょう。

  • 機回しに多数の折り返し設定を含む複雑な経路を設定しない
  • 機回しする時刻をマップ内で走行する全ての列車で統一し、その時間帯にファイル保存をしない
  • 機回し機能を使用せず、手動で機回しさせる

 

 

まとめ

機回しバグについて検証してみた結果、

機回し中にマップ保存をすると次回ロード時に特定の場合においてのみ機回し情報が失われる

ということが分かりました。

具体的には以下の条件で失われると分かります。

  • 貨車を開放し、折り返し動作をする前に保存すると、折り返ししない。
  • 機回し経路上の最後の折り返し後に保存した場合は機回し経路を維持し、正常に動作する。
  • 2回目以降の折り返しは機能しない。
  • 機回し走行中、減速時と最高速度で走行中は失敗する可能性がある。

 今回検証した条件は最も簡素なマップで検証しましたので、より複雑な経路の場合ですと結果が異なるかもしれません。

 

検証を踏まえ、当面の間は機回し時間帯を避けてのファイル保存でゲームプレイを続行しようと思います。(手動機回しに変更するには構内改良しないといけないので...)

メーカーには今後のアップデートで改善して頂きたいところですね。

 

 A列車で行こう9で遊ばれる皆様のご参考となれば幸いでございます。

もし、より詳細な検証をご存知の方がいらっしゃいましたら、教えて頂けると幸いです。

それでは。