Base Gestures

Your gestures should be controlled by a base animator. You can find this asset at: VRChat SDK - Avatars/Samples/AV3 Demo Assets/Animation/Controllers/vrc_AvatarV3HandsLayer If you don’t use a gesture animator (Finger tracking only), the SDK automatically uses the above.

Layer 0 (AllParts) is a mask. 1 is Left hand, 2 is right hand.

Layer 0 (AllParts) is a mask. 1 is Left hand, 2 is right hand.

Also attaching my basic one here that doesnt use any state:

Basic Gesture Controller.controller

I install my base hand animations via a prefab with MA Merge animator set to Replace. It’s A-OK to add this to your avatar descriptor instead of doing this though.

image.png

In this base animator I do all my manually animated hand poses.


Overriding Hand Poses for a Prop

Example asset used here if you want to pick up n break down how it works yourself: https://booth.artificialincarnation.com/items/8535257

By using layer override logic, we can append layers with prop controlled overrides. (Without more complex logic, this may break if you equip multiple props at once)

Left hand layer

Left hand layer

On this layer we have an off and and on state, both with the actual hand pose animated.

The default weight of the Hand L and R pose layers are 0

The default weight of the Hand L and R pose layers are 0

Its important that the base layer be empty here. Layer 0 can’t have it’s weight adjusted. Modular Avatar will see this layer during append and delete it.

Its important that the base layer be empty here. Layer 0 can’t have it’s weight adjusted. Modular Avatar will see this layer during append and delete it.