Homeworld Remastered Collection

Homeworld Remastered Collection

Not enough ratings
日本人MOD製作者向けガイド④
By dengun
HWRMの日本人MOD製作者向けのガイドとなります。
ワークショップで公開中のA-test Template MODを利用していきます。
④では武器性能設定ファイルである「wepnファイル」と、そこから繋がる関連ファイルと応用、コピー作成などです。
   
Award
Favorite
Favorited
Unfavorite
wepnファイル基本情報
wepnファイルの説明ですが、その前に。
A-testMODのベースであるLPFMODは特に教材として作られていた訳でなく、
更にユニットの作成、更新を続けるごとに使用するファイルは増えましたが、
ファイル名などの整合性を考えずに作業していたせいで、
色々分かりづらいのは簡便してください。


さて、wepnファイルです。
wepnファイルは通常weaponフォルダに格納されています。
使用するファイルが入れられるフォルダは同じ名前でなければならない
というルールがあります。

aaa_battlecruiserで使用されている「p_gan」を見てみましょう。
StartWeaponConfig(NewWeaponType,"Fixed","Bullet","p_gun","Normal",800,6000,0,0,0,0,1,1,1,2,4,20,1,1,0,0,0.1,"Normal",0,0,0) AddWeaponResult(NewWeaponType,"Hit","DamageHealth","Target",3800,4000,"") setAngles(NewWeaponType,5,0,0,0,0) setMiscValues(NewWeaponType,0,1) setPenetration(NewWeaponType,5,1, {Unarmoured=1,}, {LightArmour=1,}, {MediumArmour=1,}, {HeavyArmour=0.6,}, {SubSystemArmour=1,}, {TurretArmour=1,}, {ResArmour=1,}, {MoverArmour=1,}, {PlanetKillerArmour=1,}, {MineArmour=1,}, {ChunkArmour=1,}, {ResourceArmour=1,}, {MissileArmour=1,}) setAccuracy(NewWeaponType,1, {Fighter=0,}, {Corvette=0,}, {Frigate=0.8, damage=1,}, {Utility=1,}, {munition=0.8,}, {SmallCapitalShip=0.9,}, {BigCapitalShip=1,}, {Mothership=1,}, {Emplacement=1,}, {UnAttackable=1,}, {SubSystem=1,}, {Resource=1,}, {ResourceLarge=1,}, {Capturer=1,}, {Chimera=1,}, {NonsenseFamily=1,}, {NonCombat=1,}, {Missile=0,}, {JCMS=0,})

↓ではパラメーターの参考サイトを。
http://hw2wiki.net/wiki.hw2.info/FunctionStartWeaponConfig.html

↓翻訳
https://translate.google.co.jp/translate?hl=ja&sl=en&u=http://hw2wiki.net/wiki.hw2.info/FunctionStartWeaponConfig.html&prev=search

見ての通り、一つのコードにいくつもの設定が連なっていて非常に編集しづらいです。
その為、ツールの
HW2 Weapon Script Editor
を多用する事になります。

HW2 Weapon Script Editor
このツールは、入手直後はセッティングがされてないので動きません。
なので、まずはセッティングをしましょう。
使用するゲームクライアントのアドレスを要求されるので入れましょう。

C:\Program Files (x86)\Steam\SteamApps\common\Homeworld\HomeworldRM\Data

その後は、一度アプリケーションを終了して立ち上げれば準備完了です。

このツールは、編集専用ファイルです。
新規作成でファイルを作る事は出来ないので注意してください。


↑はP_ganを読み込んだ画面です。
コードと、パラメーターを読み解けば、大体の所がわかるとおもいます。

--------------------------------------------------------
補足説明
Armor Family - Pentration Valueについて。
これはfamilylist.luaで分類されてる装甲値に対する性能です。
shipファイルでそのユニットごとにfamily指定でアーマー設定がされていますが、
ここでその強弱を設定する事が出来ます。
0は0%
0.5が50%
1が100%

と考えてもらって結構です。
アンチユニットなどを作る際のバランス取りに役立ちます。

Armor Family -Accuracy Value -~~~~~~
ここの表記は、AttackFamilyの間違いだと思われます。
shipファイルでそのユニットごとにAttackFamily設定がされていますが、
それに合わせ、機種による攻撃の有無、その命中率の調整を行います。
ただし、その命中率は射撃系武装のみで、ミサイルには適応されません
0は0%(そもそも攻撃不可能になる)
0.5が50%
1が100%

Always Causes danageについては検証が足りていません。

------------------------------------------------------



関連ファイルとの関係
HW2 Weapon Script Editorは編集ツールであり、
その武装の性質で必要ない項目は編集不可能に自動的に設定してくれます。

WeaponType
ではその武装の基本形式を設定します。

