Can't get Lip Sync to work with Viseme Parameter Only

I’m trying to add lip sync to an avatar but it isn’t working. I can’t use blendshapes since the mouth is fully rigged, so I’m trying to use animations instead. On the VRC Avatar Descriptor, I set LipSync to “Viseme Parameter Only”. I created an AnimatorController named “LipSync”, which is placed on the root of the mouth section of the rig. There is also the animator on the root of the avatar - the one which came with it when I imported the model. I added the LipSync controller to the Playable Layers on the VRC Avatar Descriptor under “FX”. In the Controller I added a parameter called “Viseme” on the layer “Base Layer”. If I set this parameter manually in Unity, the lip sync works as expected. But when I test it in-game, nothing happens. What am I doing wrong?

Ok I figured it out. Once I moved the State Machine to the Animator controller on the root of the character instead of the additional one further down the hierarchy, it’s suddenly working!

Hello, could you go into more detail on how you fixed it? I am having the same problem where I set it up (presumably) correctly but the viseme doesn’t activate. Which animation controller exactly did you put it on? Was it the one called “Base” that is in the same section as “FX” or the one in the “Animator” section, which also had “Avatar” and “Apply Root Motion” etc.?

If I’m reading this right, the Controller should be assigned to both of the locations you mentioned. That is, on the Animator component under “Controller”, and on the VRC Avatar Descriptor component under “Base/FX”. If it still doesn’t work, then the problem probably lies in the setup of the Animator Controller itself. I doubt I’d be any help there. Sorry.