Update bindposes of SkinnedMeshRenderer and re-target animations
Hi,
I have the current setup:
One FBX being the base humanoid
Other FBXs containing the same humanoid slightly modified: weight, arm length, etc... Basically those files are blend shapes. For my use case, I simply can't export the blend shapes directly as true blendshape in the FBX files. I have a script aggregating those FBX into a single SkinnedMeshRenderer. The skeleton is obviously modified to fit different morphology in each FBX (different arm length for instance would break re-targeting).
Users can cycle between the different blend shape and I:
Apply the morph of the given target
Uses the bindposes of the target skeleton as the new bindposes
That works relatively well, expect for some parts (eyes, spine, and nipples) where a deformation can appear.
It kind of makes sense why it doesn't work. The Avatar used is the one from the base mesh, and so just applying bindposes might be wrong. Is there a way to re-compute the bindposes entirely from the target skeleton? Bindposes are supposed to represent the inverse transformation of the bone but it looks like there might be in another space (maybe a root is applied?) Are the bindposes computed differently from FBX files?
Alternatively, there might be a better way to do that? Ideally I would like a solution like that so I could, at runtime, re-target the skeleton while the user is morphing from 0 to 100.
Your answer
Follow this Question
Related Questions
runtime Animator BlendShapes not working 0 Answers
Animation from Blender, bones are rotated wrong direction on play mode 0 Answers
Unable to import modified atlas .png to prefab animated character 0 Answers
how to use a Mocap FBX of a full skeletal rig to animate fps hands? 0 Answers
Are Blendshapes calculated each frame, or just when their values change? 1 Answer