Gesture layer animations not playing

Hi! I’m having an issue with my avatar where the animations for the tail and wings in the Gesture playable layer have stopped playing. It was previously working great, but somehow got borked while I was editing the texture and UV map. Here’s what I’ve figured out so far:

  • VR Chat updated in the space between when it worked and subsequently did not work. I was not able to check if previously working versions of my avatar work in the new version of VR Chat.
  • This happens on both PC and Quest
  • Updating the SDK did not fix the issue.
  • Reinstalling the SDK did not fix the issue.
  • Remaking the avatar in a different project did not fix the issue.
  • Animations are importing properly: I can preview them in the inspector.
  • Transitions between animation states preview correctly in the Unity Editor.
  • Avatar masks are correct (If they weren’t, transitions wouldn’t preview correctly in the editor)
  • Layer weights within the Gesture playable layer are set to 1
  • I’ve verified that animation states are behaving properly in VR Chat’s debug menu.
  • I’m only using a custom Gesture playable layer. All other layers are default.
  • Eye tracking still works
  • Jaw flap stopped working? Not sure if it’s related. It appears to be configured properly, but does not function in VR chat.
  • There are no new warnings / errors in the SDK (The only warning is that my hip bone has a bad angle relative to the legs, but I’ve had that since the beginning)
  • In general this Avatar is very simple. Only one material, texture, and skinned mesh renderer. The only modification to the imported prefab is to add the VRC Avatar Descriptor and Build Pipline components.

If you don’t have a solution, I’d still love suggestions or debugging tips.

Got it fixed! The solution is to create a dummy FX layer animator. The dummy animator has just a single state with no motion and no avatar mask. It doesn’t matter if the state has “write defaults” checked. This appears to be a bug in VR Chat.

Interesting. I’m having the same issue actually. What do you mean by dummy FX layer animator?

Can you describe it in more detail? I’m using the FX layer already so replacing it with an empty one isn’t viable. I’ll make a test that uses an empty FX and work my way back up from there.

So I’ve confirmed your solution. Having an FX animator with nothing but an empty state on the Base Layer does allow the gesture to work. I’ll rebuild my FX animator and see at what point it breaks, if at all.

No need to rebuild! All you need to do is make sure every layer in the FX controller has an avatar mask with everything masked out. Sorry for not updating this post, but hope that works for you.

That’s the trick! Did you find this documented somewhere? I read everything on the official AV3 docs, but I probably missed it if it was there.

I started rebuilding my FX animator anyway, just to reimplement everything on the new standard of Write Defaults disabled; and playing a single animation with any shapekeys (even ones that previously worked on my old project) trigger the issue. I’m curious what happened to break this in such a lovecraftian way.

For anyone stumbling across this thread with the same issue, make a mask for every FX layer: