見出し画像

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\」配下にコピーする必要がある。
※見えなくした理由は何だろう?

当資料は作成中である。
この後知りえた知見などは随時追加予定です。


いいなと思ったら応援しよう!