はじめに
UnboundまたはUnbound2で作成したModは、ゲームが自動的に認識してくれるわけではありません。
Modファイルのパスと表示したい要素をXMLに指定して読み込ませる必要があります。
ただし、Python+Unboundの場合は例外です。(PythonのメソッドからUnboundをロードする)
また、既存の要素を置き換える場合と、新規要素を増やす場合では若干操作が異なります。
Unbound/Unbound2共に
といった大まかなイメージを持っておくとよいです。
これらの操作はゲームのアップデート毎(ゲームフォルダが変わる度)に必ず要求されますが、半自動的に管理するためのModも存在します。
Modをクライアントに読み込ませる方法
ファイルとフォルダ
省略のため、頻出するパスは以下のように表します。res_mods内で途中のディレクトリが欠けている場合は適宜作成してください
- gui:
(World_of_Warships)\bin\(最新バージョン)\res_mods\gui
フォルダ - uss_settings:
gui\uss_settings.xml
Modのパスを指定するファイルです。存在しない場合はUnpackerから抽出してください - battle_elements:
gui\battle_elements.xml
表示する要素を指定するファイルです。存在しない場合はUnpackerから抽出してください
編集するファイル
既存要素を置き換えるMod | 新規要素を追加するMod | |
Unbound | uss_settings |
uss_settings , battle_elements |
Unbound2 | なし | battle_elements |
新規要素を追加するModの場合、battle_elements
は必ず編集することになります。
また、UnboundではModファイルパスを必ず指定する必要があります。
Unbound2ではファイルが自動的に読み込まれるため、uss_settings
を改変する必要はありません。
uss_settingsの設定
uss_settings.xml
を開き、<mods>
要素の下に作成したModのファイルパスを記述します。
<mods> <swffile>../unbound/mods/ModFileName.swf</swffile> <xmlfile>../unbound/mods/ModFileName.xml</xmlfile> </mods>
例: gui\unbound\mods
にTestMod.xml
とTestMod.swf
がある場合
battle_elementsの設定
重要: 既存の要素を置き換えるModの場合、このファイルを編集する必要はありません。
パラメータ
hitTest
: UIの当たり判定を制御します。クリックやD&Dを利用する場合はtrueに、それ以外はfalseを指定しますtempModName
: 他のModと競合しない自由な名前を設定してください。慣例ではunboundModName
になっていることが多いですrootElementName
(Unbound)またはelementName
(Unbound2): Modとして読み込む要素の名前です。
<element>
要素
<elementList>
の内側に追加します
- Unboundの場合
<elementList forceHideAll="false"> <element class="lesta.libs.unbound.UnboundElement" name="tempModName" url="battle_stats.swf"> <properties hitTest="true|false" rootElementId="rootElementName"/> </element> </elementList>
- Unbound2の場合
<elementList forceHideAll="false"> <element class="lesta.unbound2.UbElement" elementName="rootElementName" name="tempModName" url="battle_stats.swf"> <properties hitTest="true|false"/> </element> </elementList>
<controller>
要素
<controllers>
の内側に追加します
Unbound2では不要です。
<controllers> <controller class="lesta.dialogs.battle_window_controllers.UnboundElementController" clips="tempModName"/> </controllers>
例: Hello Worldを表示するMod
下記画像だとrootElementId="TestModRoot"
またはelementName="TestModRoot"
になります
半自動でModを登録する方法
ModsInstallerというPython Modによって、これらの作業を自動化することができます。
使い方の説明は配布元のマニュアルに譲りますが、編集するファイルや内容等、この記事の知識が前提として必要になります。作者: Monstrofil, Roslich
drive.google.com