本日はUnityアニメーションの講座の続きです。
前回作成したプロジェクトに手を加えて、今度はキャラクタをアニメーションと共に操作してみます。
bluebirdofoz.hatenablog.com
前回作成したプロジェクトを開きます。
初めに、ユニティちゃんがシーン内を走り回れるようシーンの準備を行います
まずは床を作成します。以下の手順でシーンに床を作成してください。
1.Hierarchy 内で右クリックする。
2.メニューから 3D Object -> Plane を選択する。
以下のように、シーンに床が作成されます。
次にユニティちゃんが床に立てるよう、ユニティちゃんに重力とアタリ判定を設定します。
まずは重力の設定です。
以下の手順で unitychan オブジェクトに Rigidbody コンポーネントを適用します。
1.unitychan オブジェクトを選択する。
2.Inpector タブの最下部にある Add Component をクリックする。
3.「Rigidbody」を検索して、見つかったコンポーネントを選択する。
以下のように Rigidbody コンポーネントが追加されます。
ただし、このままだとユニティちゃんは重力に従って倒れ込んでしまいます。
以下のように Rigidbody の設定項目を変更します。これにより軸方向の回転が固定され、ユニティちゃんが転倒しなくなります。
Rigidbody
Constrains
FreezeRotatin X Y Z 全てチェック
次に床とのアタリ判定の設定です。
以下の手順で unitychan オブジェクトに CapsuleCollider コンポーネントを適用します。
1.unitychan オブジェクトを選択する。
2.Inpector タブの最下部にある Add Component をクリックする。
3.「Capsule Collider」を検索して、見つかったコンポーネントを選択する。
以下のように CapsuleCollider コンポーネントが追加されます。
初期状態の CapsuleCollider コンポーネントはユニティちゃんの足元に球体の形で追加されます。
これではユニティちゃんのアタリ判定として正しい動作をしません。
以下のように値を変更し、ユニティちゃんを包むような形にアタリ判定を修正します。
Capsule Collider
Center X 0 Y 0.8 Z 0
Radius 0.3
Height 1.6
Direction Y-Axis
余談。
感の良い方はこのとき「床側のアタリ判定の設定は?」と考えるかもしれません。
床側のアタリ判定は Plane オブジェクトを追加した際、デフォルトで Mesh Collider コンポーネントが適用されています。
この床の Mesh Collider と、ユニティちゃんの Capsule Collider が干渉することでユニティちゃんは床の上に立てる訳です。
さて、この時点で一旦、設定が正常に行えているか動作を確認します。
シーンの「再生」ボタンを押してみてください。床の上にユニティちゃんが立った状態になっていれば成功です。
このとき、スペースキーを押してみてください。
特に何も起こりませんか?結構です。
最後にキーを押すとアニメーションをキックするスクリプトを追加しましょう。
ユニティちゃんの動きをコントロールするスクリプトを適用します。
以下の手順で unitychan オブジェクトに UnityChanControlScriptWithRgidBody コンポーネントを適用します。
1.unitychan オブジェクトを選択する。
2.Inpector タブの最下部にある Add Component をクリックする。
3.「UnityChanControlScriptWithRgidBody」を検索して、見つかったコンポーネントを選択する。
シーンの「再生」ボタンを押してみてください。
操作方法に関するパネルが表示されるようになっていれば適用されています。
その状態で、スペースキーを押してみてください。ユニティちゃんが伸びをするアニメーションが始まります。
他にも矢印キーの↑キーを押せば前進移動を行い、↓キーを押せば後退移動を行います。
スクリプトの適用により、キャラクタのアニメーションを操作できることが確認できました。
次回は追加したスクリプトの中身を確認し、アニメーションの仕組みを理解します。
bluebirdofoz.hatenablog.com