Unityに関連する記事です

 攻撃の機能を実装します。


<実装動画>
動画ファイルへのリンク



手順7 ー攻撃機能の実装ー

<新しく学習する内容>




攻撃の設計を考える


 最終的な目標としては、ボタンの入力タイミングによって攻撃アニメーションを連続でつなげられるように考えていますが
まずは1つずつ順番に設計と実装を進めていくようにします。
 
 ここでは通常の攻撃を1回行えるようにするにはどうしたらよいか考えましょう。
ジャンプボタンと同様に、攻撃用のボタンを1つ用意して、そのボタンを押したら
プレイヤーが攻撃のアニメーションを行うようにするのが、まずは第一段階です。
 その際、Stateの遷移にはAnyStateを利用するようにします。

その後、攻撃アニメーションが再生されるようになったら、攻撃に当たり判定を用意して
武器、ないしはパンチやキックなどによって、敵に対してダメージを与えられるようにするのが
攻撃という行動の目的になります。
 また、攻撃がヒットした際には、敵のHPを減少させたいので、攻撃力の値も設定する必要がありそうです。

 攻撃と一口に言っても様々な攻撃パターンがありますが、
ボタンの動作に反応してプレイヤーが攻撃のアニメーションを行うというのはすべてに共通する内容になります。

 その際、いくつかのアニメーションの競合・分岐が発生しますので、
それらについてどのように対応するか設計を考えておく必要があります。

  ^榮庵罎任△辰討盥況發鮃圓Δ海箸浪椎修任△
 ◆.献礇鵐彙罎任△辰討盥況發鮃圓Δ海箸浪椎修任△
  攻撃ボタンを押して攻撃アニメーションが再生している間は、再度ボタンを押しても攻撃アニメーションは再生しない
 
 上記を見てみてると、ジャンプの場合には、地面に接地していないとジャンプできないという条件がありましたが
攻撃には特別な条件はありませんので、だけ気を付ければよさそうです。

 まずはAnimatorシーンを開いて、新しいStateを1つ追加しましょう。名称はAttackに変更しておきます。
インスペクターにて再生したい攻撃のアニメーションを持つAnimationClipを選択して登録しておきます。
このアニメーションが攻撃ボタンを押した際に再生されるようにするのが第一段階の目的です。

 Transition用に、新しくParameterの追加を行います。Parameterの横にあるプラスボタンを押して
Trigger型のParameterを1つ作成します。名称はAttackにしておきます。
AnyStateを利用してStateの遷移を行いますので、Jumpの時と同じでExit のStateへの遷移のみTransitionで設定します。

 Conditionによる遷移条件はなしで大丈夫ですが、攻撃アニメーションが途中でキャンセルされないように
HasExitTimeのプロパティにチェックを入れておくようにします。







PlayerController スクリプトを修正する



PlayerController.cs

 <= ボタンを押すと開きますので、自分なりの実装を行った上で確認をしてみましょう。




https://gyazo.com/5b84665313e3c2f2d789936c02f007b4

https://gyazo.com/995bea3d3ebd5ceb3086eeb1716fcecd


攻撃時には移動をストップする


 攻撃したまま移動が出来てしまうと、地面の上を滑りながら攻撃アニメーションが再生してしまうため
見た目の挙動がおかしい状態になってしまいます。

 攻撃時には移動をストップし、その場で攻撃アニメーションを実行した方がよさそうです。

 攻撃アニメーションが再生されると移動のアニメーション自体は再生されていませんから、アニメーションの再生については問題ありません。
それではどのようにすれば、攻撃を行う際に移動(位置情報の更新)をストップ出来るのかを考えてみましょう。
方法はいくつもありますので、いままでの学習内容から参考にしてもよいですし、新しい処理の方法を追加して処理を確認してもみてもよいです。


 実装例です。


PlayerController.cs

 <= ボタンを押すと開きますので、自分なりの実装を行った上で確認をしてみましょう。



ゲームを実行して動作を確認する


 処理の内容を理解した上で、デバッグを行うようにしましょう。


<実装動画>
動画ファイルへのリンク


<応用> 連続攻撃


 下記のサイトを参考に、連続攻撃についても実装に挑戦してみてください。

かめくめ様
Unityのアクションゲームで連続攻撃を実現する方法
https://gametukurikata.com/program/continuityattac...


<実装例 動画>
動画ファイルへのリンク





 以上でこの手順は終了です。

 => 次は 手順8 ー弾の生成機能の実装ー です。

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Menu



技術/知識(実装例)

2Dおはじきゲーム(発展編)

2D強制横スクロールアクション(発展編)

3Dダイビングアクション(発展編)

2Dタップシューティング(拡張編)

レースゲーム(抜粋)

2D放置ゲーム(発展編)

3Dレールガンシューティング(応用編)

3D脱出ゲーム(抜粋)

2Dリアルタイムストラテジー

2Dトップビューアドベンチャー(宴アセット使用)

3Dタップアクション(NavMeshAgent 使用)

2Dトップビューアクション(カエルの為に〜、ボコスカウォーズ風)

VideoPlayer イベント連動の実装例

VideoPlayer リスト内からムービー再生の実装例(発展)

AR 画像付きオブジェクト生成の実装例

AR リスト内から生成の実装例(発展)

private



このサイト内の作品はユニティちゃんライセンス条項の元に提供されています。

管理人/副管理人のみ編集できます