Mod に関する詳細のメモ
リソースの検索
WoT クライアントオリジナルのリソースは、 インストールフォルダの res フォルダおよび res_bw フォルダ以下に置かれている。 ユーザーがリソースを置き換える場合に、 オリジナルのファイルに手を加えなくても済むように、 res_mods/XXX (XXX はクライアントのバージョン) に サブフォルダの構成も含めて同名のファイルを置くと そちらが優先して用いられるような仕組みとなっている。
Mod やスキン、音源データなどはこの仕組みを利用して導入することができる。
Mod 登録の仕組み
現時点で WoT の多くの Mod は、 Mod を登録するのに以下に示す3通りの方式のいずれかを採用している。
CameraNode.pyc
res_mods/XXX/scripts/client/CameraNode.pyc を設置する方式である (XXX はクライアントのバージョン)。 設置した CameraNode.pyc は scripts/client/mods/*.pyc にマッチするファイルを探し、 見つかったファイルを Mod として登録しようとする。 WoT クライアントオリジナルの res/scripts/client/cameranode.pyc を置き換える形で実現されている。
多くの Mod で採用されている方式であるが、 複数 Mod のインストール時に CameraNode.pyc が干渉するといった問題がある。 たいていの場合はどの CameraNode.pyc をインストールしてもよいが、 CameraNode.pyc の動作が上記のようなものであると保証されているわけではないので マイナーな Mod を導入する場合は注意が必要である。
mods フォルダ
res_mods/XXX/scripts/client/gui/mods フォルダに mods_YYY.pyc を設置する方式である (YYY は Mod の名称) 。 XVM, AutoaimIndication, TessuMod などで採用されている (XVM は無名の Mod として mods_.pyc を設置)。
Mods ファイルの検索と登録は res/scripts/client/gui/mods/__init__.pyc が行う。 WoT クライアントオリジナルのファイルを置き換えないので、 CameraNode.pyc のような干渉問題は生じない。
この方式は WoT クライアント 0.9.10 から使用可能になったようで、 今後はこちらが推奨と考えられる。
リソースの置き換え
オリジナルのスクリプトと同名のファイルを res_mods/XXX 以下に設置する方式。
オリジナルのファイルは使用されなくなるので、元の機能を完全に置き換える必要がある。