ぼくは航空管制官3/改造

Last-modified: 2023-02-11 (土) 23:23:03

ゲームの改造の方法やファイルの構造に関するページです。
ゲーム自体の改造だけではなく、シナリオの改造や機体デザインの改造(リペイント)について扱います。(むしろ後ろ半分のほうがメイン?)
ある程度スキルのあることが前提となっています。
また、纏まってない物はスレ内記事まんまコピペすることもありますので、各自読み取ってください。

【注意】
2016/6/17付で、ぼくは航空管制官を販売しているテクノブレイン様のホームページで無許諾でデータやプログラムの改変(改造シナリオの作成に値?)、解析は著作権法違反になるというお知らせが発表されました。
場合によっては法的処置をとる場合もあるとのことですので、ご注意ください。
詳細
お客様各位

「ぼくは航空管制官」シリーズやその他の弊社製品におきまして、国内外で不正に改変されたシナリオデータが公開、あるいは販売されているとのご指摘を一部ユーザ様よりご報告頂いており、「正規ユーザの権利を守るためにも対処して欲しい」とのご要望をいただいております。

弊社の承諾を得ないデータやプログラムの改編および解析(リバースエンジニアリング)は著作権法違反となり、公式に許諾をいただいている航空会社様等との契約に違反する可能性もあるため、このような事例に対しては関係各所と協議の上、順次法的処置を取らせていただいております。

これら無許諾で改変されたデータおよびプログラムを使用された場合のトラブルは、サポートの対象外とさせていただいておりますのでご了解ください。

なお、個人利用の範囲であっても、無許諾での実在の航空会社の名称・ロゴマーク・機体マーキング・便名等の使用は航空会社様からの訴訟の対象となる場合がありますのでご注意ください。

Dear Customers,

We have received reports from certain users that the “Air Traffic Controller” series and other Technobrain products have been subject to unauthorized scenario modification, and that such altered data has been disclosed and/or distributed throughout Japan and overseas. We must address this issue to protect the rights of our authorized users.

Any alternation or reverse engineering of the data or program, or any portion thereof, or unauthorized use of the data or program for any purpose other than originally agreed constitutes an infringement of Technobrain’s copyrights and may constitute a breach of contract entered with airline companies or other companies who have been granted official licenses. If any of the above cases is found, after consultation with relevant parties, we may be forced to take legal action as necessary.

In the event that unauthorized use of altered data or program is discovered, any trouble that may occur thereafter will be excluded from the scope of our service, and no longer be supported.

共通事項

拡張子って何?バイナリって何?レジスタって何?って人は申し訳ないけどもう少し詳しくなってから来てね
慣れれば簡単なので、色々作ってぼく管を盛り上げていこう

注:無理なリクエスト等は辞めておくようにしてくださいね!

機体デザインの改造(リペイント)

ある程度航空機の知識が必要なので「ゲーム」としてプレイをしている人にはリペイントはお勧めできない
少なくともゲームの世界でしか航空機を見たことが無い人は辞めておく事を強くお勧めする(ネタ機作成においてのみこの限りではない)
機体ファイルは以下の4種類のデータで構成される
4種類とも「C:\Program Files\Lichterfelde\atc3\local\(空港の4レターコード)\models\(後述記載の機種名)\(後述記載の航空会社コード)」 (東京ビッグウイング、沖縄ブルーコリドー、その他各空港の一部機体)
もしくは「C:\Program Files\Lichterfelde\atc3\common\models\(後述記載の機種名)\(後述記載の航空会社コード)」 (上記2空港以外)にある

