Search Unity

Joints "flattening" in Mixamo

Discussion in 'Animation' started by SympaK, May 26, 2017.

  1. SympaK

    SympaK

    Joined:
    Apr 14, 2010
    Posts:
    134
    Hi. After having uploaded a model in Mixamo and having it animated, I got flat joints in it, when the albows/knees and bent. What is the solution?
     
  2. theANMATOR2b

    theANMATOR2b

    Joined:
    Jul 12, 2014
    Posts:
    7,790
    Several options
    1. Add more geometry to the model near the joint then re-skin.
    2. Over exaggerate the joint in the model so when it bends after it is rigged it bends smoothly.
    3. Correct the skinning in ANY 3D modeling software after mixamo base skinning.
    4. In 3D create a morph/blend shape to correct the flat joint when it is animated. This is not suggested unless you can script up a morph controller to make the morph trigger when the joint is bent.
    5. Rig/skin in 3D instead of mixamo.
     
    SympaK likes this.
  3. SympaK

    SympaK

    Joined:
    Apr 14, 2010
    Posts:
    134
    Thanks for the kind reply, first off.
    5) Well, I cannot rig in 3d, 'cause I don't know how. I model in a old copy of Lightwave, and it is not great as for rigging/skinning/weighting, go figure in exporting for Unity...
    I tried Blender, but it is a loathsome program to my sight. I might even considere to swallow it, if only I'd got any rational and linear idea on how to use it for such tasks. There are many tutes around, but appartently they "explain" the processes as being for granted... Other apps I didn't even liked to use, for I don't have many bucks to spend...
    I asked help here time ago, and many told me to use Mixamo... And I used it at least to have a rig quickly attached to the mesh, 'cause all my previous attempts to do it into a 3d app has failed...
    2) Anyway, I added more geometry to the base mesh which I use to esport as the target fbx onto which to attach the rig to: albeit it looks better, now the joint generally appears rather "globous": too bad, for the base model is not that bad, after all... So, as for 3) / 4), perhaps I shoould "pre-shape" them in some ways? Such as modeling the area's polys like they were a "flattened" knee (or wrist whatever)? Or there's some way to finetune it after I downloaded it in my pc?
     
    Last edited: May 28, 2017
    theANMATOR2b likes this.
  4. theANMATOR2b

    theANMATOR2b

    Joined:
    Jul 12, 2014
    Posts:
    7,790
    Unfortunately this is a common problem with models that are not modeled with animation in mind, to assist the mesh to bend properly when it is rigged and animated.

    Another option you might want to investigate is akeytsu. It is an animation/skinning tool (I think it includes skinning). The developers are on here from time to time - to promote there software.
    The software is a lot lighter than other 3D packages, but it has it's own workflows also.

    There was a demo at one time, but I'm not sure if they offer it anymore. Anyway - check it out.
     
  5. SympaK

    SympaK

    Joined:
    Apr 14, 2010
    Posts:
    134
    Indeed IMHO the problem is that a modeler is not assisted by some animator beforehand... I'm looking at it, and it looks good: perhaps one who got the task to animate would find it more familiar than a modeler alone... Thanks for all.
    Anyway, still no idea on how to adjust the "weights" of a downloaded mesh from mixamo? It's bad that I made an effort in assembly and uploading/dloading the meshes and I cannot finetune 'em once I have 'em in my pc.
     
    Last edited: May 29, 2017
  6. theANMATOR2b

    theANMATOR2b

    Joined:
    Jul 12, 2014
    Posts:
    7,790
    I've only played around with a couple mixamo rigged models - just to experience the process, but from memory, the only way to solve is in a 3D program.

    I don't experience this collapsing elbow much anymore, but when I have in the past, one trick is to position the elbow/knee bone joint closer to the outward joint mesh surface. This makes the skin bend more rather than flattening out when the bone joint is closer to the inside of the joint mesh.
    But my memory is telling me - this level of joint position control is not available in the mixamo rigger, correct? So it can't be 'fixed' in mixamo without this level of control to change the joint locations inside the mesh.
     
  7. SympaK

    SympaK

    Joined:
    Apr 14, 2010
    Posts:
    134
    Yes, correct I guess. But: can I import in my 3d app the fbx file from mixamo, in order to move that joint?
     
  8. theANMATOR2b

    theANMATOR2b

    Joined:
    Jul 12, 2014
    Posts:
    7,790
    Yes. There are a couple ways to accomplish this. I'm a 3D Max artist but this workflow should be universal to most other 3D apps as well.
    When you bring in the fbx rigged/skinned from mixamo, make sure the character is in a default pose of course.
    Bend the arm so the elbow is flattening, and at this point you can access the skinning vertex data and adjust the skinning so the elbow keeps more volume.
    If this does not work (sometimes it doesn't) another option is to keep the character in the default pose. Save out the skinning data (however that is done in your 3D ap) and then remove the skinning data. Move the joint closer to the outer edge of the skin (the pointy part of the elbow) and then reapply the skin data onto the model.
    This allows you to edit the rig - without effecting the skinning data. So you can move the joint and then reapply the skin data and the elbow should not flatten out so much.

    You may also be able to add edge loops near the elbow, on the upper arm and lower arm mesh to increase the mesh detail which helps in keeping volume. Max allows simple mesh edits like this while skinning data is still applied to the mesh. I don't know about other 3D apps. If you add extra edge loops with the skinning data removed - this might have negative effects on the saved skinning data. So you will have to re-rig through mixamo. A simple 5 minute process.
    But I'd say best to fix in 3D ap, not hope mixamo doesn't mangle the skin again.

    Another option is to add a elbow volume bone to the back side of the elbow - this will allow you to adjust the skinning data to keep more volume in the elbow when it bends. But warning - this bone is not humanoid rig compatible - so the rig will not be able to retarget humanoid animations - without performing extra setup with avatar masks to the extra elbow bones. Probably overkill just to fix a skinning error.
     
    SympaK likes this.
  9. SympaK

    SympaK

    Joined:
    Apr 14, 2010
    Posts:
    134
    I'm studying your suggestions and make some tests. Sincerely I've guessed that there was a way to tune the joint areas of an imported fbx from mixamo, such as repainting the weights or adding instructions in order to have those polys "inflate" when bending.
     
  10. theANMATOR2b

    theANMATOR2b

    Joined:
    Jul 12, 2014
    Posts:
    7,790
    Yes - in 3D this works fine, in Max it is called a joint angle deformer and can correct a lot of skinning issues like flattening joints, creases that don't look right, and adding bulges to areas like the bicep when the arm bends.
    Unfortunately angle deformers do not transfer into Unity. They are simply not supported in the fbx file format.

    Another option is to purchase an asset that allows to set up morphs and angle morphs within Unity.
    Although I've not used it much, not for production, I think the go-to asset that can solve your issues is Shape Drivers.
    Pretty handy tool for fifteen bucks.
     
    SympaK likes this.
  11. SympaK

    SympaK

    Joined:
    Apr 14, 2010
    Posts:
    134
    Thank you very much: now I'm experimenting (and the route seems long, being a "one man band"...). Though, from a first sight, the shape driver seems interesting, and doesn't even look expensive (nay, it's very cheap). I'm investigating on it then, although it seems to have just armpits' control, as for joints. Putted it in my (vast) wish list... Rather one thing tough: how to use this with a mesh and animations gotten from mixamo (or just the mixamo rigged mesh and animations took from anywhere)?
     
    Last edited: Jun 4, 2017
    theANMATOR2b likes this.
  12. theANMATOR2b

    theANMATOR2b

    Joined:
    Jul 12, 2014
    Posts:
    7,790
    It doesn't matter where the mesh/rig came from. Shape drivers is set up in Unity and is applied to the bones (I think) so if a bone bends a certain degree/percentage the morph/blend shape will happen.
    Its not only for armpits, that is just one simple example - cause armpits are a pain for riggers/skinners to get 'right'.
    Shape drivers can be applied to any 2 bones that bend, as far as I know.
    Check out the training material - it is explained pretty well.
     
    SympaK likes this.
  13. SympaK

    SympaK

    Joined:
    Apr 14, 2010
    Posts:
    134
    Ok. One thing, apropos: can you point me to some tutes about animating/exporting weapons and use 'em with the character in Unity? I guess I could make this even with my poor apps...
     
  14. theANMATOR2b

    theANMATOR2b

    Joined:
    Jul 12, 2014
    Posts:
    7,790
    Weapon animation and setup is a wide subject - there are numerous ways to setup and one is not better than the other.
    Youtube has some good varying setups for weapons.
     
  15. SympaK

    SympaK

    Joined:
    Apr 14, 2010
    Posts:
    134
    Ok: perhaps the problem for me is to know what keywords to search for (still some language barriers), either here or in youtube.
     
  16. theANMATOR2b

    theANMATOR2b

    Joined:
    Jul 12, 2014
    Posts:
    7,790
    Hmm maybe
    Weapon parenting in Unity
    Weapon swapping for Unity mecanim.
    Weapon animation for FPS in Unity
    Unity weapon animation
    FPS weapon set up in Unity
    FPS weapon swapping in Unity.
     
  17. SympaK

    SympaK

    Joined:
    Apr 14, 2010
    Posts:
    134
  18. Foxcun

    Foxcun

    Joined:
    Feb 20, 2016
    Posts:
    2
    I just fixed the rig when I "Triangulate the object". Done Fixed for me.
     
  19. Orion

    Orion

    Joined:
    Mar 31, 2008
    Posts:
    261