【VRC】アバター ジャンプ中だけ表情変更
「アバターのジャンプ中、表情変更する」は
①Groundedを取る
②LocomotionLayerの姿勢[ステート]で判断する
の2種類のやり方が考えられるっぽい
①のほうが簡単だけど、②のほうがきめ細かな表現になる
でもやっぱりどっちも複合させたほうがよくなったのでおすすめ
①は簡単そうなので②の方法を説明する(3点限定)
LocomotionLayerだ
JumpAndFallのサブステートだ
アバターが普通ジャンプすると赤い矢印のルートを通る。
SmallHop
Short Fall
QuickLand
RestoreTrackingは考えなくて差し支えない(姿勢ではないため)。
パラメーターだ
whl_SmallHop
whl_ShortFall
whl_QuickLand
を追加する。意味は、whl_SmallHopがtrueのときSmallHopの状態にある(ステートにいる)程度のもの(好きな名前でかまわない)。それを実現するためLocomotionLayerに変数を登録しよう
whl_SmallHopは、SmallHopしてるときtrueにしなきゃいけない
つまりこう
Avatar Parameter Driverは便利
whl_SmallHop等は、FXレイヤーの条件分岐(=表情変更)に使う。なのでFXにも登録しなきゃいけない。とりあえず今はLocomotionを終わらせよう
ShortFallでは
whl_ShortFallはtrueで一方、whl_SmallHopをfalseにする
QuickLandはwhl_QuickLandがtrue
whl_ShortFallをfalseにする
ここをうまく通らないときもあるのでwhl_ShortFallなどがtrueのままのパターンが心配だ
だからこう。一階層上のデフォルトステートにフラグをすべてリセットする処理を置いておく。ぜったいとおるのでこれで安心
つぎにFXレイヤーのParameterにも同じ変数を登録してから
表情変更レイヤーはこんな感じ?
ジャンプは基本的に上書きするのでAnyStateからでOK
Can Transition to Selfはチェックを外そう
ShortFallは無視して、QuickLandに。ちなみにQuickLandは着地姿勢(硬直中)なのでGroundedはtrueになってる。Groundedだけで判断するとここで表情変更させることはできない。わざわざQuickLandをもったことが役に立つ。
あとはまばたきの制御等をして完成。
ちなみに気をつけなければいけないのがSmallHopからExitへの分岐をつけること
↑これ↓
通常のジャンプとは違う特殊なルートがLocomotionで発生したときの処理だ
追記:VRに入ってジャンプ連打してたらモーションと接地にラグがあることに気づいた。だからモーションだけでとってもずれることがある
Groundedも使おう
入り口にこの条件を追加して
直接Exitする条件を少し変える(追加する)
これでうまくいくはず(あとで動画撮る)
この記事が気に入ったらサポートをしてみませんか?