bmp
  • bmp
    • 機体のテクスチャ。航空機によって枚数が異なる
    • サイズは2のべき乗の正方形(64×64、256×256、512×512、1024×1024など)。無論一般的には大きいほうが高画質となる
      しかしテクスチャサイズが二倍になると処理する面積は4倍になるのでその分負荷がかかる
      (スペックギリギリのパソコンでは一般的サイズのままのほうがいいかもしれない)
      テクスチャサイズによる画面描写の画質の違いについて説明しているサイトSkyShip
    • 一般的なテクスチャのサイズは256×256(コックピットウィンドウまたはキャノピは64×64)で、このサイズのリペイントがもっとも一般的である
    • ペイントブラシ等を使って簡単に改造ができるが、リペイントし易い機体とし難い機体で極端に差がある
      さらに、し易い機体であってもある程度腕が無いと出来ないリペイントもあるので注意
    • リペイントの仕方は人それぞれなので後は自分で研究と努力である
      はじめは大きいサイズで編集して、完成したら256×256や512×512に縮小させるのもひとつの手ではある
      また、写真編集ソフト(カメラに付属のものでも可)を使うと便利な場合がある
    • 上記サイト(SkyShip)ではPhotoshop形式のデータをダウンロードすることもできるので、それで作り方を参考にしてもよいだろう
      なおPhotoshop以外のソフトでも(フリーソフト等も)見ることができる
    • サイズが大きくないのでドット絵魂を炸裂させることも有効。細かいロゴや微調整に
dds
  • dds
    • 飛行機のレジスタやシリアルナンバー画像。翼や胴体に書かれた「JA711A」や「46-5714」とか
    • 64x64ドットでA8R8G8B8の32bit
    • 透過部分についてはアルファチャンネルを理解する必要がある
    • できあがったddsにはミップマップの生成を忘れずに。機材の表示がおかしくなる原因の一つ(ハワイ以降公式でないものもあり)
    • レジ位置の調整など手間がかかっても効果はいまいちな場合もある
    • 作り方だがDirectX SDKをインストールする。

この中で使用するのはDirectX Texture toolで、二枚の画像を用意する。

レジの「色」画像として64x64サイズの(単色で塗りつぶす)bmpと、
もう一枚はレジの文字画像(64x64)である。

レジ文字は作りたい色などに関わらず、文字部分を白、透明部分を黒で作る、またはそのように加工する。
灰色などは半透明として処理され、カラーは意味を持たない。

Direct X Texture toolを開き「open」でまず単色のbmp画像を読み込む。
「format」→"Change Surface format"で"Unsigned 32bit A8R8G8B8"を選択
「file」→"Open Onto Alpha Channel Of This Texture"でレジ画像を選択する。
ミップマップを生成する場合は「format」→Generate Mip Maps
あとはセーブするだけ。これでデフォルトと同じ仕様でddsを生成できる。

  • ddsファイルをdirectX Texture toolに関連付けしておくと便利かもしれない。

GIMPを利用して作るほうが簡単かもしれない。
まずはGIMPGIMP DDS Pluginを用意する。
GIMPをインストール後、GIMP DDS Pluginのzipファイルを解凍し、中の.exeファイルをC:\Program Files\GIMP 2\lib\gimp\2.0\plug-insに入れる。
その後GIMPを起動し、ファイルタブの新しい画像を生成をクリック。出てきたウィンドウのキャンパスサイズを幅64、高さ64に設定し、詳細設定の+をクリックし塗りつぶし色を「透明」にする。
出来た画像に好きなフォントで好きなレジ番を入力。
あまり画像いっぱいに入力すると黒い筋が出たりするので要注意。
その後レイヤータブの新しいレイヤーを追加をクリック。幅と高さを64にし、塗りつぶし方法を透明にして作成。
そしたらもう一度レイヤータブをクリックし、下のレイヤーと結合をクリックする。
完成したファイルをdds形式でエクスポートする。ファイルタブの名前を付けてエクスポートをクリックし、ファイル名末尾に.ddsを付けてエクスポート。
英語のウィンドウが出てくるので、「Format」をデフォルトから「RGBA8」に変更し、「Mipmaps」をNoからGenerateに変えてエクスポートすれば完成。

  • おすすめのフォント
    • 「ANA、JALのフォント」:ANA、JALの機体番号に使われている特徴的な書体を再現したもの。
    • 「AmarilloUSAF」:アメリカ空軍機の登録番号の書体を再現したフォント。米軍機のほか、香港に登場するNWA機にも使える。
    • 「Blockschrift für Flugzeuge」:WWⅡドイツ軍機の識別番号を再現したフォント。ヨーロッパ機など数字が入らないレジの機体の再現に使える。
    • 「Karitika」:Windowsにデフォルトで搭載されているフォント。多くの場面で使える。
