Unity公式のStarterAssetsThirdPerson(3D無料アセット)。シンプルで本当に使いやすいです!
今回はStarterAssetsThirdPersonのアニメーション設定を参考に、実際にアニメーションを作成していきたいと思います。
まだStarterAssetsThirdPersonを使用した事が無い!という方でも、今回はアニメーターコントローラーの設定の基本から実践していきますので、参考にしていただけると思います。
- Unity公式のStarterAssetsThirdPersonのアニメーション設定について知りたい
- Unityで三人称視点のアニメーション設定をして実行
アニメーターコントローラーの操作方法&設定
まずはアニメーターコントローラーの基本的な操作方法について紹介します。
以下の手順でアニメーターコントローラー(Animator Controller)を作成します。
Projectウィンドウ > Create > Animator Controller
Projectウィンドウにアニメーターコントローラーのファイルが作成します。
作成したアニメーターコントローラーをクリックすると以下の様にステートマシン(状態遷移図)が表示されます。
ステートマシン上に配置されたアニメーションクリップはノードと言われます。
- Entry:ステートマシン開始時のノード
- Exit:ステートマシン終了時のノード
- Any State:全ての状態を表すノード
※ステートマシンのリファレンス:https://docs.unity3d.com/ja/2020.3/Manual/StateMachineTransitions.html
(2020.3verの場合)
アニメーションクリップ(ノード)の追加
ステートマシンはいくつかのノード(主にアニメーションクリップが元ファイルになる)と遷移条件によって構成されています。
ノードとして使用したいアニメーションクリップがある場合は、ProjectウィンドウのアニメーションクリップをアニメーターコントローラーにドラッグすればOKです。
※最初に配置したアニメーションクリップに対して自動的にEntryノードからTransition(矢印)が作成されます。
■アニメーションクリップをアニメーターコントローラーにドラッグ
※アニメーションクリップのリファレンス:https://docs.unity3d.com/ja/2020.3/Manual/AnimationClips.html
(2020.3verの場合)
とりあえず、以下の通りステートマシンにノードを配置しました。
ステートの作成
ステート(Transition)は以下の手順で作成ができます。
- 遷移元のノードを選択して右クリックする
- 「Make Transition」をクリックする
- 遷移先のノードを選択する
Transitionの作成を繰り返して、以下の様なステートを作成しました。
※StarterAssetsThirdPersonの場合はIdleの部分がブレンドツリーとなります。
ステート・ノードの削除
ノードとステートの削除についても知ってきましょう。
ステート(Transition)削除
ステートを削除する場合は、Transitionを選択してDELETEで削除するだけです。
以下の様に削除されます。
ノード削除
ノードは以下の手順で削除できます。
- ノードを選択して右クリックする
- 「Delete」を選択する
このまま一度実行をしてみたい所ですが、まずはブレンドツリーでキャラクターの移動アニメーションを作成しましょう!
ブレンドツリー(Blend Tree)の作成・設定
もう少し踏み込んでブレンドツリーの作成・設定方法についても確認します。
ブレンドツリーはキャラクターの移動設定などでよく使用されます。スムーズにアニメーションために必要な機能になります。
まずは見本としてStarterAssetsThirdPersonのブレンドツリーのアニメーション設定を確認しましょう。
■見本(StarterAssetsThirdPersonのブレンドツリー)
※ブレンドツリーのリファレンス:https://docs.unity3d.com/ja/2020.3/Manual/class-BlendTree.html
(2020.3verの場合):
実際にブレンドツリーを作成・設定していきましょう。
以下の操作で空っぽのブレンドツリーを作成できます。
- ステートマシン上で右クリック
- Create Stateを選択
- From New Blend Treeを選択
アニメーターコントローラーのステートマシン上にブレンドツリーが作成されます。
さらに、ブレンドツリーをダブルクリックすると、ブレンドツリーの詳細設定が可能なレイヤー(Blend Treeレイヤー)に遷移します。
ここからさらにモーションを追加してみます。
モーションの追加・設定
以下の手順で実際にモーションを追加します。
- Blend Treeを右クリック
- Add Motionを選択
StarterAssetsThirdPersonのブレンドツリーを参考に、モーションを4つ追加しました。
モーションとしてアニメーションクリップを選択しましょう。
Motionには現在何も設定されていません。「None(Motion)」と書かれた部分の右の丸いボタンをクリックします。
Select Motionウィンドウが開きます。
この中から対象のアニメーションクリップを選択しましょう。
※名前が似ていると間違えやすいので要注意
パラメータの設定
ブレンドツリーで使用するパラメータの設定もしていきましょう。
以下の手順で、新しいパラメータ「Speed」を追加します。Speedに応じて各モーションがブレンドされる様になります。
- アニメーターコントローラーの「Parameters」タブを選択
- 以下の「+」ボタンを押す
- Floatを選択
パラメータにSpeedが追加されます。
StarterAssetsThirdPerson(見本)のブレンドツリーを参考に、以下の通りブレンドツリーのコンポーネントを設定しましょう。
- Parameter:Speedを選択
- Threshold:Idle⇒0、Walk_N⇒2、Run_N⇒6、None(Motion)⇒10に設定
- Automate Threshold:チェックを外す
これでブレンドツリーの設定が完了しました。
最終調整&実行
さて、これまでアニメーターコントローラーとブレンドツリーの設定を行いました。
さらに、StarterAssetsThirdPerson(見本)のステートマシンを参考にジャンプ時のノード&ステート&パラメータも設定しました。ステートマシンの見た目は見本と全く同じです。
この状況で実行しながら、残りの調整をしていきましょう。
ブレンドツリー設定後の実行結果
現在、StarterAssetsThirdPerson(見本)のブレンドツリーを参考に、ブレンドツリー設定は完了しています。
さっそく実行してみると、待機モーション⇒歩くモーション⇒走るモーションがスムーズに遷移できている事が分かります。
ジャンプをしてみると・・・
ただ、ジャンプをしてみると、非常に動きがぎこちないです。。。この点を修正しましょう。
ジャンプ時のアニメーション調整
ジャンプ時のアニメーション設定がおかしかったので、その点を修正しましょう。
※ジャンプ自体はできていますが、ステートマシンの細かい調整ができていません。
StarterAssetsThirdPerson(見本)の設定を確認
StarterAssetsThirdPerson(見本)の各ステートの設定(コンポーネント)を確認してみましょう。
上記で赤枠で囲っている箇所(以下)は、各ステート毎に設定が必要な内容になります。
※簡単な説明を付け加えます。詳細はリファレンスを参考にして下さい。
- Has Exit Time:アニメーション切替のタイミング
- Setting:遷移の詳細設定
- Conditions:アニメーション遷移の条件
※ブレンドツリーのリファレンス:https://docs.unity3d.com/ja/2020.3/Manual/class-Transition.html
(2020.3verの場合):
実行結果(Setting以外を設定済み)
上記のSettingの部分以外を設定済みの状態で、一旦実行してみましょう。
ちゃんとジャンプしている様に見えますが、まだ動きがぎこちない部分があったり、着地でも移動してしまっています。
Settingの操作と設定
残りのSettingの部分もStarterAssetsThirdPerson(見本)を参考に設定してみましょう。
Setting部分はブレンドツリーと似ていて、アニメーションの遷移状況をミリ秒単位で細かく設定できます。
以下の様な操作で設定が可能です。
- マウスホイールで拡大縮小
- クリックしてドラッグ(右左で移動)
- ブレンド開始位置・終了位置の操作
実行結果(Settingも設定済み)
Setting設定完了しました。正しく設定するのは、結構大変で難しいです。。
ただ、StarterAssetsThirdPerson(見本)のアニメーターコントローラーと全く同じ設定にできれば同じ様に動きます!
それにしても本当に大変な作業でした。アニメーション専門のクリエイターの方がいる理由がよく分かりました。。。
まとめ
今回はStarterAssetsThirdPersonのアニメーション設定を参考に、実際にアニメーションを作成しました。
- アニメーターコントローラーの操作方法&設定
⇒操作方法を確認して実際に設定を行った - ブレンドツリー(Blend Tree)の作成・設定
⇒ブレンドツリーのモーション作成と設定を行った - 最終調整&実行
⇒ジャンプ時のアニメーションが変だったので修正して実行
見本となっているアセットも良質なものなので、同じ様な設定を自分でやってみる事で本当に勉強になると思います。
今回紹介した内容を参考にして、ぜひ色んなアニメーションを作成してみて下さい!