Homeworld Remastered Collection Guide

日本人MOD製作者向けガイド⑥ for Homeworld Remastered Collection

日本人MOD製作者向けガイド⑥

Overview

HWRMの日本人MOD製作者向けのガイドとなります。ワークショップで公開中のA-test Template MODを利用していきます。⑥ではコピーによるユニットの新規追加方法についてです。

ユニット追加の手順について

今回はコピーから学ぶ、ユニットの新規追加手順についてです。
まずは、手順を見て行きましょう。
大まかに分類すると、こんな感じになります。

①材料を用意する。
②生産メニューへの登録をする。
③生産フォーメーションへの登録をする。
④AIへの登録をする。

案外書き出してみると項目は少ないですが、
多くの作業を同時並行する部分が多く、エラーを引き起こしやすいです。

まずは作業前にバックアップの習慣をつけましょう。

①材料を用意する

新しいユニットを追加する上での材料についてです。
この場合は当然ながら

shipフォルダに入ってるユニットのデータと、
そこから連なる関連ファイル郡

を差します。

関連ファイルとは、

使用する武装性能設定ファイル、
搭載するサブシステム、使用するエフェクト等

枝分かれしながら繋がるファイルを差します。

もしも自作ユニットを追加したいと思ったら、
どこまでを自作するかを明確に線引きする事が大事です。

——————————————————————
今回はコピーという事で、自作する物はほぼありません。
武装系データもエフェクトもそのまま流用する為です。
A-test勢力にはコルベットが存在していませんので、
今回はコルベットをコピー追加したいと思います。

まず、shipフォルダの

dio_corvette

をデスクトップにでもコピーします。
その後、フォルダの名前と、ファイルの名前をaaaにリネームします。

shipファイルを開き、BuildFamilyをaaaに変更して生産設定を適応させます。

NewShipType.BuildFamily = “Corvette_aaa”

これだけで基本的な部分は完了。
後はお好みに応じて性能設定など弄っても大丈夫です。
作業が終わったらshipフォルダに追加しましょう。

②生産メニューへの登録をする

①で材料を用意が完了したら、次は生産メニューへの登録です。
生産メニューは1つのファイル

def_build.lua

で管理されています。

場所

scripts/races/aaa/scripts/def_build.lua

このファイルではユニットだけでなく、サブシステムも同時に管理しています。
生産には条件を付属する事も可能で、
例えば研究の項目を完了しないと生産できない、
サブシステムを開発しないと生産できない、といった制限をかけることが出来ます。

{ Type = Ship, ThingToBuild = “aaa_corvette”, RequiredResearch = “”, RequiredShipSubSystems = “”, DisplayPriority = 210, DisplayedName = “Corvet (x2)”, Description = “Anti-fighter & corvet”, },

↑今回の場合はこのブロックを追加してください。
これで生産メニューへの登録は完了です。

——————————————————-

コード解説。
Type =         shipかSubSystemを選択します。

ThingToBuild =     指定するユニット、サブシステムのフォルダ名

RequiredResearch =   必要なリサーチ。
def_research.luaで設定されてるリサーチ名を使用します。

RequiredShipSubSystems = 必要なサブシステム。
ここで必要な名前はサブシステムフォルダ内のsubsファイルの、
NewSubSystemType.typeString=で指定される名前が入るようです。
               
DisplayPriority = 登録番号。数は少ないほどメニューの上に表示されます。

DisplayedName = 生産メニューに表示する名前

Description = 生産メニューに表示する解説。

③生産フォーメーションへの登録をする

生産メニューを通じて生産されたユニットは戦場に登場すると、
ビルドユニットが指定する座標に沿って整列します。
これはshipファイル上から指定されたデータを使用します。

NewShipType.paradeData = “aaa_mothership_parade” 

フォーメーションを管理するファイルはscriptsフォルダに格納されています。

scripts/formations/aaa_mothership_parade.lua

内容はユニットの指定と、ビルドユニットを中心とした座標軸管理がされています。
今回はこのブロックを追加しましょう。

paradeSlot(“aaa_corvette”,{ 1112, -536, 1005, },{ 0, 0, 1, },{ 1, 0, 0, },0)

もしもビルドユニットの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による新ユニットの運用状況。
ログの確認によるエラーの有無。

全て問題無く動けばユニットの追加は無事終了となります。

SteamSolo.com