"Gimble", "Fixed"、"AnimatedTurret"の3種類があり、
これはツールで変更不可能なのでメモ帳で変更しましょう。
"Gimble", "Fixed"は固定式の武装に分類されます。
"AnimatedTurret"は旋回砲塔方式の武装です。

WeaponFireType
ではその武装の攻撃方法についての設定です。

"InstantHit", "Bullet", "Mine", "Missile", or "SphereBurst"の種類が用意されています。
内容は文字通りですが、上の武装タイプと組み合わせる事で理想的な武器を想定できます。
固定式の他方向発射型のイオンビームとかミサイル砲塔などなどです。
これはツールで変更不可能なのでメモ帳で変更しましょう。

Weapon Effects File
はその武装で使われる武装のエフェクト総合管理ファイルの選択です。

scripts/weaponfireフォルダの中にエフェクトネームごとのフォルダの中にあります。
(形式は***.wf)
注意して欲しいのは、
上で選択した武装に沿わないファイルは使えない事です。
たとえば、ミサイル砲塔に、弾丸系のエフェクト総合管理ファイルはマッチしないなどです。

例、p_gun.wf
hitfx = "mura_exp_conbo" bulletfx = "muraconbo" nopenetratefx = "mura_exp_conbo" deathtype = "deathBeam" scartype = "Kinetic_Large/Kinetic_Large" firefx = "p_gun_conbo" fire_sfx = "WEAPON/CARRIER/FIRE/tkbc_p_gun" nopenetrate_sfx = "explosion/medium/etg_explode_medium_plasma" hit_sfx = "explosion/medium/etg_explode_medium_plasma" hit_clamp = { 4, 2.5, }
↑wfファイルの中身で、項目は分かりやすいと思います。
hitfx = 敵にヒットした時のエフェクト
bulletfx = 弾丸として表示されるエフェクト
nopenetratefx = ちょっと不明。
deathtype = ちょっと不明。とりあえず、見よう見まねでいつも設定。
scartype = ダメージ表現をONにした際に船体につく傷のエフェクト
firefx = 射撃時に発生する発射エフェクト
fire_sfx = 射撃サウンドエフェクト
nopenetrate_sfx = "不明系サウンドエフェクト
hit_sfx = 攻撃がヒットした場合のサウンドエフェクト。
hit_clamp =エフェクトのサイズを変更できるっぽい?

エフェクトの指定はart/fxフォルダ内部のファイルを指定します。
サウンドは見た目どおりのアドレス指定となっています。

レーザービーム系では項目が少し違うようなので要参照です。
ミサイルに限ってはbulletfxは無意味なものとして扱われます。
その代わり、wfファイルと同名の形で、missileフォルダの中で指定します。
ミサイルについて
ミサイルに関しては前に説明したとおりshipファイルと構造が似ています。
参照情報で充分に対応できるでしょう。
http://hw2wiki.net/wiki.hw2.info/VariableMissile.html

翻訳
https://translate.google.co.jp/translate?hl=ja&sl=en&tl=ja&u=http%3A%2F%2Fhw2wiki.net%2Fwiki.hw2.info%2FVariableMissile.html

設定次第では永遠に追尾を続けるミサイルや大量の子機ミサイルを発射する分裂弾、
超高速ミサイルなど様々な用途が可能です。

基本的に自分はミサイルモデルの新規作成は殆どしていません。
コピーしたものをパラメーターだけ変更して使っています。


武装の新規作成の実演
さて、武装系を改造してみましょう。
今回はaaa_battlecruiserの艦首大型プラズマランチャーを新しいファイルに置き換えましょう。
とりあえず、大本のwepnファイルのp_ganをフォルダ事コピーします。

今回はとりあえず、p_gan2という名前にしましょう。
p_gan2をweaponフォルダに配置します。
これで表面上は、p_gan2という武装は使用可能になりました。

次は、性能を変更です。

弾丸飛翔スピードの低下。
射程の長大化。
リロード時間の短縮。
攻撃力の低下。
これらを編集しました。エフェクト関係はそのままです。

次は、aaa_battlecruiser.shipにp_gan2を組み込みましょう。
StartShipWeaponConfig(NewShipType,
"p_gan2"
,"Weapon_tkbcpgun1","Weapon_tkbcpgun1")
元々のコードをそのまま書き換えて問題無いです。

結果大量に吐き出されるプラズマ弾


パフォーマンスの話
当然と言えば当然ですが、攻撃によるエフェクトやミサイルなども、
PC処理パフォーマンスに影響を与えます。
大量の武器やミサイルを描写するのも良いですが、やりすぎるとラグの発生などを招きます。
MODの形態がどうであるかも考慮してパフォーマンスに、
悪影響を与えすぎないように調整していった方がいいかもしれません。