VRChatアバターの Playable Layers 考察
概要
VRC AvatarDescriptor 内の Playable Layers にある AnimatorController の規定動作の定義を推測します。
アバターを作る場合に Playable Layers を設定しないと規定の動作を行う。
そのためそれを知ることにより VRChat が意図している動作の理解と、自分で作成する場合に参考になることを目的とする。
調査対象のSDK は 3.6.1 です。
参考元にするサンプルの AnimatorController の場所
...\Packages\com.vrchat.avatars\Samples\AV3 Demo Assets\Animation\Controllers\
推測結果
Base用
vrc_AvatarV3LocomotionLayer.controller
立ち、かがみ、伏せなどの姿勢を定義している。
歩行、走り、ジャンプ、落下時のアニメーション動作を定義している。
四つ足や下肢がヒレの水生生物の場合はここで対応すると思われる。
Additive用
Baseへ「追加」したいものを定義する。
SDKの説明では呼吸アニメーションなどを想定している。
未確認情報:「vrc_AvatarV3IdleLayer」がサンプルかも知れない。
Gestuer用
vrc_AvatarV3HandsLayer.controller
vrc_AvatarV3HandsLayer2.controller
上記2個のうちどちらか。
手の指の動作を定義している。上記2個の違いはアイドル時の動作が違う。
SDKの説明では「手または Expression メニューによってトリガーされるもの。尻尾を振ったり、羽ばたいたり、耳を動かしたりする「アイドル アニメーション」にも使用できます。」とある。これらはよく「FX」のほうで定義しているのを見るが、本来はこちらに入れるべきなのかもしれない。
Action用
vrc_AvatarV3ActionLayer.controller
手を振る、踊る、死ぬなどのモーションやAFKモーションを定義している。
FX用
vrc_AvatarV3FaceLayer.controller
目や表情の定義している。ハンドジェスチャーで表情変更ここで行う。
また、アイテムの表示・非表示などのもここで行う。
Sitting用
vrc_AvatarV3SittingLayer.controller
vrc_AvatarV3SittingLayer2.controller
着席や席を立つときの動作を定義している。
TPose
vrc_AvatarV3UtilityTPose.controller
Tポーズの定義を入れる。
IKPose
vrc_AvatarV3UtilityIKPose.controller
補足
Playable Layers に関する公式資料
最新のSDKでは、サンプルの AnimatorController がある場所がUNITY上で表示や選択ができなくなっている。
内容を確認したり、サンプルを使用する場合は 「...\Packages\com.vrchat.avatars\Samples\」内にあるファイルを「...\Assets\」配下にコピーする必要がある。
※見えなくした理由は何だろう?
当資料は作成中である。
この後知りえた知見などは随時追加予定です。