イラスト、モデリング、Unity、VR関連

unityとかblenderとかvr関連の作業メモ

unity アニメーション遷移について

https://hiyotama.hatenablog.com/entry/2015/06/29/090000

ほぼこれらの記事の複写です

 

++その他参考

アニメーション遷移 - Unity マニュアル

UnityのAnimatorControllerのアニメーションのブレンド | Unityを使った3Dゲームの作り方(かめくめ)

 

f:id:arumogina:20190511160300p:plain

 

++HasExitTime

チェック:指定した回数、再生したのちに別のアニメーションに遷移

未チェック:conditionsにて遷移

 

++ExitTime

HasExitTimeでチェックが入ってるときに使用する再生回数。少数も指定できる

 

++Fixed Duration&Transition Duration

アニメーションがAからBへと遷移するものとしたとき、Bに遷移するときにかかる時間の設定方法に関する項目。

FixedDurationにチェックが入ってない場合はAの時間を1(100%)として計算する。

Transition Durationを1にした場合、Aの時間分かけてBに遷移する。

0.5の場合はAの時間x0.5の時間かけてBに遷移する

 

FixedDurationにチェックが入ってる場合は、指定した時間(秒数)をかけて遷移する

 

++Transition Offset

アニメーションの開始位置をずらす。

右=>左=>右=>左、というようなwalkアニメーションがあったとき、0.5を設定すると左から始めるなどすることが出来る

 

++Interruption Source

遷移を中断出来る条件を指定できる。

公式だと”遷移が割り込まれる状況を制御するために使用します”とある。

UnityのAnimatorControllerのアニメーションのブレンド | Unityを使った3Dゲームの作り方(かめくめ)

だと以下のような使用例が書かれている。

ジャンプ後に着地したらすぐキャラクターを移動出来るようにしていますが、ジャンプ中に移動キーを押しているとJump→Idle→Walkという遷移の流れになりますが、

必ずIdleを介するので一旦Idleアニメーションが再生されIdleアニメーション中にキャラクターが動いています。

これを解消するのがInterruption Sourceの設定です。

要するに状況に応じて不要なアニメーションを飛ばすための機能っぽい。

 

Next Stateにすると、A=>B=>Cに遷移するとして、A=>Bに遷移する時点でCへの遷移条件も満たしていた場合、A=>Cに遷移する。

 (実際にやって確かめた結果、A=>Bに移行する場合、A実行中にBの条件を満たした場合、Aを最後まで再生したのち、Bに移行する) 

 

Current Stateにすると多分、上記の例でいうと、順番通り、A=>B=>Cに遷移するのだと思う

 (実際にやって確かめた結果、A=>Bに移行する場合、A実行中にBの条件を満たした場合、Aを中断しその状態(ゲージ)を保存した状態でBに移行する) 

 

Current State Then Next State

Next State Then Current State

 はよくわからない

 

++Ordered Interruption

現在の遷移が、その順序に関係なく他の遷移によって割り込まれることを可能にするかどうかを決定します

=>分からん

 

++PreviewSourceState

プレビュー画面で、どのstateを表示するか、

 

++使用できるパラメータについて

Int - 整数
Float - 小数部分を持つ数値
Bool - true、false の値 (チェックボックスで表現されています)
Trigger - 遷移によって消費されたときコントローラーによってリセットされる boolean パラメーター(丸ボタンで表現されています)

 

Triggerはboolと違ってアニメーション再生終了後に、falseになるのが特徴

スクリプトからパラメータを操作することもできる

アニメーションパラメーター - Unity マニュアル