SD版ユニティちゃんに剣を持たせ攻撃出来るようにする【Unity】

今回は、プレイヤー側であるSD版ユニティちゃんに剣を持たせて、振りかざす攻撃アニメーションを設定したいと思います。

スポンサーリンク

SD版ユニティちゃんに剣を持たせ攻撃出来るようにする【Unity】

剣アセットとThe Woman Warriorアセットをインポートする

まずは、ユニティちゃんの攻撃手段となる剣アセットと、剣を振りかざすアニメーションとして「The Woman Warrior」アセットをインポートします。

剣アセットに関しては、デザインなど好きなものを選んでもらえればと思います。

ユニティちゃんの右手に剣を持たせる

Unitychanの階層

インポートした剣オブジェクトをユニティちゃんの右手に持たせたいと思います。

非常に階層が深くややこしいので、上の画像を参考にしてもらえればと思います。

まずは、「Character1_RightHandIndex3」の中に空のオブジェクトを作成します。ここに適当なコライダをアタッチして剣の当たり判定として使います。名前は「PlayerAttackCollider」とします。

この中に、剣オブジェクトを入れます。

ユニティちゃんに剣を持たせる

剣の大きさや位置を調整します。コライダはBoxColliderを使うことにしました。コライダは剣を覆うように設定します。そして、コライダのIs Triggerにはチェックを入れておきます。

PlayerMoveスクリプトの修正

Unityちゃんの操作を行っているPlayerMoveスクリプトを大幅に変更しました。

移動だけでなくアニメーションの管理も全てここで行っていましたが、アニメーションに関しては次に作成するPlayerStatusスクリプトで管理することにします。

PlayerStatusスクリプトの作成

前回作成したEnemyStatusのプレイヤーバージョンですね。内容はほとんど同じです。

PlayerStatusスクリプトと、前回作成したAttackスクリプトをユニティちゃんにアタッチします。

Attack Colliderには「PlayerAttackCollider」を設定します。

Unityちゃんのインスペクタ

Unityちゃんのアニメーション設定

Unityちゃんのアニメーションは、過去の記事で既に設定していましたが、スクリプトの共有化などに伴い下の画像のように変更することにしました。

Unityちゃんのアニメーター

敵に設定したアニメーションとほとんど一緒ですね。違うのはジャンプ機能の有無ぐらいです。

前回の記事で、アニメーションの設定を行っているのでそちらを参照してください。

NavMeshを使用した際のアニメーションの設定【Unity】
NavMeshを使用して、ある程度敵の追跡処理が実装できたところで、攻撃用のアニメーションを実装してプレイヤーを攻撃するようにしたいと思います。久しぶりだったとはいえ、大して難しくない処理を実装するのに大分手間取ってしまいました・・・。 ...

Jumpに関しては、Attackと同様「Trigger」型のパラメータにしています。

攻撃用アニメーションの設定

剣を振りかざす攻撃用のアニメーションは、最初にインポートしていたThe Woman Warriorの「Attack1」を使うことにします。

今回も、アニメーションイベントを設定するため「Read-Only」を解除しましょう。「Attack1」を複製して分かりやすい別名をつけておきます。

複製した方のモーションをAttackのMotionに設定したらUnityちゃんのAnimationを開きます。

Unityちゃんにアニメーションイベントを設定

前回敵に設定した時と同様に、当たり判定が発動されるタイミングと、終了するタイミングをアニメーション再生しながら決めるようにします。

私の場合は、0.08秒で「AttackStart()」を実行し、0.11秒で「AttackEnd()」を実行します。

実行するとこんな感じですね。現状右クリックで攻撃するようにしています。

次回は、ダメージ処理を実装しようと思います。