Starbound moddingメモ

starboundのマルチプレイ対応moddingのあれこれについての備忘録

カスタム武器を作る-ピストル編③

前回に続き、注射器銃製作のパート3です。

今回はタイミングごとの武器のスタンスとファイアレート、サウンドの追加とコードの整理を行っていきます。

 

 

前回はこちら

yunyustarbound.hatenablog.com

 

元ネタのゲームを知っている方や、パート1の武器紹介動画を見た方ならもうお気づきかもしれませんが、現在の武器の発射速度は元ネタ動画と比べると遅く、銃の反動も1発が大きく、更に撃った際の音も鳴っていません。

 

そのためまずは"stances"と"fireTime"を変更して銃の発射レートを上げると共に、一発の反動を小さく設定し直します。

 

変更する場所は

"parameters">"primaryAbility">"stances"

この"stances"は銃を使用する際の各タイミングごとに、銃や腕の傾きや場所、視覚的に両手で武器を持つかなどを変更する事が出来ます。

 

今回は"cooldown"内の各値をいじっていきます。

 

 

まず"duration"を 0.1に設定し、スタンス"cooldown"が表示される時間をやや短くします。

 

更に"armRotation"と"weaponRotation"をそれぞれ5に設定し、撃った後の武器と腕の回転を軽くします。

 

これだけでも十分ですが、今回はここに"weaponOffset"を加え、撃った後に武器の位置がやや後ろに移動するようにします。

 

記述はこんな感じ

"weaponOffset": [-0.2,0],

 

 

 

これで武器の反動が軽くなりました。続いて、"fireTime"を変更して銃の発射レートを上げましょう。

 

場所は

"parameters">"primaryAbility">"fireTime"

 

現在は1.0となっており、1秒ごとに弾を撃つようになっていますが、ここを0に変更します。

これで銃のリコイルの調整と発射レートの高速化が完了しました。

 

 (実際はもっと早いんですが、GIFの取り方のせいで遅く見えちゃってます…)

 

続いて、撃った時の音を設定しましょう。

場所は"parameters">"animationCustom">"sounds"です。

 

予め空の"fire"というパラメータが挿入されていますが、これが撃った時のサウンドになります。

 

そのまま[ ]の中にasset内のサウンドファイルのパスを挿入するか、少し記述形式を変えてボリュームとピッチ変更を付けることもできます。

 

そのまま書く場合はこんな感じ

"fire" : ["/sfx/gun/plasma_pistol2.ogg"]

 

ピッチとボリュームを変更するならこんな感じ

"fire" : {

    "pool" : ["/sfx/gun/plasma_pistol2.ogg"],

    "pitchMultiplier": 1.25,

    "volume": 1

}

 

 若干書き方が違うので{ }[ ]の違いなどに気を付けてください。

ピッチ変更有の方が聴いた感じが近かったので、今回はこっちで行きます。

 

 ゲーム内でスポーンし、音が鳴っていたら成功です。

 

 

最後に、jsonコードの軽量化をする為に軽くお掃除をしておきます。

 

カスタムアイテムのjsonの仕様は、パラメータの内容が変更されている箇所はそちらを適用し、パラメータ自体が記述されていない場合はデフォルトの値を使用するという仕組みになっています。

 

そのため、弄る必要のない項目や、カスタムアイテムとして作った結果不要になったパラメータはパラメータの中身を削除して読み込ませないようにしたり、パラメータごと削除してデフォルトの値を使わせるようにすることでjson内に書く内容が減り、ファイルサイズの軽量化が可能です。

 

まず一番邪魔なのがこれ。場所は"parameters"の直下です。

 

このbuilderと名前が付いている項目は、無名武器(ランダム生成武器)の各パーツやアイテム名などをランダムに生成するためのパラメータとして用意されている物です。

 

これはカスタム武器としてjsonで再指定するようなことでは無い為、まずは"builderConfig"の中身を空っぽにし、builderConfigを読み込ませないようにします。

 

すっきりしました。

 

 続いて、上の"builder"の項目ですが、このluaファイルと言うものは武器の動作に関係するスクリプトファイルです。この項目を空っぽにしてしまうと武器の動作に思わぬ影響が出てしまう可能性がある為、ここは中身の削除ではなく、パラメータを丸ごと消してしまいましょう。

 

パラメータ自体を消した場合は前述したとおり、デフォルトの値を読み込む挙動になる為、書いてある状態と変わらず、ただファイルサイズが軽くなっただけという感じで考えてもらえばOKです。

 

 続いて"fireSounds"も消していきましょう。こちらも場所は"parameters"の直下です。

 

文面から察するに武器を使用した時の音だとは思いますが、jsonにおいては"animationCustom"から音を指定する記述が正である為、こちらは無効な記述(書いていても読み込まれず無視されるパラメータ)となっています。

 

書いてあっても無駄なのでパラメータ事消してしまって大丈夫です。

 

 

ここまでの変更を反映したjsonファイルはこちら

custompistoltest_chapter3.json - Google ドライブ

 

 

これにてパート3の内容は終了です。次回はprojectile(放射物)の設定を行います。