今回は、プレイヤー側であるSD版ユニティちゃんに剣を持たせて、振りかざす攻撃アニメーションを設定したいと思います。
SD版ユニティちゃんに剣を持たせ攻撃出来るようにする【Unity】
剣アセットとThe Woman Warriorアセットをインポートする
まずは、ユニティちゃんの攻撃手段となる剣アセットと、剣を振りかざすアニメーションとして「The Woman Warrior」アセットをインポートします。
剣アセットに関しては、デザインなど好きなものを選んでもらえればと思います。
ユニティちゃんの右手に剣を持たせる
インポートした剣オブジェクトをユニティちゃんの右手に持たせたいと思います。
非常に階層が深くややこしいので、上の画像を参考にしてもらえればと思います。
まずは、「Character1_RightHandIndex3」の中に空のオブジェクトを作成します。ここに適当なコライダをアタッチして剣の当たり判定として使います。名前は「PlayerAttackCollider」とします。
この中に、剣オブジェクトを入れます。
剣の大きさや位置を調整します。コライダはBoxColliderを使うことにしました。コライダは剣を覆うように設定します。そして、コライダのIs Triggerにはチェックを入れておきます。
PlayerMoveスクリプトの修正
Unityちゃんの操作を行っているPlayerMoveスクリプトを大幅に変更しました。
移動だけでなくアニメーションの管理も全てここで行っていましたが、アニメーションに関しては次に作成するPlayerStatusスクリプトで管理することにします。
PlayerStatusスクリプトの作成
前回作成したEnemyStatusのプレイヤーバージョンですね。内容はほとんど同じです。
PlayerStatusスクリプトと、前回作成したAttackスクリプトをユニティちゃんにアタッチします。
Attack Colliderには「PlayerAttackCollider」を設定します。
Unityちゃんのアニメーション設定
Unityちゃんのアニメーションは、過去の記事で既に設定していましたが、スクリプトの共有化などに伴い下の画像のように変更することにしました。
敵に設定したアニメーションとほとんど一緒ですね。違うのはジャンプ機能の有無ぐらいです。
前回の記事で、アニメーションの設定を行っているのでそちらを参照してください。
Jumpに関しては、Attackと同様「Trigger」型のパラメータにしています。
攻撃用アニメーションの設定
剣を振りかざす攻撃用のアニメーションは、最初にインポートしていたThe Woman Warriorの「Attack1」を使うことにします。
今回も、アニメーションイベントを設定するため「Read-Only」を解除しましょう。「Attack1」を複製して分かりやすい別名をつけておきます。
複製した方のモーションをAttackのMotionに設定したらUnityちゃんのAnimationを開きます。
前回敵に設定した時と同様に、当たり判定が発動されるタイミングと、終了するタイミングをアニメーション再生しながら決めるようにします。
私の場合は、0.08秒で「AttackStart()」を実行し、0.11秒で「AttackEnd()」を実行します。
実行するとこんな感じですね。現状右クリックで攻撃するようにしています。
次回は、ダメージ処理を実装しようと思います。