pvm
  • pvm
    • 3Dモデルデータ。ポリゴンやUV、マテリアル設定など
      実用的なインポータ、エクスポータはまだない
    • 上記ddsやbmpの指定にも使われている
    • つまりどのDDSを使用するかに関する記述があるため、レジスタやシリアルナンバーごとにpvmファイル(及びddsファイル)を作成する必要がある
      上記記載のモデルデータを改造せずに新しいレジやシリアルの作成(ddsの呼び出し)のためだけにpvmファイルを新たに作る場合、各機体フォルダにあるJA0000.pvmをテキストエディタ(メモ帳等)で開いて「JA0000」の文字をすべて「JA1234」等の作りたい新しいレジやシリアルに置換すればよい
      なおbmpの置換も同様である
    • 中のデータだが、Vetexの記述は「点の位置」「点の向き」「テクスチャでの位置」※「ddsファイルの位置」となっている。※ddsの指定がある場合のみ
      これらvertex同士を三角形・・・逆三角形?で結んでポリゴンを表示させるのがFACEである。
      つまり三角形の集合体で飛行機が出来ている。
      点の向きはスムージング(ポリゴンのなめらかな処理)や面の方向に使われているものと推測。
dll
  • dll
    • 機材のアニメーション関連。大半は解析されていない
    • dll改造の試みとしてはぼく管スレアップローダーのA319ファイルにてギアの位置(トーバーの接続)を改造してある。
    • 旋回性能、エンジン・フラップ・ギアなどアニメーション、離着陸性能などが記述されている模様。
    • ja.dll n.dll b-.dllなどpvmファイルの最初の文字から読み込まれる。例B-6800.pvm→b-.dll
    • このファイルがないとpvm改造で機体を作っても正常に表示されない。
  • なお1つ上の階層にあるa300.datのようなファイルは機材のカメラ遠近やアナウンスの有無、飛行中機体の揺れ(仙台以降のみ)などを設定している
  • 用語集
    レジスタ

    レジスタ(機体記号)

    • 民間の航空機付けられる個別の機体ごとの認識記号(車でいうナンバープレートみたいなもの)で、英字や数字が使われる
    • 「JA703A」や「N777UA」「F-GZND」など。
    • 「レジスタ」や「レジストレーション」ということもある
      なお「レジストレーションナンバー(レジ番)」ということもあるが、海外では数字が入っていない機体もあるのであまり「ナンバー」を付けることはしない
    • シリアルナンバーも含んでテイルナンバーと呼ばれることはある
    • 航空ファン(特にスポッター)の間では「レジ」と言うとこのことを示す
    シリアルナンバー

    シリアルナンバー(機体数字)

    • 軍用の航空機に付けられる個別の機体ごとの認識記号
      アメリカ空軍や航空自衛隊などの軍用機には、数字のみ用いられる
    • 「46-5725」など。ぼく管においては、百里基地航空祭、中部国際空港セントレア登場のブルーインパルス機を除き「52-3A10」のようにアルファベットの混ざった架空のものが使われている。
    • 航空ファン(特にスポッター)の間では「シリアル」と言うとこのことを示す

リペイントができない、航空機のことが分からないなどがあればリペイントサイトに公開されているリペイントを利用するのが妥当だろう
bmpの構造分析や作成時の途中確認などに、「ぼくは航空管制官3 ANAエディション」に付属の「飛行機ぐりぐり」を利用すると便利かもしれない

シナリオの改造

