Overview
HWRMの日本人MOD製作者向けのガイドとなります。ワークショップで公開中のA-test Template MODを利用していきます。⑥ではコピーによるユニットの新規追加方法についてです。
ユニット追加の手順について
今回はコピーから学ぶ、ユニットの新規追加手順についてです。
まずは、手順を見て行きましょう。
大まかに分類すると、こんな感じになります。
②生産メニューへの登録をする。
③生産フォーメーションへの登録をする。
④AIへの登録をする。
案外書き出してみると項目は少ないですが、
多くの作業を同時並行する部分が多く、エラーを引き起こしやすいです。
①材料を用意する
新しいユニットを追加する上での材料についてです。
この場合は当然ながら
そこから連なる関連ファイル郡
を差します。
関連ファイルとは、
搭載するサブシステム、使用するエフェクト等
枝分かれしながら繋がるファイルを差します。
もしも自作ユニットを追加したいと思ったら、
どこまでを自作するかを明確に線引きする事が大事です。
——————————————————————
今回はコピーという事で、自作する物はほぼありません。
武装系データもエフェクトもそのまま流用する為です。
A-test勢力にはコルベットが存在していませんので、
今回はコルベットをコピー追加したいと思います。
まず、shipフォルダの
をデスクトップにでもコピーします。
その後、フォルダの名前と、ファイルの名前をaaaにリネームします。
shipファイルを開き、BuildFamilyをaaaに変更して生産設定を適応させます。
これだけで基本的な部分は完了。
後はお好みに応じて性能設定など弄っても大丈夫です。
作業が終わったらshipフォルダに追加しましょう。
②生産メニューへの登録をする
①で材料を用意が完了したら、次は生産メニューへの登録です。
生産メニューは1つのファイル
で管理されています。
場所
このファイルではユニットだけでなく、サブシステムも同時に管理しています。
生産には条件を付属する事も可能で、
例えば研究の項目を完了しないと生産できない、
サブシステムを開発しないと生産できない、といった制限をかけることが出来ます。
↑今回の場合はこのブロックを追加してください。
これで生産メニューへの登録は完了です。
——————————————————-
コード解説。
Type = shipかSubSystemを選択します。
ThingToBuild = 指定するユニット、サブシステムのフォルダ名
RequiredResearch = 必要なリサーチ。
def_research.luaで設定されてるリサーチ名を使用します。
RequiredShipSubSystems = 必要なサブシステム。
ここで必要な名前はサブシステムフォルダ内のsubsファイルの、
NewSubSystemType.typeString=で指定される名前が入るようです。
DisplayPriority = 登録番号。数は少ないほどメニューの上に表示されます。
DisplayedName = 生産メニューに表示する名前
Description = 生産メニューに表示する解説。
③生産フォーメーションへの登録をする
生産メニューを通じて生産されたユニットは戦場に登場すると、
ビルドユニットが指定する座標に沿って整列します。
これはshipファイル上から指定されたデータを使用します。
例
フォーメーションを管理するファイルはscriptsフォルダに格納されています。
内容はユニットの指定と、ビルドユニットを中心とした座標軸管理がされています。
今回はこのブロックを追加しましょう。
もしもビルドユニットのHODファイルにドッキング機能が設定されているのなら、
それに沿って戦場に登場し、指定された座標に整列します。
ドッキング機能が無い場合は、指定された座標の場所にハイパースペースで登場します。
既にユニットが居る場合は、指定された方向への整列をします。
———————————————————————-
参考データ
paradeSlot(“shipフォルダ指定”,{
1112, X軸
-536, Y軸
1005, Z軸
},{
0, 不明
0, 不明
1, 不明
},{
1, 複数生産時のX軸の整列
0, 複数生産時のY軸の整列
0, 複数生産時のZ軸の整列
},0) 整列の間隔。0の場合はshipファイル側で設定されてる数値が使用されます。
④AIへの登録をする
ここでは改めて解説する必要は無いと思います。
⑤で説明したAIフォルダのclassdef.luaへの登録を行えば完了です。
全ての作業を終えたらテストプレイです。
確認する項目は、
生産メニュー。
生産。
生産後のフォメーション移行。
AIによる新ユニットの運用状況。
ログの確認によるエラーの有無。
全て問題無く動けばユニットの追加は無事終了となります。