Ok, I am new to the forums here and first time poster here, so please forgive me. This post is long but I have tried to give relevant background information and ask questions and marked them accordingly.
Background:
I'm new to using MotionBuilder and the FBX format but I have some success pulling a model into MotionBuilder, adding an animation, and finally plotting the animation back to the skeleton.
What I'm trying to do is to preview models with various animations in Unity 3. I have a simple scene with about 4 models and a camera and created a simple GUI overlay with buttons. The GameObjects, buttons and animation calls are defined in a single GUI Script file.
What works:
I can drag my .FBX into my test game scene. By default, "Play Automatically" is checked for the asset. If I simply click the play button to preview the scene in the Unity Player, the animations fire instantly and look fine.
Model from Mixamo.com with about 6 animations. Play automatically works, calling individual animations from button presses works.
Lerpz model from 3D Platform Tutorial. Play automatically works, calling individual animations from button presses works.
A custom model was originally created and animated in 3ds Max 2011. Then, due to the way MotionBuilder works, created the same model in the standard T-pose and exported out in FBX to pull it into MotionBuilder 2011.
In MotionBuilder, I can successfully characterize it, create a Control Rig, apply an animation and then plot it back to the skeleton. Finally I save it out as an FBX format with a single take named "Take 001".
I can call this custom model into the Scene. If I leave "Play Automatically" checked, clicking play in the Unity Player automatically (and correctly) plays the animation.
What doesn't work:
However, if you uncheck "Play Automatically" and call the animation using Animation.Play("Take 001"), the model does not animate at all.
Question 1:
So, how is it that the Unity Player will correctly play the animation when "Play Automatically" is checked, but will not play the "Take 001" when called with Animation.Play("Take 001")?
To paraphrase the great Captain Jack Sparrow: "That is maddeningly unhelpful."
Between having quickly perused the forums and answers, Google search on MotionBuilder and Unity, and through a coworker, a common theme with animations seems to be "your rig is wrong."
Question 2:
So, if the rig is wrong, why would it even play under the condition above (leaving "Play Automatically" selected)?
I noticed that selecting a particular asset in the "Project Hierarchy" and looking at the FBX Importer settings / Animations, I see that Generation is set to "Store in Root" and Split Animations is checked (even if there is only a single animation in a take).
I thought that changing "Store in Root" to "Store in Original Roots" might do something in case the root of the working models more closely match what Unity expects as part of FBX hierarchy. I tried it once to another model and clicked "Apply" but I didn't see any change.
I tried unchecking "Split Animations" and "Apply" with no visible change.
So...
Question 3:
Is there anything that explains the ideal or minimum required bone structure and root to ensure animation plays properly in Unity 3?
I have seen requests for a tutorial that explains this workflow and they have seemingly gone unsanswered.
Can any of you kind souls out there help me out and get me pointed in the right direction?
Thanks in advance!
Cheers.
-Aaron