共通注意事項

  • メニュー画面関係はa3cファイル、シナリオの運行情報等はa3sファイルに記載されている
  • ほとんど全てのファイルにおいて、テキストデータの文字コードはUnicode(UTF-16)であり、マルチバイトのデータはリトルエンディアンである
  • 大抵4バイトで1セットになっている(4の倍数バイトで区切れる)
  • 空白は「0x00」で埋める
  • 画像はbmp形式
  • 時間を入力する場合(a3sファイル作成時がメインかな)、24時間制にする→数字をそのまま連続で並べる→16進数に変換→リトルエンディアンにして記載する。なお4バイト使用する
    • 「時分秒」で入力する場合
      例えば午前6時54分30秒の場合、6時54分30秒→65430→0xFF96→「96 FF 00 00」と記載
    • 「時分」で入力する場合
      例えば午後5時43分の場合、17時43分→1743→0x06CF→「CF 06 00 00」と記載
  • テキスト側に記載するのかバイナリ側に記載するのかわかりにくいときは「テキスト側に記載」と書いてあればテキスト側に記載する。書いてなければバイナリ側に記載する
  • 用語集
    リトルエンディアン

    「0x1234ABCD」という4バイトのデータをデータの下位バイトから記載する、つまり「CD AB 34 12」と並べる方式をリトルエンディアン(little endian)という
    例えば10進数で「123456」を表すには16進数に直して「1E240」→リトルエンディアンにして「40 E2 01 00」と記載すればよい
    ちなみにn進数の変換にはWindows搭載の電卓で十分だろう

    0x00

    「0x」は16進数って意味。以下これが出てきたら同様の意味を表す
    「0x1234」は「16進数で1234」ってことを意味している
    バイナリエディタは16進数で表示されているから、特に気にせずに普通に「00」を埋める

ちょっと長くなったので詳細は別のページへ

シナリオエディタ

バイナリエディタでいじれるレベルに近くないと厳しいかと
もちろんシナリオエディタ使って編集したほうが圧倒的に楽
作者さんに感謝

  • ATC3 Scenario Builder『リンク切れ』
    • Hiroさんによるサイト
    • 東京ビッグウイングのみ対応
    • a3cとa3sの両ファイルが生成される
    • 初心者でもとっつきやすい
  • White Arrow Express『リンク切れ』
    • 勝田さんによるサイト
    • シナリオ公開場→No,3改造シナリオ以外のデータ から空港にあったシナリオエディタをダウンロード可能
    • a3sファイルを初めに用意し、編集する
      したがって生成もa3sファイルのみなので、a3cファイルは自分で用意するか作成する
  • ATC3 Scenario Hunger『リンク切れ』
    • 複数メンバーによるサイト
    • 右メニュー→支援ファイル→製作支援ソフト からシナリオエディタをダウンロード可能
    • 勝田さんのシナリオエディタに機能を追加したもの
  • file302.zip『リンク切れ』
    • 名前もわからないどなたかが作成した、a3sファイルの改造用プリセット
    • 東京ドリームゲートウェイをベースに作っているので、他空港は微妙に差があるかもしれない。その時は臨機応変に。
    • 出発機、到着機、移動機、さらにイベントまである
      上記シナリオ改造方法と合わせて参考にするといいだろう
  • 現在すべてのページがリンク切れになってしまっているが、Webアーカイブを利用しての閲覧は可能である

ボイス改造関連

エラー音対策

ぼく管3でデフォルトに含まれていないコールサイン、空港を読み込んだ場合にエラー音が発生する。

解決方法

これはボイスデータが含まれていない事もあるが、予めボイスリストを読み込んでおり、リストにない音声をエラー扱いにしているためである。解決方法は二つあり、
一つ目はエラー音のファイルを無音のものに置き換えてしまうこと。
これはlocal\各空港\voice内のerror.wavファイルを無音のwav、もしくは同フォルダ内のnoise.wavを使用して置き換える。
周波数やビットレートはデフォルトのものと合わせたほうが良い。

二つ目はボイスリストを書き換えること。
ボイスリストは先ほどと同じくlocal\各空港\voiceフォルダ内にある。
CAおよびターミナルがlist_ca_rjtt.csvで航空無線はlist_rjtt.csvといった具合になる。
エクセルファイルだがメモ帳での編集も可能。
手間がかかるのでオススメしないが、音声を追加して使用する場合避けて通れない方法。

voiceフォルダにあるatc.dat

43便624
624 名前:大空の名無しさん[sage] 投稿日:2011/05/28(土) 20:47:39.18
voiceフォルダにあるatc.datいじってるんだけど
そのdatにかきこめる数って限られてる?
例えば、klm..........atc30
atc31
atc32
atc33
atc34
って感じで付け加えたら、外人の音声で交信ができる。
ところが、ある程度の数加えると、シナリオ上でエラーがでる
43便630
630 名前:大空の名無しさん[sage] 投稿日:2011/05/29(日) 04:03:51.29
>>624
お前は俺か
調度こっちでも弄っていたんだけど、あまり数を加えても意味がないかも
ここのdatは特別扱いの音声(千歳のAIRFORCE1など)を設定してる模様
んで航空会社の機材の登場する順番にatc31,atc32・・・と割り振ってる(たぶん)

