【Unity】ユニティちゃんに攻撃アニメーションをつけて当たり判定を設定しよう!


今回はユニティちゃんに攻撃アニメーションをつけて敵への当たり判定を設定する方法をご紹介します。

特定のキーを入力することで、ユニティちゃんがパンチ・キックしたりできるようにします。

さらに攻撃の当たり判定を設定することで格闘ゲームへの応用も期待できます。

ただ動かすだけでなく、攻撃ができるようになれば様々なゲームに応用ができるのでぜひ挑戦してみてください。

Unityちゃん

© Unity Technologies Japan/UCL

参考ページ)ユニティちゃん公式サイト

本記事では以下の流れで内容をご紹介します。

  • ユニティちゃんを設置する
  • 移動スクリプトを作成する
  • 攻撃アニメーションのスクリプトを作成する
  • 敵を設置する
  • 手足に設置するコライダーを設定する
  • 敵を破壊するスクリプトを作成する

ユニティちゃんを設置する

今回は「HQ Fighting Animation FREE」アセットを使用します。

こちらを使用することでユニティちゃんの

FightingUnityChanアセット

アセットのインポートが完了したら、ユニティちゃんをシーンに登場させましょう。

プロジェクトビューのFightingUnityChan_FreeAsset→FightingUnityChan_FreeAsset→Prefabs→Package04_animChangerをシーンビューにドラッグ&ドロップしてください。

↓ドラッグ&ドロップ

ユニティちゃん使用

次に、編集した内容がプレハブに影響しないようにします。

先ほどドラッグ&ドロップで作成したユニティちゃんを選択して、以下赤枠GameObject→BreakPrefabInstanceを選択してください。

プレハブ解除

また、このオブジェクトの名前を「Player」に変更してください。

次に、顔部分のマテリアルを取り付けます。

プロジェクトビュー→FightingUnityChan_FreeAsset→FightingUnityChan_FreeAsset→Models→Materials→Faceを以下のようにユニティちゃんの顔部分にドラッグ&ドロップしてください。

ユニティちゃん顔取り付け

次に、キャラクターコントローラーを取り付けます。

ヒエラルキービューのPlayerを選択して、インスペクタービュー最下部のAddComponentを選択してください。

以下赤枠のPhysics→CharacterControllerを選択してください。

キャラクターコントローラー設置

キャラクターコントローラーの値を編集します。

キャラクターコントローラーの値は以下のように編集してください。

↓変更点は以下の通り

  • Center:Y=1
  • Radius:0.4
  • Height:2

キャラクターコントローラー値変更

移動スクリプトを作成する

スクリプトを作成します。

スクリプトの名前を「PlayerMove」としてください。

作成したスクリプトを以下のように編集してください。

 

これによって方向キーでユニティちゃんを動かすことができます。

スクリプトをPlayerに取り付けて、変数の値を調整しましょう。

作成したPlayerMoveをヒエラルキービューのPlayerにドラッグ&ドロップすることで、スクリプトを取り付けることができます。

スクリプトを取り付けたら、ヒエラルキービューのPlayerを選択して、インスペクタービュー下部のPlayerMoveの変数の値を変更しましょう。

↓変数値の例(ここではジャンプできないような設定にしてあります)

プレイヤー変数設定

では、実際に実行して確認してみましょう。

ユニティちゃん動き確認

問題なく動くことが確認できました。

また、メインカメラをユニティちゃんの子オブジェクトに設定することでカメラを追従させることができます

詳しい方法は以下記事をご参考ください。

参考記事)プレイヤーにカメラを追従させる方法

攻撃アニメーションのスクリプトを作成する

スクリプトを作成します。

スクリプトの名前を「Attack」としてください。

作成したスクリプトを以下のように編集してください。

 

作成したAttackを先ほどと同じようにPlayerに取り付けてください。

では実際に実行して確認してみましょう。

↓ユニティちゃんパンチ(Aを押す)

ユニティちゃんパンチ

↓ユニティちゃんキック(Sを押す)

ユニティちゃんキック

↓ユニティちゃん回転キック(Dを押す)

ユニティちゃん回転キック

それぞれのコマンドで適切なアニメーションを設定することができました。

今回使用するアセットでは他にも攻撃のアニメーションが準備されていますので、ぜひ使用してみて下さい。

敵を設置する

まずはじめに敵を設置します。

今回は敵として「ModernZombieFree」アセットを使用します。

zombieアセット

このアセットをダウンロード・インポートして下さい。

