0
$\begingroup$

I am getting a distortion with a rigged mesh due to the way that Blender imports FBX files. This is due to some kind of loss of accuracy that occurs while importing the vertex weights.

Here is a blend file with 2 Armatures and meshes.

The mesh on the left was imported via FBX. It appears as if all vertex weights are normalized so that for a given vertex, the weights add up to 1.00.

The mesh on the right was imported via DAE/Collada. The vertex weights appear to be normalized so that for a given vertex, the weights add up to 8.00.

So, are there any 3D file format experts out there that have any ideas on how to deal with this?

enter image description here

Here is a little background on this issue: Both meshes were created from the same Mixamo Fuse character with their auto-rigger. The broken one was imported from FBX, the working one was imported from Collada/DAE. I am in the process of writing some scripts to clean up Mixamo characters imported via FBX, however I am stuck here.

$\endgroup$
0
$\begingroup$

To solve this:

  • Delete all vertex groups of the mesh. To do this select the mesh then go to the vertex groups panel inside the Object tab and delete all groups as shown below:

enter image description here

  • Select your mesh first then select your armature as well using shift+ Mouse Right Click
  • Hit Ctrl+p then choose With Automatic Weights as shown below:

enter image description here

  • Your mesh will be parented properly with the armature with correct deformation as shown below:

enter image description here

Updated .blend file can be found here:

$\endgroup$
  • $\begingroup$ This is a decent shotgun approach but it is not what I am looking for. I am trying to figure out exactly what the difference is between the two meshes that is causing the distortions. I need to figure it out so that I can write a script to automate correctly importing FBX files from Mixamo's autorigger. $\endgroup$ – blenderblunder Jan 28 '17 at 1:13
  • $\begingroup$ @blenderblunder Well the problem was with the bone weighting where the upper arm and lower arm has incorrect weighting to the upper and lower bones. $\endgroup$ – Tak Jan 28 '17 at 1:40
  • $\begingroup$ I took a closer look at the actual vertex weight values. The broken mesh has values normalized from 0.00 to 1.00. The working mesh doesn't have them normalized. I suspect that this must be related to the problem. $\endgroup$ – blenderblunder Jan 28 '17 at 1:58
0
$\begingroup$

This looks to be an issue of mixamo FBX exporter according to blender gurus (source: https://developer.blender.org/T43992) Here is what they said after analyzing the problem

"OK, so I check that file, and indeed, it has some vertices assigned to their bones with weights like 0.000001 and such. This cannot work at all, I’m not sure how UE4 handles that, but in Blender this is considered broken data that has to be fixed by hand.

So thanks for the report, but there is no bug here in Blender importer. I’d really recommend submitting a bug report to the tool generating such invalid skinning data…"

UPDATE: You can exoport collada files from mixamo and they seems to work fine. If you wanna add root bone to the animation please have a look at https://github.com/enziop/mixamo_converter it allows you to batch convert those anims.

$\endgroup$
  • $\begingroup$ You are correct that this isn't an issue with Blender's FBX importer, however the blender guru's issue you linked to is an unrelated issue. I actually have a patched version of the FBX importer that I created that can succesfully import Mixamo's FBXs. If anyone is interested in it I can put it up on github. $\endgroup$ – blenderblunder Oct 21 '17 at 18:17
  • $\begingroup$ can you share the repo? $\endgroup$ – GNUton Oct 22 '17 at 19:42
  • $\begingroup$ I will try to put it up in the next couple days. It's been quite some time since I've looked at it. $\endgroup$ – blenderblunder Oct 22 '17 at 20:23
  • 1
    $\begingroup$ I just want to add that this is indeed an issue with blender's default fbx importer not handling fbx correctly. imgur.com/a/4c72q :this is the default blender fbx import of a mixamo-rigged mesh; it messes up the imported weights and screws up the parenting as well. imgur.com/a/5OsW4 :this is a blender addon that uses the actual fbx sdk; the bone weights are perfect, parenting is preserved exactly as it should be and the addon exports perfectly as well. Obviously implementing the fbx sdk is not an option but yes the issue is clearly blender's handling of fbx format. $\endgroup$ – Mike Johnson Mar 1 '18 at 1:41

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.