blendshapes not working with animator controller existing

hi, have a player with idle, walk and run animation, created a blendtree and set navagent speed as parameter to control the blend of the animation.

player also have blendshapes to make body skinnier when equipped with armor or whatever. And the weight is adjustable in inspector.

but when at run time, all the weights just return to 0, and not adjustable anymore no matter by hand or by scripts.

if I remove the animator controller, there is no problem to adjust the weight of blendshapes.

can anyone shed me some light on this matter? I googled the problem, but found no similar situation. Iā€™m pretty new to game dev with unity.
:eyes::frowning:

Bumping this because I am experiencing the exact same issue. Iā€™m hoping this will necro the original question and maybe get an answer.

I just found a work-around here: Animator Controller override Blendshape values - Questions & Answers - Unity Discussions

However, this is totally impractical for me, as I have no access to a copy of Maya at this time.

Does anyone out there know of any other work arounds for this?

Just for posterityā€™s sake, Iā€™m posting the solution I found here. https://answers.unity.com/questions/824240/why-is-my-mechanim-animator-overriding-my-blendsha.html?_ga=2.61305452.1556685552.1586958488-1906029853.1484055447

I have no idea why the selected answer works, but, it works. It adds a tonne of micromanagement to my model exports, especially while theyā€™re still in active development, but itā€™s what has to be done, I guess.

I would still love to know if there is another, more viable solution to this that isnā€™t a hacky abuse of blenderā€™s data blocks.

1 Like

The solution in the above post worked for me.

In Blender 2.8?, I unchecked the ā€œRelativeā€ option under my blend shapes, which removed the blend shapes being relative to the base blend shape. While testing the blend shapes Iā€™ll have to remember to check it.

I saved my Blender file (I did not export to FBX), imported the file into Unity, reassembled all the parts of the file, and then I was able to assign blend shape values while my character executed the idle animation.

The underlying cause is that the blend shapes, which are not part of any animations in Blender, are assigned a value of ā€œ0ā€ in the animations when they are read in from the Blender file. The animations are read only once imported, so the blend shape values cannot be removed from the animations. If youā€™re playing an animation, an idle animation for instance, the blend shapes will constantly be set to ā€œ0ā€.

Iā€™m going to say this is an issue that Unity needs to address (or not, I havenā€™t paid anything for it) because Unity offers the Blender import option. Blender is responsible for saving a file that Blender can read, and Unity is responsible for reading the Blender file because they say they can. Their reading of animations and blend shapes is JaNkY and they should fix it. Or not. Again, I havenā€™t paid anything for Unity.

2 Likes

https://answers.unity.com/questions/824240/why-is-my-mechanim-animator-overriding-my-blendsha.html?_ga=2.117166848.701734026.1607792115-1534126167.1593368980

Setting ā€˜relativeā€™ false in Blender seems to fix this

Damn these years old posts always seem to come in clutch! if you have a model and a animation blend file each saved seperately remember to tick the relative box off in both. learned that the hard way.

1 Like

If any of the other responses didnā€™t work for you, what fixed it for me was removing an animation clip in my animator that modified a generic transform for my humanoid avatar. Not sure why this would effect blendshapes, especially since the clip I removed didnā€™t have any blendshape properties, but yeah. So if youā€™re still having this issue and you are using a humanoid avatar, check your animator in the inspector and see if it gives you a warning about an animation clip modifying a generic transform.