Animated character FBX workflow question

Hey guys,

I think I have watched all videos on youtube to do with FBX, Maya and Unity and have trawled umpteen forums and I still haven’t found the answers I am looking for.

What is the best practise when working with animated characters imported as .fbx files especially to avoid having to re-do things when the character or rig changes? I find myself re-setting up a character’s rigid body rag doll from scratch every time I import an updated rig. Here are my questions on the topic:

  1. Is it common practise to make any and all additions/modifications adding rigid body components, character joints etc. to a imported file with scripts on awake or startup rather than doing it manually every time?

  2. When you import a character (.fbx) into unity it shows up as a blue prefab icon with a little white note beside it. I am assuming this is NOT actually prefab until you place it inside a prefab that you have created yourself, is this assumption correct?

  3. Till now I have been creating my own empty prefab for my character within unity and dragging the fbx file into that. I then drag this prefab into a scene and edit it, adding unity specific components. All good, everything is fine until you want to make a small change to the rig. For testing purposes I have just been adding extra cubes, spheres etc to the hierarchy of the rig in maya so I can visually see if the changes have propagated to my prefab after re-importing (or over-writing the older .fbx in the Assets folder). The changes do not show in unity until I actually drag a new instance of the .fbx file into the scene view from the project view. My prefab which has the same .fbx file inside it doesn’t update at all. Clicking revert on the prefab in the scene doesn’t help. There is no option to ‘revert’ the prefab when it sits in the Project browser. I am at a bit of a loss. You can’t add unity components directly to the fbx so I am a bit stuck at to which way I should be doing things.

  4. With characters, does it matter if all bones aren’t a child of the root (spine joint). In maya I have set up certain parts of the character with parent constraints rather then physically parenting them. Unity’s rigid body character joints don’t seem to mind at this early stage as long as I state the correct joint hierarchy in the rigid body setting up within unity, but could I run into any future unforeseen problems later down the line doing it this way?

  5. When exporting animations ONLY from maya why does the file seem to contain the geometry too? This doesn’t seem very efficient. At build time does this unnecessary geo in the unity project get discarded or does it sit there taking up precious disk space in the built game file?

Thanks so much for listening…

I have been experimenting more with this over the last entire day. I have found a workaround that works but seems like it could be a bad idea… because you have needless object(s) cluttering up your scene… Please somebody tell me this is the wrong way of doing things!

  1. Import your FBX file into unity
  2. Drag it into the scene view (the blue prefab looking cube with the file icon beside it). **** see notes**
  3. Add your components and scripts as you see fit
  4. Leave this edited object in your scene
  5. Instantiate this object (already in your scene somewhere) using scripts at run-time (not the one from the project view)
  6. Update your FBX file (change the meshes, add extra objects etc.)
  7. Save the FBX file into your Assets folder (over-writing the old one).
  8. Look in wonder as your changes propagate to your makeshift prefab (or whatever you call it) automatically!
  9. Any new script-spawned objects should reflect the update(s).

**** notes** The text for this object turns BLUE in the hierachy view but is this actually a PREFAB at this stage?!? You only have the option to revert, not apply changes. Whereas on a ‘real’ prefab you can Revert and Apply changes if you make them!! Whaaaaa?!

Why does it have to be like this? Why can’t you ‘apply’ these changes made to the FBX in the scene to the global one in the Project View? Doing it this way means there will always be extra objects in scenes (deleting them doesn’t appear to be an option), yes these can be hidden but still it’s extra BG stuff going on that seems unnecessary!

Please someone enlighten me, there must be other people that make little tweaks to their rigs/models on a regular basis until you are happy with it and don’t want to keep re-doing work in unity all the time!!