前書き
今回はTopDown Engineで近距離武器の作り方について記載していこうと思います。
近距離武器には
- 通常攻撃
- コンボ攻撃
- タメ攻撃(TopDown Engien Ver3.2より追加)
がありますが今回は簡単な通常攻撃とコンボ攻撃の近距離武器について記載していきます。
参考にKoalaSwordを見てみる
いつも通りDemoにある武器から見ていきたいと思います。今回はKoalaSwordになります。
KoalaSwordのコンポーネントについて
KoalaSwordのコンポーネントを見てみると以下のようになっています。簡単にそれぞれ説明していきます。
- Weapon Aim 2D
- Melee Weapon
- Combo Weapon
Weapon Aim 2D
上記のコンポーネントを追加することで照準が表示されるようになります。キャラクターがどの向き、どの場所に攻撃しようか分かるようになります。遠距離攻撃の場合、あると分かりやすいですが近距離攻撃の場合はなくてもいいかなと思います。そのため、このコンポーネントの追加は必須ではないです。
Melee Weapon
近距離武器の肝になる必須のコンポーネントです。ダメージやダメージの範囲の設定、ノックバックなどなどを設定します。以下の赤い四角1つずつがMelee Weaponコンポーネントに対応しています。
Combo Weapon
コンボ(連続攻撃)が可能になるコンポーネントです。”Melee Weapon”の数だけコンボ攻撃ができるようになります。逆に言うと、Melee Weaponが1つしかないオブジェクトにCombo Weaponを付けてもコンボ攻撃はできません。コンボ攻撃をしたいときに付けるコンポーネントのため必須ではありません。
KoalaSwordのその他のオブジェクトについて
武器の画像設定する場合はMelee Weaponコンポーネントの子オブジェクトにSprite Rendererなどを付けてあげれば大丈夫です。
また、「武器を使用した」、「攻撃が当たった」、「攻撃が終わった」などなど色々なタイミングでFeedbacksを設定することができます。適宜、必要なFeedbacksがあったら設定します。
KoalaSwordをコピーして近距離武器を動かしてみる。
近距離武器を作るうえで最低限必要になるのはMelee Weaponです。なので、まずは必要最低限の武器を作っていきます。いつも通り、Demoの武器を元として作っていきます。
KoalaSwordをコピーする。
KoalaSwordをコピーしてKoalaSwordTestとしました。このままではKoalaSwordそのままなのでこのコピーしたKoalaSwordTestをいろいろいじくっていこうと思います。
Melee Weaponのみを残す
最低限の動きをさせるためWeapon Aim 2DやCombo Weapon、複数あったMelee Weaponを削除してMelee Weapon1つのみを残すようにします。残したMelee Weaponは1番上にあったMelee Weaponです。1番上のMelee Weaponは右方向に攻撃範囲が伸びているコンポーネントになります。そうすると以下のようになると思います。
とりあえず、この状態で動かしてみる。
手っ取り早く動かすためにMinimalSandbox2Dのシーンを開き、MinimalCharacter2Dに新しくコピーして作った武器を持たせて動かしてみます。
MinimalCharacter2DのChracter Handle WeaponのInitial Weaponに作った武器をアタッチすることで最初から武器を持った状態にすることができます。
Initial WeaponにKoalaSwordTestをアタッチします。
この状態でMinimalSandbox2Dを実行すると以下のようになります。
左クリックしても1回だけのみの攻撃になっていることが分かります。
ダメージ範囲やダメージ量を変えてみる。
- ダメージ範囲を変更したい場合:Damage AreaのAreaSizeを変更
- ダメージの時間を変更したい場合:Damage Area TimingのActive Durationを変更
- ダメージ量を変更したい場合:DamageCausedのMin/Max DamageCausedを変更
デフォルトの値を変更して以下のようにしてみました。ダメージ範囲を示している赤枠が大きくなっていることが分かります。(自分と同じ値する必要はないため、好きな値に設定して変化を見てみてください。)
上記の状態で動かしてScene画面をみると以下のようになります。
ダメージの範囲が広がっていることと、ダメージ有効時間が1秒に設定したことでダメージ領域が1秒間赤くなって活性化して、的の”1″が2回ぐらい出ていると思います。
# 本来であれば的の設定を変えて「”Damage Caused”の値を表示する」とすることもできます。
# とりあえず動きが見たいため、設定変更なしで”1″が表示されている状態です。
# ダメージ量が見たい場合はKoalaNinjaを配置して見てみるのが早いと思います。
Comboを実装してみる
KoalaSwordTestに新しくMelee WeaponとComboWeaponをアタッチしてみてください。
追加したMelee WeaponのDamageAreaを少し変えてみるとコンボが分かりやすいかなと思います。
いままでは左クリック1回だけの攻撃でしたら2回連続で左クリックしてみるとダメージエリアの2個目が赤く活性化することが分かります。
Feedbacksを設定してみる
Melee Weaponコンポーネントの中には複数Feedbacksを設定する箇所がありそれぞれ実行する条件が異なります。どのような時にFeedbacksを実行したいかで設定する場所が異なるので、いろいろ動かして設定してみてください。
Feedbacks配下の場合
Feedbacks配下にあるFeedbacksが実行される条件はWeaponの状態になります。
- Start:武器が使用されたタイミング
- Used:武器が使用されているタイミング
- Stop:武器の使用が終わったタイミング
- Reload:武器がリロードされたタイミング
Damage Area配下の場合
Damage Area配下にあるFeedbacksが実行される条件はダメージが発生したどうかになります。
- Hit Damage:敵に攻撃が当たった場合
- Hit Non Damage:敵に攻撃が当たらなかった場合
まとめ
今回は近距離武器の作り方について簡単に紹介しました。
今回紹介した内容としては武器作成の入り口部分になります。他にできることととしては武器自体にアニメーションを設定して特定のタイミングで武器のアニメーションを遷移させたり、実際にキャラクタに武器を持たせたときにちゃんとキャラクタの動きとリンクして武器を動かしたり、武器にノックバックを設定してキャラクタを動かしたりと、キャラクタの動きと連動した設定をすることができます。
武器のアニメーション設定やキャラクタの設定も直す必要がありなかなか大変なため、また改めてまとめたいと思います。
近距離武器の作り方第2回目は武器の「ノックバック処理やアニメーションの連動など」について記載しています。
コメント