
レッスン 3.3 - 棒立ちにならないようにする
Tutorial
Beginner
+0XP
60 mins
Unity Technologies

概要:
ゲームは今のところ素晴らしいものになっていますが、プレイヤーキャラクターは少し...生命感がありません。地面を滑るだけのキャラクターではなく、走ったり、ジャンプしたり、死んだりするようなアニメーションを追加します。また、これらのアニメーションの速度を調整し、ゲーム環境で完璧に見えるようにタイミングを調整します。
プロジェクトの成果物:
アニメーターコントローラーからのアニメーションを使用して、キャラクターは 3 つの異なるゲームの状態に対応する 3 つの新しいアニメーションを持つようになります。ゲームの状態には、走る、跳ぶ、死ぬなどが含まれますが、これらはすべてスムーズに遷移し、ゲームに合わせてタイミングを調整します。
1. 導入
2. プレイヤーのアニメーションについて調べる
このキャラクターが手足を動かせるようにするためには、アニメーションコントローラーについて調べる必要があります。
Player のアニメーションコントローラーをダブルクリックして、さまざまなレイヤーを調べ、ステートをダブルクリックしてアニメーションを、トランジションをダブルクリックして条件を確認します。
3. 駆け足状態からスタートさせる
アニメーションコントローラーを使いこなせるようになったので、プレイヤーが本当に走っているように見せるために変数や設定を微調整してみましょう。
- Parameters タブで、Speed_f 変数を 1.0 に変更します。
- Run_Static > Set as Layer Default State を右クリックします。
- Run_Static ステートを一回だけクリックし、インスペクターの Speed 値をバックグラウンドの速度に合わせて調整します。
4. ジャンプのアニメーションを設定する
駆け足のアニメーションは上手く再生されているように見えますが、プレイヤーが障害物を飛び越えるときの動きは非常に奇妙です。次は、ジャンプのアニメーションを追加する必要があります。
- PlayerController.cs で、新しく private Animator playerAnim; を宣言します。
- Start() で、playerAnim = GetComponent<Animator>(); と設定を行います。
- プレイヤーがジャンプするときの if 文で、playerAnim.SetTrigger("Jump_trig"); を実行し、ジャンプをトリガーします。
5. ジャンプのアニメーションを調整する
走るアニメーションは再生されますが、まだ完璧ではないので、キャラクターの物理関連の変数をいくつかいじって、ちょうどいい感じになるようにしなければなりません。
- Animator ウィンドウで、Running_Jump ステートをクリックし、インスペクターで Speed の値を下げてアニメーションの速度を下げます。
- プレイヤーの質量、ジャンプ力、重力係数を調整して、ちょうど良いジャンプができるようにします。
6. 落下アニメーションの設定
走ったりジャンプしたりするアニメーションはとてもいいのですが、もう一つアニメーションをつけたい状態があります。オブジェクトに衝突しても走り続けるのではなく、ノックアウトされたように倒れるようにしましょう。
- Obstacle に衝突したら、Death_b を true に設定します。
- 同じ if 文で、整数の DeathType を 1 に設定します。
7. 倒れたプレイヤーがジャンプしないようにする
すべてが完璧に動作していますが、小さいながら修正すべき不穏なバグが1つあります。それは、プレイヤーが倒れたあともジャンプすることができることです。まるでキャラクターが電気ショックを受けているように見えてしまいます。
- プレイヤーが倒れたあとにジャンプしないようにするには、ジャンプ処理の条件に「&& !gameOver」を追加します。
8. レッスンのまとめ
新機能:
- テンポの良いランニングアニメーションでシーンをスタートさせる
- プレイヤーがジャンプすると、ジャンプアニメーションが再生される
- プレイヤーがクラッシュすると、プレイヤーが転倒する
新しい概念とスキル:
- アニメーションコントローラー
- アニメーションの状態、レイヤー、トランジション
- アニメーションのパラメーター
- アニメーションのプログラミング
- SetTrigger(), SetBool(), SetInt()
- 否定演算子(「!」)
次のレッスン:
- パーティクルと効果音を使って、このゲームにさらに磨きをかけます。