- Home /
Do BlendShapes support multi-target weighting?
I have been looking for a couple days to find an answer to this and I don't seem to be able to find any reference to this idea in Unity. Say for example, I had a base character model and I wanted to use blend shapes to work with the character's weight (as in mass). If you scrolled the BlendShape up, the character would get fatter. If you scrolled it down, the character would get skinnier.
Obviously, the first thought that comes to mind is to create the morph in Maya or Max or Blender to not have a limit and simply have skinny be -100% to fat's 100%. Even though the BlendShape slider will go negative, exporting an fbx with this setup doesn't appear to have any effect on the character model in Unity.
But when you look at anatomy, we do not get skinny in an opposite manner of fat. So the clear solution would be to have the skinny morph set to 0%, the base model at 50%, and the fat morph at 100%. This, however, seems to confuse Unity. Unity believes that a BlendShape value 0 for this setup is the base model, 50 is the skinny model, and 100 is the fat model. I have tried rearranging the order of the targets in Max and Unity is still confused but in different manners.
Is this expected? Do BlendShapes only work with the base at 0 and the target at 100? If not, what setup is needed to get this type of idea to work? If I am simply missing some documentation somewhere, it would be awesome for someone to point it out. If this doesn't work out-of-box in Unity now, will it for 5.x? I know there are several assets out there that will do this, and if Unity can't right now, that may be my solution. I can also thing of an elaborate programming setup that would do this with single target BlendShapes, but it would be ugly.
It would be great to know just for clarification. My setup is using Unity 4.3 and 3ds Max 2012. If someone else has gotten this to work with Maya or Blender, that would be good to know too.
Thanks.