Corrective Blendshapes?

Arite, I have had this question on my mind for the longest time now, and feel stupid for not asking before. I have tried different work flows for it to work but every time I think I find a solution there’s a bug. So I want to know how do you correctly add a multitude of corrective blends on the body.

The first way I tried was using the BSpiritCorrectiveShape script to make my corrections then I made blend shape nodes for each corrections. I found that the blend shape nodes would over write each other when they were activated.

So I then I tired a funneling method. I would make duplicated my bound mesh three times. I would name one Main Blend, Right Blend, and Left Blend. I would then make blend shapes out of all the corrective shapes I made to the left side of the body to Left Blend (and do the same for the right side). I made sure that all the left side corrective blend shapes were under one blend shape node, to avoid overwriting like my first attempt. From there I would make both Left Blend and Right Blend a blend shape to Main Blend, once again making both of the blend shapes under one blend shape node. And then finally I would make Main Blend a blend shape to my original mesh. I thought that this way would work, because it seemed to make sense. Yet some how I got undesired, deformations.

So I asked what are some other methods to apply a multitude of corrective blend shapes to one mesh?

Adding all the corrective blendShape target into one blendShape node should be fine. As should the “funneling” method you describe.

Are you sure you are building your targets correctly? Some more information might help illustrate your problem better.

In order to limit what points a blendShape node influences, you could either paint blendShape weights or edit what components are in being deformed, by using the “edit membership” tool.

This trick only works in pre-render space (won’t play nice with a game engine). Rather than try to load your skinned mesh down with a bunch of blendshapes, turn the problem around. Create a “render mesh” that has the skinned mesh as one of its blendshape targets with weight = 1.

Also, the book Stop Staring has a very nice section explaining the sometimes non-intuitive behavior you can get with simple additive blending.