地形編集

はじめに

  • A列車で行こう9に於ける地形高度について
    • ゲーム起動中(地形を開いている状態)でのメモリを解析したところ、約10km四方のMAPデータには建物やテクスチャ情報とは独立した高度のみの情報を持っていることが分かっています。具体的にはグリッド表示をした際のラインの各交点に1つずつの高さ情報を持っています。
      • 横1025x縦1025箇所・・・アドレス
      • 高度-80m~240mはメモリ上では$0000(0)~$0C80(3200)の2byte表記、つまり最小単位0.1mの分解能・・・データ
    • 該当するアドレス(パッチによって変動)のデータを直接変更することで、ゲーム内の地形編集ではコントロールしにくい任意の斜面やMAPの形状を自由に変更する事ができる。
      • データは北西の角が開始アドレスで2byteずつ東に増えていく、またその2byteは下位-上位の順になっている(海抜0mの高度$0320は$20-$03の順)。ゲーム上では海抜240mの$0C80が上限であるが、メモリ書き換えによって$FFFFの海抜6473.5mまで作る事ができる。ただし、240m以上の場所に列車等オブジェクトを配置する事はできない(強制終了します)、カメラ高度も上限240mを基準に設計してある為高高度からの視点は不可能。
      • アドレスは次の通り
version1.00 build0190用 &h03488F28-&h03689F29
version2.00 build0040用 &h035BD7A0-&h037BE7A1
version2.00 build0050用 &h035BE7B8-&h037BF7B9
version2.00 build0060用 &h035BF7B8-&h037C07B9
version3.00 build1436用 &h03A6E6C0-&h03C6F6E1
  • 具体的に書き換え方法について
    • うさみみハリケーン等メモリ編集が可能なツールを用意し、該当アドレスを書き換え、一旦セーブしたものを読み出せば反映される。
    • データの用意、方法は様々で好きな方法で準備すればいいでしょう。(後述)
      • 例1)ダンプデータをダイレクトに入力していく
      • 例2)excel等でtxt出力したファイルを一旦バイナリ変換してメモリにアップロード
      • 例3)ダブルトーンの画像を利用して地形を描き,RAW出力したものをバイナリ化してメモリにアップロード
      • 例4)A列車9用地形変換ツールa9importbmpexを使ってビットマップ化した画像をバイナリ化してアップロード

各種ツールの使い方について

  • うさみみハリケーンの場合
    • ①A9本体を起動してから適当なマップを開く
      • 予期せぬトラブル回避の為、建物や施設の設置されていない『平地』マップが望ましい
    • ②うさみみハリケーンを起動してターゲットとなるプロセス(ATrain9v2g.exe)を選択する
    • ③該当アドレスが正しく標高データと一致しているかを確認する
      • 例えば平地マップを開いている場合、標高データが全て$20 $03 $20 $03 $20 $03 ・・・となっている(海抜0mはデータ上では$0320)
      • メモリアドレスは非常に多いのでスクロールバーで飛ぶより、移動>栞に開始アドレスを入力してジャンプしたら便利
    • ④該当するアドレスのデータを書き換える
      • 書き換え方としては、ダンプを直接書き換えたり、バイナリ化したデータを一気にアップロードする方法がある
    • ④-1 ダンプを直接書き換える場合
      • 開始アドレスから順に下位-上位の順にデータ($00-$FF)を入力していく
    • ④-2 アップロードする場合
      • 最初に編集>選択範囲指定・選択範囲のチェックサム/ハッシュ生成を選択し、アドレスの開始-終了を入力する(範囲指定後にダンプをクリックすると選択範囲がクリックした場所になるので注意)
      • ファイル>選択範囲内にファイルをアップロードを選択し、バイナリ化したデータを指定すると選択範囲が書き換えられていく
      • 一気に書き込みは終了しますがサテライトへの反映は時間がかかります(反映途中で保存するとマップ選択のサムネイルが途中のままになる)
    • ⑤A9本体のマップを一旦保存してから読み込むと新しい高度のマップが読み込まれる
      • 高度240m($0C80)より大きい値を入力した場合、サテライトは黒くなります
  • バイナリ化データの作り方(例)
    • excel(テキスト形式で出力)、メモ帳、raw形式画像などはテキスト形式のファイルなのでhex2bin等のツールを使ってバイナリファイルにすればアップロード可能となる
      • raw画像を扱う場合は16進数表記及び2チャンネルダブルトーン表記にする必要がある