モジュール システムのさまざまなファイルは互いに参照しあい、参照されたファイルで宣言された変数、定義、またはタプルをインポートしています。各ファイルの先頭に次のような行があり、参照先を確認できます。
from 参照先ファイル名 import *
どのように相互作用しているか一覧できるよう、この概要ページを用意しました。Native のモジュール・システムを想定していて、他のモジュールでは多少の変更が必要になるでしょう。ファイル名をどれかクリックすると、やり取りしているファイルを その下の見出しで確認できます。
訳注: 下記 .py を省略したファイル名にマウスポインタを当てると反転するので、どこかへジャンプするような印象ですが、実際はその下の表示を絞り込みます。リセットするには先頭のボタンを押します。なお、このページの情報が最新の MOD 開発システムと合致しているか、訳者は未確認です。フォルダ内の全ソース・ファイルから検索するなど、随時調べるほうが確実です。それには例えば Cygwin のような比較的小規模な Unix ライクの環境があると便利です(より大規模な Unix 仮想環境だと、動作確認のための Windows との行き来が煩雑になり、かえって不便かも)。
説明が繰り返しになりますが、ModSys のフォルダには MOD のソース・コードとして 4 種類の .py ファイルがあり、それぞれ用途が異なります。
訳注: 下記は Module_system 1.171 フォルダでの話です。Module_data 1.171 フォルダにある Ground_specs.py などには、リストとタプルの羅列と、コンパイル用のコードが共存しています。
- header_*.py - ヘッダ・ファイルにはゲームが使う定数が含まれています。変更は可ですが、通常は非推奨または不必要です。新しい定数を自分で定義したければ、相応の module_* ファイル内で できます。利用可能な全「命令」は header_operations.py に文書化されています。
- ID_*.py - ID ファイルには、MOD 内の全ての数値インデックスが含まれています。MABL/MBScript などでは、全てをインデックスで表わされるもののリストとして見ることができ、ID ファイルにはこれらのインデックスが含まれています。ID ファイルはコンパイルを行うたびに再作成されるので、自分で変更する必要はありません。例えばゲーム中にエラーが発生し、インデックスだけ報告されて名前が報告されないような場合、自分のアイテムにどのようなインデックスがあるかを確認するのに これらのファイルを使います。
- module_*.py - モジュール・ファイルは MOD の「ソース・コード」の本質で、これらを編集して独自 MOD を作ります。兵種、物品、シーン小道具、シーンなどの名前や値を定義し、リソース(3D モデル、テクスチャ、音声など)と関連付け、使うタイミングなどを指定します。ModSys のフォルダ丸ごとを時々バックアップすることをお勧めします。
- process_*.py - プロセス・ファイルは、build_module.bat から呼ばれ、(リストやタプルで書かれた)MOD のソースからゲーム・エンジンが解釈可能な数字の羅列に「コンパイル」します。変更が必要になることは滅多にありません。変更する場合、自分が何をしているのかを確実に理解する必要があります。いきなり変更するようなことは避けて下さい。ModSys の他の部分とは異なり、プロセス・ファイルはベタの Python で書かれています。
header_animations
header_dialogs
header_factions
header_ground_types
header_map_icons
header_meshes
header_particle_systems
header_postfx
header_presentations
header_quests
header_scene_props
header_scenes
header_skins
header_sounds
header_strings
header_tableau_materials
header_triggers
ID_animations
ID_factions
ID_info_pages
ID_items
ID_map_icons
ID_menus
ID_meshes
ID_mission_templates
ID_music
ID_particle_systems
ID_parties
ID_party_templates
ID_postfx_params
ID_presentations
ID_quests
ID_scene_props
ID_scenes
ID_scripts
ID_skills
ID_sounds
ID_strings
ID_tableau_materials
ID_troops
module_animations
module_dialogs
module_factions
module_info_pages
module_items
module_map_icons
module_meshes
module_mission_templates
module_music
module_particle_systems
module_parties
module_party_templates
module_postfx
module_presentations
module_quests
module_scene_props
module_scenes
module_scripts
module_simple_triggers
module_skills
module_skins
module_sounds
module_strings
module_tableau_materials
module_triggers
module_troops
module_variables