Maya Bone Animation issues

So, I’m having a silly problem. I’ve just started trying to import animations into Unity from Maya. As seen in the image, the animation from Maya does not match what Unity shows. The model is very separated from what is supposed to be, especially where I circled it. In other places, it’s causing intersections. As this is destined to become a more medically oriented application, accuracy is important.

I have a really basic key framed animation, no IK or anything fancy. I figured it was a quick import and I was free to work on the interface.

Specifically, some of the bones move very far away from the original destination. I’ve detached my skin, frozen transformations, exported as an FBX, baked the animation… and so forth. Originally, this was built in Maya 8.5… I downloaded the newest FBX plugin from the Autodesk website, but that didn’t help. I also imported it into Maya2009, but that also did not make a difference.

In any case, any thoughts on why the animation doesn’t match up from Maya into Unity?


That’s a weird one.

I don’t know what the latest version of the FBX plugin is that you have, but IIRC even Maya 2009 didn’t ship with the version that’s on the Autodesk site now. You need at least 2009r3 in order to do anything useful.

Assuming you have a recent plugin, then I have to ask: with such a simple setup, did you try just doing bone parents instead of skinning? And what happens if you remove the skeleton entirely and just animate mesh objects?

The last thing I’ll ask is: what’s your fully expanded outliner hierarchy look like?

Thanks so much for your help! I was getting worried :wink:

Ha, yeah. It totally through me for a loop. After surfing around, I think that part of my problem was that I am using the newest FBX plugin download, which is 2010. I’m thinking that I need to step it back down to the 2009r3 version.

I was using the bone/joint structure (vs. straight keyframing) because I had multiple poses I had to hit exactly (as it is a medical app), and I found it easier to skin one set of bones and match it to the other grips I needed to illustrate (a pinch, grasp, and open form). I found that the bones moved more naturally with an actual ‘bone and joint’ structure behind it.

So, I basically have two root joints, as I need one of the middle bones to not move at all as the registered model (the trapezium bone). There is ‘root_arm’ and ‘root_thumb.’ But moving beyond that glaring bone separation issue, there are other small intersects and so forth that are in Unity3D, but not in Maya. So I am totally confused. :sweat_smile:

Thank you so very much!

I just tried installing the 2009.3 version of the FBX plugin, but the same issue is still occurring. Hmmm… This truly is perplexing. And I’d really rather not re-animate it, but I sure am getting close. Ah well, any thoughts would be most appreciated.

Well, I have a couple of suggestions:

  1. Remove the parent group and try again.
  2. Remove the parent group and parent both chains to a single joint. (I’ve found that Unity is happier with FBX animations that are all one joint hierarchy.)
  3. Parent the separate geometry pieces into the joint hierarchy, instead of skinning them on or using constraints.
  4. Remove the offending joint, and replace it with a new one. (Better yet, rebuild that finger’s whole hierachy.)
  5. Do a scene cleaning (Optimize scene, delete everything).
  6. Select the joints and the meshes, delete the history on both, export selection to a new file, and try your animation again in the new file.
  7. (Last-ditch effort) See what happens if you move the pivots of the geometry to their parent joints, then delete the joints and animate the meshes in FK.

If none of that works I’d recommend the following: Remove the other other three fingers, and the thumb with its chain, and all the joints they depend on. See if the animation still breaks. If it does, unparent the finger from the hand and just leave the finger joints and mesh in the scene and see if that works. If it breaks still, I don’t know what to tell you. I’d try to remove as much of what’s working so you can zero in on what’s breaking that one joint. Things like the joint orientation and such could break things. But yeah, that’s a pickle.

Thank you so much! I really appreciate all of the suggestions. Especially the point that Unity prefers the one joint hierarchy. I’ll be trying these out over the next couple of days and hopefully will hit on something that works! If not, back to the drawing board, yes? My employers have just started using Unity (on my suggestion) and I really would like to deliver now that I told them to buy it! ::insert awesomeness of Unity spiel here:: Thanks again.

I can’t tell from your screenshot… are you binding the meshes to joints or making them children? As a skeleton (or a robot, etc) you can do either but binding is usually better. Are you using a rigid bind? Do you have a control hierarchy for your joints as well?

You’ve gotten some good suggestions for cleaning up a skeletal hierarchy – don’t forget that the bones of a Maya skeleton can be deleted and rebuilt at any time as Maya only tracks the joints. Just unparent a joint (bone gets deleted), reset it’s orientation (systematically and carefully :)) and then rebuild the hierarchy as needed (select child then parent then press ‘P’).

Not sure this is helpful at all.

Sorry for the long wait! I was put on a different project and just now came back to this one.

I am binding them with a rigid bind (as they are actual bones, no bending/soft deformation is needed or wanted). I’m going to be working on getting it to import correctly in the next couple of days. Hopefully today only…

Yes, I appreciate it a great deal! That’s the first thing I’m going to try. It only took me a day to animate it, however… so I may just chuck the bone system all together and start from a new rig that Unity might like better. We shall see.

Thank you for your help! (and it was helpful, thank you)

In any case… I thought I would post my solution, as I redid this a few times and now it (mostly) works. These steps are culled from a process and aren’t necessarily in the order I actually preformed them in.

I did end up redoing the entire rig. This allowed me to set the pivot points of the bones of the hand exactly where I wanted them, and then match the pivot points of the joints of the rig to the same spot. In retrospect, I think it would have been much easier to reverse that process, ha. While I’m not if this step actually did anything for my Unity/Maya export, it really aided the animation process. I do believe that it took care of some of the wiggle, but not enough.

Redoing the rig with only one root did not help. The problem persisted.

To make a long process short - the real key was not binding the hand to the rig, but rather parenting it. This allowed for a rigid bind that followed my exact specifications.

Thank you so much for all of your suggestions (especially Kattkieru, your breakdown was incredibly informative!). I look forward to completing the module now that this bug has been taken care of.