本日はアプリ作成枠です。
HoloLens2でホロモンアプリを作る進捗を書き留めていきます。
今回はアニメーションコントローラの複数のStateをSubStateMachineに纏めるメモです。
SubStateMachine
SubStateMachine はアニメーションコントローラにおけるいくつかの State をグループに纏めるものです。
State のグループを視覚的に分けることでアニメーションコントローラの構造をシンプルにできます。
docs.unity3d.com
既存のホロモンのアニメーションコントローラ
以前、SubStateMachine を使って State を使った際は SubStateMachine の出入口に Entry と Exit を利用していました。
bluebirdofoz.hatenablog.com
しかし、この場合以下のように必ず Entry に接続された State を経由するため、特に大気中のリアクションで他のアニメーションへの遷移が遅くなる問題が発生してしまいました。
上位レイヤーからの直接遷移
今回はこの遷移を上位レイヤーからの直接遷移にすることで、不要な State の経由を無くしてアニメーションがスムーズに遷移するようにします。
待機状態から遷移したい State を一旦全て上位レイヤーに移動します。
待機状態の State にトランザクションを接続しなおしました。
新たにこれらの State を纏めるための SubStateMachine を作成します。
後は纏めておきたい State を SubStateMachine にドラッグするだけです。
これで SubStateMachine 内の[上位レイヤー名]という State からトランザクションが接続されて直接遷移ができる形になります。
動作確認
シーンを再生して動作を確認します。
呼びかけやダンスなど他のモードへのアニメーション移行がスムーズに行えるようになりました。