本日はアプリ作成枠です。
HoloLens2でホロモンアプリを作る進捗を書き留めていきます。
ホロモンの速度に合わせてアニメーションを切り替えるメモです。
ホロモンの速度に合わせてアニメーションを切り替える
前回の記事でホロモンのモデルを移動させるロジックを作成しました。
bluebirdofoz.hatenablog.com
今回は更に移動中にその速度に合わせてアニメーションを切り替えてみます。
前回作成したスクリプトに以下のモデルの速度情報を取得して Animator コンポーネントに設定するコードを追加します。
・HoloMonModeLogicPlayterTracking.cs
/// <summary> /// 定期処理 /// </summary> void Update() { // ..略.. // 現在の速度を取得する float agentSpeed = GetNavMeshAgent().velocity.magnitude; // 速度をアニメーションに通知する SetModelSpeed(agentSpeed); // ..略.. } /// <summary> /// モデルの現在速度をAnimatorコンポーネントに設定する /// </summary> public void SetModelSpeed(float a_Speed) { // 情報を記録する p_HoloMonAnimationInfo.speed = a_Speed; // アニメーションの速度パラメータを設定する p_Animator.SetFloat(param_Speed, a_Speed); }
AnimationController に速度情報を設定する float 型のパラメータを追加します。
Transition を追加し、float 型のパラメータを元にアニメーションの遷移を設定します。
[Greater]で指定値以上、[Less]で指定値以下のときに遷移します。以下のように組み合わせて設定することもできます。
パラメータの数値を元にアニメーションを切り替えることで、ゆっくり動く時は歩くアニメーション、早く動く時は走るアニメーションを再生できます。