Gesture layer animations not playing

EDIT: Workaround!

  1. Create an avatar mask and import your avatar’s skeleton
  2. Turn off everything in the mask (both humanoid and non-humanoid)
  3. Open or create the animator controller for your FX Layer.
  4. For every layer in the FX controller, set the mask to the one we created in step 1.
  5. Make sure your avatar’s FX Layer is set to the one from the previous step

Original post:

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.

1 Like

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:

1 Like

Can confirm this issue is still happening. Any non humanoid transforms in the gesture layer will be ignored if FX layer is not masked. Thank you both for the help.

If anyone comes across this, make sure that your FX mask has a skeleton imported, otherwise it will not work. Additionally, please vote on this issue in the canny: Canny

Getting this issue as well, avatar masking the FX layer doesn’t fix the issue.
Exact same problem, it was working before, no changes other than SDK updates, tried the same things as OP, not working. Can preview them and see them function in the editor, but they don’t work in the VRCHAT application.

Has anyone figured this out yet? I can’t seem to get any transform animations working on the gesture layer.

I’m having the same issue, is the masking on my FX layer set correctly? Any gestures aside from the defaults do not play on the Action layer. I created a thread not too long ago, but I figured bumping this topic might be helpful?