前書き
第5回となる今回は弾薬の有無の設定について紹介していこうと思います。
弾薬の有無とは何か?というとTopDown Engineでは以下のように弾薬の有無を設定した遠距離武器を作成することができます。
- 弾薬なしの無限大に攻撃できる武器
- インベントリに弾薬が格納されている分だけ攻撃できる有限武器
- 遠距離武器本体に弾薬が設定されていてその分だけ攻撃できる有限武器
基本的に2つ目の「インベントリに弾薬が格納されている分だけ攻撃ができる有限武器」が普通の武器かと思いますが、ゲームによっては無限に攻撃出来たりしたほうがいい場面もあると思いますので、必要となる場面に応じた武器を作っていただけたらと思います。
前回(第4回)の遠距離武器の作り方は以下になります。
武器に弾薬を設定する方法について
第2回で紹介しましたが、弾薬を使用するのか?しないのか?を設定するのは武器側になります。そのため、今回の「無限に攻撃ができる」「インベントリにある弾薬を消費して攻撃ができる」「武器本体が持つ弾薬を消費して攻撃ができる」についていずれも武器側の設定になりますので修正する範囲は武器側となることに注意してください。
弾薬を設定する詳細については第2回目に記載してありますので、もし分からなければこちらを参考にご確認ください。
弾数無限大を設定する
第2回の振り返りにもなりますが、弾数を無限大にする設定から説明していこうと思います。そもそも武器がインベントリから弾薬を必要とするスクリプトは以下の「WeaponAmmo」というスクリプトになります。
以下キャプチャの黄色いところで囲まれたスクリプトになるのですが、「AmmoID」、「AmmoInventoryName」、「MaxAmmo」の設定があるように弾薬の設定をするスクリプトになっています。そのため、武器にWeaponAmmoを付与しなければ弾薬の設定がない=無限大に弾が打てる武器の完成になります。
試しに上記WeaponAmmoのスクリプトを削除した武器を持たせた状態で攻撃した時の動画が以下になります。右上にWeaponInventoryがあるのですが弾数を表示するバーが表示されていません。これは弾数が無限大であることを示しており、無限大に攻撃することができます。
インベントリに弾薬が格納されている分だけ攻撃できるようにする
続いて、インベントリに弾薬が格納されている場合の状態についての説明になります。どちらかというとこちらが標準的な使い方になるのですが、WeaponAmmoで設定したAmmoIDに紐づく弾薬で攻撃することができる状態です。
武器にWeaponAmmoを設定するのに加えて、WeaponAmmoで設定したAmmoIDと一致する弾薬を作成しインベントリに格納されている必要があります。
このときの設定で攻撃した時の動画が以下になります。右上のWeaponInventoryには弾数を意味するバーが表示され、攻撃されるごとに減っていることが分かります。またインベントリ画面を開くと弾薬が存在し、こちらも同じように攻撃されるごとに減っていることが分かります。このことからインベントリに弾薬がある場合に攻撃ができる状態となります。
武器本体に弾薬を設定する
最後に武器本体に弾薬を設定する方法になります。こちらのついてはProjectileWeaponにあるMagazineのMagazineBasedを有効にすることとWeaponAmmoスクリプトを削除することで武器本体に弾薬を設定することができます。先ほど説明したインベントリに弾薬を設定する必要がない代わりに武器本体に弾薬が設定されている形になります。
MagazineBasedを設定した時の動画は以下になります。インベントリに弾薬がなくても右上のWeaponInventoryには弾薬を意味するバーが表示されています。また、MagazineのCurrentAmmoLoadedを見ると現在の弾薬数が表示されるためProjectileWeaponの弾薬数を見ていることが分かります。
まとめ
今回は遠距離武器の作り方~弾薬の有無の設定について~について紹介しました。
簡単にまとめますと以下のような作りになります。
- 弾数無限大の武器が作りたい
→WeaponAmmoを設定しない - インベントリの弾薬を見て弾数を制限したい
→WeaponAmmoを設定する - 武器本体に弾薬を設定し、インベントリの弾薬を使わず弾数を制限したい
→MagazineBasedを有効にする かつ WeaponAmmoを設定しない
武器の種類やゲームのシステムによっていろいろと工夫が効くと思いますので、武器の種類に合った設定をしてみていろいろと試してみてください。
次回は武器のマガジンとリロードについて紹介していきます。
コメント