インポートが完了したら、ユニティちゃんと同様シーンに登場させます。

プロジェクトビュー→Zombie→ZombieRigをシーンビューにドラッグ&ドロップして下さい。

↓ドラッグ&ドロップ

ゾンビ設置

ゾンビの大きさが大きすぎるのでTransformのScaleのX,Y,Zの値をそれぞれ0.3に設定しておきましょう。

作成したゾンビにタグ付けをします。

ヒエラルキービューでZombieRIgを選択して下さい。

次に以下赤枠インスペクタービューのTag→AddTagを選択します。

タグを追加する

次にTagの下部分にある+を選択してタグを追加します。タグの名前を「Enemy」にして下さい。

↓新しいタグを追加する

タグ追加

次に追加したタグをゾンビに設置します。

ヒエラルキービューのZombieRigを選択、以下赤枠インスペクタービューのTag→Enemyを選択して下さい。

タグEnemy

これでゾンビにタグ付けすることができました。

次にRigidBodyを設定します。

インスペクタービュー最下部AddComponent→Physics→Rigidbodyを選択してください。

この後スクリプトで使用するOnTriggerEnterでは接触するコライダーのどちらかにRigidbodyが設定されていないと反応しないため、忘れずにRigidbodyを設定してください。

最後にCapsuleColliderを設定します。

インスペクタービュー最下部AddComponent→Physics→CapsuleColliderを選択してください。

このままだとサイズがおかしいのでカプセルコライダーのサイズを変更します。

カプセルコライダーの値を以下のように設定してください。

↓変更点のみ記しておきます。

  • Center.Y:3
  • Radius:0.7
  • Height:6

ゾンビカプセルコライダー

これで敵の設置は完了です。

手足に設置するコライダーを設定する

コライダーを設定します。

ユニティちゃんが攻撃する左手と右足にそれぞれコライダーを取り付けます。

まずは左手のコライダーから設定します。

以下赤枠ヒエラルキービューのPlayer→Character1_Reference→Character1_Hips→Character1_Spine1→・・・→Character1_LeftHandを選択してください。

左手選択

次に以下赤枠インスペクタービュー最下部AddComponent→Physics→SphereColliderを選択してください。

左手コライダー設置

設置したSphereColliderのRadiusを0.15に設定してください。これによってパンチによる当たり判定の範囲を決定できます。

↓Radius=0.15

Radius範囲設定

また、以下のようにIsTriggerにチェックを入れてください。

IsTriggerチェック

IsTriggerにチェックを入れないとこの後使用するOnTriggerEnterを使用できませんのでご注意ください。

同じように右足にもSphereColliderを設定します。

以下赤枠ヒエラルキービューのPlayer→Character1_Reference→Character1_Hips→Character1_RightUpLeg→・・・→Character1_RightToeBaseにも同じくSphereColliderを設定してください。Radiusの値は任意です。

右足コライダー設定

敵を破壊するスクリプトを作成する

スクリプトを作成します。

スクリプトの名前を「EnemyHit」としてください。

作成したスクリプトを以下のように編集してください。

 

作成したスクリプトを先ほどSphereColliderを設定した左手と右足に設置してください。スクリプトをPlayerに設定してしまうと、うまく機能しませんのでご注意ください。

このままでは移動中に敵にぶつかった場合でも相手を消滅(Destroy)してしまうため、スクリプトを改良します。

↓移動中でも破壊してしまう

移動中に破壊

「Attack」スクリプトを編集します。

以下の改良部分(黄色で強調)を追加してください。

 

このとき忘れずに左手と右足のSphereColliderのコンポーネントをオフにしてください。

↓コンポーネントのチェックを外してオフにする

コライダーオフ

それでは実際に実行して確認してみましょう。

↓パンチで破壊

パンチで破壊

↓キックで破壊

キックで破壊

パンチとキックそれぞれでゾンビを倒すことができました。

まとめ

いかがでしたでしょうか。

今回はユニティちゃんに攻撃アニメーションを設定する方法・敵への攻撃の当たり判定をご紹介してきました。

相手も自分に対して攻撃をできるように作成すれば、格闘ゲームが作成できます。

今後の記事では敵が自分に対して攻撃してくる方法もご紹介する予定ですので、乞うご期待ください。


ユニティちゃん構え

この記事はいかがでしたか?
もし「参考になった」「面白かった」という場合は、応援シェアお願いします!

Twitterはじめました @FuruiYuya