前書き
第6回となる今回はMagazineとReloadについて紹介していこうと思います。
以下の動画のように武器のマガジンがなくなった場合にリロードをしてくれる機能がTopDown Engineには標準的に実装されています。
ただし、リロードをするためにはいろいろとマガジンの事前設定が必要になってきますのでそのあたりを含めてマガジンとリロードの機能について今回は紹介していこうと思います。
前回(第5回)の遠距離武器の作り方は以下になります。
マガジンについて
マガジンを設定する方法はProjectileWeaponクラスまたはWeaponクラスで設定をすることができ、マガジンを設定することでプレイヤーは弾薬を一定数消費し、リロードができる状態になります。逆に言うと「マガジンを設定しない場合はリロードができない」武器の状態になります。
リロードについて
リロードをする場合は2つの方法が存在します。
- MagazineBasedのみを設定して「武器本体に設定したマガジンがなくなった場合にリロードする」方法
- MagazineBasedとWeaponAmmoを設定して「武器本体に設定したマガジンからインベントリに格納されている弾薬をリロードする」方法
上記の文章だけではなんのこっちゃようわからん?っとなりますのでそれぞれについて簡単に説明していきたいと思います。
MagazineBasedのみを設定して「武器本体に設定したマガジンがなくなった場合にリロードする」方法
以下の動画のようにMagazineBasedのみを設定した時のリロードになります。
動画を見ていただくと分かるのですが、MagazineのCurrentAmmoLoadedの数字が減っていることが分かります。MagazineBasedのみを設定することで弾数の管理がMagazineでのみ行われています。
このときWeaponAmmoで弾薬の設定なども行っていないため弾数制限も存在しません。そのため、リロードも無限に可能であり、無限に攻撃ができる武器となっています。
MagazineBasedとWeaponAmmoを設定して「武器本体に設定したマガジンからインベントリに格納されている弾薬からリロードする」方法
今度はMagazineBaseを有効にしつつ、WeaponAmmoを設定した場合のリロードになります。
右上のWeaponDisplayが先ほどとはちょっと変わっています。「10/10」の部分が現在マガジンに入ってる弾数と最大マガジンを示しています。隣の「- 70」は現在インベントリに存在する弾薬の数を指しています。
さきほどのMagazineBaseのみを有効にした場合との違いはリロードするためにはインベントリに弾薬が必要になる点です。MagazineBaseのみを有効にした場合だと、リロードするたびにマガジンに弾薬が補充されるため無限に攻撃することができますが、WeaponAmmoを設定した場合だとインベントリに弾薬がなくなった場合はリロードできなくなるという点が違いになります。
[補足]MagazineBaseを無効にしてWeaponAmmoを設定した場合は?
先ほどまでの組み合わせは
- MagazineBaseを有効
- MagazineBaseを有効とWeaponAmmoを設定
の2つを組み合わせを紹介しましたが、補足として
- MagazineBaseを無効にしてWeaponAmmoを設定
することもできます。
MagazineBaseを無効にしてWeaponAmmoを設定した場合の動画は以下になります。
MagazineBaseを設定していないため右上のWeaponDisplayの表記は「100/100」のようにインベントリの弾薬の数だけを示すようになり、CurrentAmmoLoadedも常に”0″になります。
この状態で攻撃をしてみるとWeaponAmmoにあるCurrentAmmoAbailableが100から減っていることが分かります。MagazineBaseを有効にしていないため武器にマガジンが設定されておらず、WeaponAmmo(とインベントリ)で設定した弾薬を元に弾薬数が設定されていることになります。
そのため、「弾薬の数だけ攻撃ができる(=リロードすることがない)」ためリロード機能もこの武器では実行することができません。ものによっては武器のリロードはいらないけど弾数制限をしたいっといった武器を作りたい場合は上記の設定をすることでリロードしない武器を作ることも可能です。
まとめ
今回はMagazineとReloadについて紹介しました。
簡単にまとめますとマガジンとリロードは以下のように組み合わせて使うことができます。
- マガジンを有効にすることでリロードをすることができる
→マガジンを無効にするとそもそもリロード機能が使えない。
- リロードする方法として、「武器本体に弾数を設定してリロードする方法(MagazineBaseのみ有効)」と「インベントリに弾数を設定してリロードする方法(MagazineBaseの有効とWeaponAmmoの設定)」がある。
→組み合わせで弾数に制限を設けたり、無限にすることが可能
- マガジンを無効にすることでリロードできなくなるが、WeaponAmmoを設定することで弾数制限を作ることは可能
→リロードはしないが、弾数制限のある武器を作りたいときに
作り方が理解できれば設定方法も難しくはないので自分の作りたい武器をぜひ作ってみてください。
次回はPoolingについて紹介していこうと思います。
コメント