管制官、CAなど音声ファイル自作に挑戦する方へ

使用するファイルについて

ぼく管で使用するファイルはwavファイル。
BGMを除き1チャンネル 22050Hz 16ビット は必ず守ること。
また、ファイルの属性によっては読み込んだときにエラーで落ちる場合がある。
ノーマライズなどを一括して行ってくれるソフトでファイルを書き換えてみると解決する。

便利なソフト

HD Recorder
俺ヴォイス録音用に。長時間連続録音可能。

SoundEngineFree
フリーで高機能なwav編集ソフト。無線、アナウンス風の加工、ノーマライズなど

Audacity
こちらも編集ソフトだが、無音部分で音声ファイルを切り分ける機能が優秀。
一括収録して後々切り分ける手間が省ける。

wavTar
大量のwavファイルを管理するために開発されたソフト。
バラバラのwavファイルを一つにまとめ、その位置情報を記憶しておき、編集後元通りに分割してくれる。
周波数を変える用途には使えない(ファイルの長さが変わる)が非常に便利。

えこでこツール
mp3からwavへの変換などに使用。シンプルで非常にわかりやすい。

これだけのツールを揃えてしまえば音声ファイルで時間のかかる部分はリネーム作業くらいだと思います。
こればかりは人力になってしまうと思うのですが・・・いいソフトがあれば紹介してください。

weather.dat

天候・空の色を指定しているファイル。
local/空港/data/weather にある。

weather.dat解析してみた

43便358
358 名前:大空の名無しさん[sage] 投稿日:2011/05/17(火) 23:01:49.10
シナリオ作者諸氏にお知らせ。weather.dat解析してみた↓
http://www.project-arc.jp/bokukan/upload/src/file308.jpg
デフォルトのデータとかぶる部分はweather.datが優先される傾向があるかも?
新千歳の雪シナリオはweatherファイルで定義できないず雪の降る夏になる。
この解析データは東京Dだけど鹿児島は大体同じだけど違う模様。
これを利用すれば素敵な夕焼けやぱっとしない空、霧なんかも再現可能。
ちなみに東京Dstage4は霧がどんどん深くなる設定を(シナリオで定義)してる模様
もっと詳しく解析してまとめてくれる方、頼みましたよ。
43便367
367 名前:大空の名無しさん[sage] 投稿日:2011/05/18(水) 17:40:12.09
他人に投げたはずが結局自分で解析してしまった↓
http://www.project-arc.jp/bokukan/upload/src/file308.jpg
雲や霧の設定はシナリオファイルでも同様だと思われる。
ただやはりシナリオファイルは優先されていない模様?
シナリオ名と同じweather.datファイルがあればメニューファイルでweather.bmpを定義せずとも読み込んでくれる
デフォルトのデータを参考にしつつオリジナリティ溢れるシナリオを作っちゃってください
作成例
http://www.project-arc.jp/bokukan/upload/src/file309.jpg
43便370-371
370 名前:大空の名無しさん[sage] 投稿日:2011/05/18(水) 23:05:41.99
>>367
乙です!
で、これを受けてがんばって調べてみたんだけど・・・
wether.datの0x04と0x0cバイト目について、これはシナリオファイルの0x3Eと0x0Cと同じ値な訳だが、
過去の公式シナリオをいろいろ見ると、最大値はそれぞれ12と31。
もしやと思って6,20と12,20を比較してみたら案の定以下の通り。
http://www.project-arc.jp/bokukan/upload/src/file310.jpg
どうもシナリオの日付を定義しているようです。
テクノのYS11のページにあるPegasus3D Vの紹介ページの一番下に書いてあることからして間違いないかと。
371 名前:大空の名無しさん[sage] 投稿日:2011/05/18(水) 23:06:21.51
あ、まちがえた。
0x3Eと0x3Cね
43便372-373
372 名前:大空の名無しさん[sage] 投稿日:2011/05/18(水) 23:18:57.34
>>370
GPSナビみたいに、太陽の位置のデータをもってるの?
ナビだとヘッドライト点灯とか、西日警告とかあるけど、
ぼく管は光源の処理をしてる?
373 名前:大空の名無しさん[sage] 投稿日:2011/05/18(水) 23:26:54.71
自動気象生成システム「ACE3」
「ACE3」は、指定の緯度経度地点でのその日時の光源の状態を太陽と地球の軌道からスペクトル化、霞や霧の状態も含め、地上のあらゆる地点での光の状態を正確にかつリアルタイムにシミュレーションするシステムです。
これまでは時間帯毎に別にデータが必要でしたが、これにより共通のデータでの実現が可能になりました。
ttp://www.technobrain.com/20050105/product/3dipedia/ys/more/index.html より
43便376
376 名前:大空の名無しさん[sage] 投稿日:2011/05/18(水) 23:37:29.27
>>370
おおっなるほど。これは気づかなかった
シナリオに季節がないと思っていただけに驚きです
>>372
その時間の太陽方向で飛行機・建物のライティングが変化します。
時間がたつにつれ傾いていき、沈んでしばらくたつと空の色が無効化(夜化)されていきます。
>>368
羽田だけでなくweatherファイルが定義されている千歳以降なら「おおまかな」内容に違いなく、別空港から流用も可
http://www.project-arc.jp/bokukan/upload/src/file311.jpg
43便383,385
383 名前:大空の名無しさん[sage] 投稿日:2011/05/19(木) 07:25:37.55
詳しい人に質問なんですけど、自作の改造シナリオ(仮にステージAとします)
を作成して、ステージAと同じファイル名のweather.datを作らなかった場合、
ステージAで実際描画される天気はどのようなものになるのですか??
385 名前:大空の名無しさん[sage] 投稿日:2011/05/19(木) 13:07:49.70
>>383
背景色以外の部分はシナリオファイル中でも同じことが定義できるので、
wether.datはなくても問題ないかと
この場合、背景色というか空の色はデフォルトの水色になります。
明け方や夕暮れだとちょっと味気ないかもね

