MRが楽しい

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

HoloLens2でホロモンアプリを作る その54(ObservableStateMachineTriggerを使ったUniRxでのアニメーション操作を組み込む)

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

今回は ObservableStateMachineTrigger を使った UniRx でのアニメーション操作を組み込む実装を行いました。

ObservableStateMachineTriggerを使ったUniRxでのアニメーション操作

ObservableStateMachineTriggerを使ってUniRxでのアニメーション操作を行う実装方法は以下の記事を参照ください。
bluebirdofoz.hatenablog.com

今回はこの実装をホロモンアプリに組み込んでより詳細なアニメーション操作をスクリプト側から行えるようにしました。

実装コード

AnimatorController に ObservableStateMachineTrigger を追加しました。
f:id:bluebirdofoz:20210828234147j:plain

合わせてアニメーションを管理するスクリプトにはステートマシンの変化を参照する変数を追加しました。

/// <summary>
/// ホロモンアニメーションコンポーネント
/// </summary>
[SerializeField, Tooltip("ホロモンアニメーションコンポーネント")]
private Animator p_Animator;

/// <summary>
/// ステートマシンの変化トリガー
/// </summary>
[Tooltip("ステートマシンの変化トリガー")]
private ObservableStateMachineTrigger p_ObservableStateMachineTrigger;

/// <summary>
/// ステートマシンの変化トリガー参照用
/// </summary>
public ObservableStateMachineTrigger AnimationTrigger => p_ObservableStateMachineTrigger
    ?? (p_ObservableStateMachineTrigger = p_Animator.GetBehaviour<ObservableStateMachineTrigger>());

合わせてホロモンの見回しロジックを修正しました。
辺りを見回すアニメーションの完了をこの参照用変数を使って検出し、アニメーションの終了をコントロールします。
・HoloMonModeLogicLookAround.cs

f:id:bluebirdofoz:20210828234203j:plain

動作確認

シーンを再生して動作を確認します。
f:id:bluebirdofoz:20210828234213j:plain

ホロモンの後ろに回り込み、ホロモンがこちらを見失った状態で声掛けをしてみます。
f:id:bluebirdofoz:20210828234224j:plain

ホロモンが声に気づいてこちらを探して周りを見渡すアニメーションを開始します。
f:id:bluebirdofoz:20210828234235j:plain

アニメーションを一周しても視界内にこちらを発見できなかった場合、捜索を諦めて見回しアニメーションを終了します。
f:id:bluebirdofoz:20210828234244j:plain