Help with expressions and body sliders

How would you go about implementing an avatar that has support for facial expressions and body sliders?

I have custom Blender models that have many shapekeys/blendshapes for different expressions and body shapes. I have a Unity animation for each expression – happy, sad, angry, surprised, neutral. I also have an animation for each body build – muscular, fat, neutral. I have an animation controller in the avatar FX layer. I have an expressions menu and expressions parameters. Here is what I’ve tried:

  1. FX animation controller has 2 layers. First layer is for facial expressions that are set to a blendtree. Second layer is for body builds also set to a blendtree. Expressions menu has a 2 axis menu for facial expressions and another 2 axis menu for body builds. Only facial expressions play and stick – body builds do not work.

  2. Same as number 1 above, but body builds is in the first layer. Now body builds play and stick, but facial expressions do not work. Something must be wrong with the way I’m implementing animator controller layers.

  3. FX animation controller has 1 layer. Expressions are in a blendtree and body builds are in their own blendtree. FX hits entry -> wait state -> branch leading to facial expressions OR body builds based on which 2 axis menu is open. Facial expressions and body builds play when you’re in the corresponding menu. The moment you exit the menu, the avatar reverts to normal. Nothing sticks.

I’ve been reading through documentation and tutorials, but I’m not finding the info that helps me figure this out. I’ve also been looking for a sample Avatar 3.0 to download and inspect in the Unity Editor, but haven’t found one yet. Any help is appreciated!

This is a shot in the dark, but since you say it only works in the first layer, I assume the layer weights are screwy.

Click the little settings gear on the layer you added, then drag the weight all the way up to 1. It should be at 1.0 for all layers or else it just ignores animations from that layer.

The current settings for both layers are:

Weight: 1
Mask: None (Avatar Mask)
Blending: Override
Sync, IK Pass, and Timing: unchecked

Second layer definitely has weight 1. I also tried switching the second layer into additive mode, but that didn’t help either.

Wow, I’m dumb. While creating screenshots to show what I’ve built, I noticed the blendtree for the expressions was using the body build horizontal and vertical values instead of the face horizontal and vertical values. Duh! I’ve been stuck on this for a couple days now. Can’t believe it was something so small.

All of the animation layers are currently working. :slight_smile: Thanks for forcing me to notice something I kept overlooking!

Now if I could just stop the new skeleton from being bow-legged, but I’m assuming that’s because I don’t have IK set up.

Someone commissioned an avatar a few months back and we used VRoid Studio to make the base model, those came with expressions and visemes so most of the work was already done, now to add the expressions I decided to replace the hand gesture frame controls so the F keys would toggle the expressions instead of making hand gestures, of course that may limit your options and the player would need to memorize the custom expressions.