MRが楽しい

MRやVRについて学習したことを書き残す

HoloLens2でホロモンアプリを作る その6(ホロモンの速度に合わせてアニメーションを切り替える)

本日はアプリ作成枠です。
HoloLens2でホロモンアプリを作る進捗を書き留めていきます。
f:id:bluebirdofoz:20210221230700j:plain

ホロモンの速度に合わせてアニメーションを切り替えるメモです。

ホロモンの速度に合わせてアニメーションを切り替える

前回の記事でホロモンのモデルを移動させるロジックを作成しました。
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);
}

f:id:bluebirdofoz:20210221230757j:plain

AnimationController に速度情報を設定する float 型のパラメータを追加します。
f:id:bluebirdofoz:20210221230808j:plain

Transition を追加し、float 型のパラメータを元にアニメーションの遷移を設定します。
[Greater]で指定値以上、[Less]で指定値以下のときに遷移します。以下のように組み合わせて設定することもできます。
f:id:bluebirdofoz:20210221230818j:plain

パラメータの数値を元にアニメーションを切り替えることで、ゆっくり動く時は歩くアニメーション、早く動く時は走るアニメーションを再生できます。
f:id:bluebirdofoz:20210221230827j:plain