エディタ

上記を理解したもののファイルをいじるのが面倒な場合はエディタを使うと楽。

  • ATC3 Scenario Hunger『リンク切れ』
    • 複数メンバーによるサイト
    • 右メニュー→支援ファイル→製作支援ソフト からエディタをダウンロード可能
    • 読み込み・書き込み対応

その他

ヘッドオンパッチとかその辺

後ろから追突しないように自動で止まるようになるパッチ
滑走路手前でズラーっと待機させるとかできるかもね
言うまでもなく難易度下がるので注意
I am Air Traffic Controller 3 – Fansite
ただ今、上記のサイトでダウンロードができません(2012/02/16現在)
ここからダウンロード可能。
展開に7zipなど7z形式のファイルを解凍できるソフトが必要。
展開に7zipなど7z形式のファイルを解凍できるソフトが必要。

東京ビッグウイングとエクステンドステージ1の共存

東京ビッグウイングのexeは28機制限が無い
エクステンドステージ1の東京の実行ファイル(exe)は新しくなったため28機制限がある
よって、昔作られた改造シナリオが動かないことがある
どうしても動かしたい人は以下の方法で共存可能

ES1導入前のはなし
Lichterfelde/atc3の中のatc3game.exeとatc3rjoo.exeをatc3rjtt1.exeとatc3rjoo1.exeにリネーム
Lichterfelde/atc3/local/rjtt/の中のsequenceフォルダを中身ごとコピーして同じディレクトリに貼り付け
フォルダ名が「コピー ~ sequence」とかになるだろうからsequenc1とリネーム。(誤字じゃないよ)
Lichterfelde/atc3/local/rjoo/も同様にしてsequenc1を作る
東京のairport.datをairpor1.datにリネーム
atc3rjtt1.exeの中身をバイナリエディタで開いてsequence\%からsequenc1\%に変更。airport\airportからairport\airpor1に変更
atc3rjoo1.exeの中身をバイナリエディタで開いてsequence\%からsequenc1\%に変更
ES1インストール
あとはプレイしたい改造シナリオのa3cファイルをバイナリエディタで開いて0x0414からの部分にatc3rjtt1と追記(大阪ならatc3rjoo1)
以上