Categories
Blog Post

FBX to Biped : There and Back Again

How to match the 3ds Max Biped to your custom skeleton for easy sharing of rigs, animation and better retargeting in MotionBuilder.

Use Case:
You Have a character rigged for Unreal with custom joint locations using the ART rig. You also have existing animations that are in Max and Maya and you need to have people use Biped to animate.
Biped is a GIANT pain to fit to other skeletons… so this handy guide will help you out.

Part 1:

Use the #Autodesk Character Generator to create a file and download for max. In the zip there is a script that will build a Biped that matches the skeleton. We tried a few variations of existing scripts and custom tools but they all had issues, this is the best choice for speed and getting a good end result.

Autodesk Character Generator download settings to get the Maxscript

Part 2

Next import the Character Generator FBX skeleton you downloaded and align it to your custom skeleton. We did this in Maya since that was where our source skeleton came from.
We aligned position and used IK to rotate the joints so they stayed clean, then froze transformations to clear the skeleton of rotation values. (this puts the rotation into the joint orient)
Then mirror the FBX skeleton joints so you don’t do twice the work, and be sure to replace the _L for _R.
Export the FBX skeleton back out to .FBX and then import into #3dsmax

Align the FBX skeleton to your own custom skeleton

At this point we don’t care if they are a one to one match because we can adjust the Biped structure/bone count after it is created, we just need the major joints to align and the fingers!!

Part 3:

Import the exported aligned .FBX file in to Max
Open the free script CharacterGenerator_FbxToBiped.ms from your Character Generator download zip file that will convert the skeleton to a Biped.
Run it and the FBX skeleton gets replaced with a matching Biped, that we then edited in FIGURE mode to add prop, twist bones and adjust neck count.
Note we placed a marker at the head and then had to snap the Biped Head back to where it was after changing the neck count, since the head moves when the bone count changes 🙁
Now save off a .FIG file so that anyone that needs to can create a Biped that matches your custom skeleton.

*The hip joints in Biped don’t like to move so some manual adjustment might be needed to align hips and feet but it is minimal and easy to snap the ankles to the correct location. Just double check against your source skeleton.

MotionBuilder or Maya HIK retargeting:

If you need to retarget existing FBX moves onto the character, from Max, Export this new biped as .FBX and you can characterize it in MotionBuilder. From there you can retarget animation onto it, then save that motion back to FBX and import that motion with file Import directly onto the Biped skeleton. This will bypass the Biped mocap import/BVH process because it is very limited and destroys the motion quality AND makes everything harder. By staying in FBX the entire way and you will have a Custom Biped that has full motion capture ready to save out or animate in #3dsmax and stay in sync with anyone using Maya or MotionBuilder to animate with.

Final step after loading into Max is run the script that builds the Biped


Part 1: Custom Biped skeleton for MotionCapture retargeting and animation in #3dsmax from #Maya or #MotionBuilder

Categories
Blog Post rigtip

3ds Max to Maya : Quick node translation guide

3ds Max® translation to Maya®

Character TD jobs require cross discipline understanding and something we get often are artists transitioning to Maya from Max and have a hard time with the way Maya approaches things like transforms. To make it worse, often times the same name means something diffrent in both software but they almost do the same thing so let Rigging Dojo help you out.

If you need more rigging focused training check out our ondemand class

Rigging Dojo Max to Maya Cross-Training Ondemand class – $14

Max speak

Artists coming from Max ask us questions like

What are the accepted use (if any) of Joints(Bones) vs Locators(Point Helpers) and more importantly, when, where, and how to use Groups effectively?
Is it best to group a bunch of objects together first before skinning them to a Joint?
How do you create a Dummy control in Maya?
What are shapeNodes?

There are more but simply understanding the makeup of your 3d objects goes a long way to understanding the software.

Translation to Maya

First lets look at some Max tools compared to Maya then we will talk details.

Bones == Joints
Point Helper == Locators
Expose Transform == Locator + Maya math nodes
Dummy == Null Transform (Group no children and no shapeNode)
Editable Poly Object == Transform + shapeNode
Geometry type (poly/nurbs/shapes) == shapeNodes

For more details read over the node attributes and features in Maya

“Group” nodes in Maya are everywhere. Think of them like a 3ds Max editPoly object with no geometry in it or a “Dummy” helper. It is a simple basic node that exists in Maya…nothing fancy it is a pivot, that can be a child or a parent of other nodes. ( in reality it is a bit more complex than this but lets start with that)

Creating a “group node” with nothing selected creates an empty node automatically named “Null” in Maya

Grouping transform nodes together before skinning doesn’t do anything extra for you because grouping isn’t doing to a mesh combine. You still have separate skin clusters for each piece of geometry, it isn’t like attaching many meshs together under an editPoly mesh object.

If you group geometry together you are just parenting the nodes under a new transform node. It creates a “Null” renames it to “Group” and automatically parents any nodes you had selected under the new “Group” node. These are not like the groups in Max that act like diffrent objects are combined in to one, locking the selection of the children. Maya has “Assets containers” that allow for similar functionally.

If you did wanted to have all your geo and just one skin cluster (for speed sake..the fewer skin clusters the better) you would have to do a mesh-combine operation first to put all the geometry shapes under a single transform node….like attaching mesh objects in Max.

(Note that Maya 2015+ allows you to mesh-combine with an option to also combine skin weights, allowing for some cool workflows and more flexibility to update models later)

Locators in Maya have some extra attributes in addition to just their transform node. They have some independent control over their size and location of the cross shape.

Locators can also output their world space location. You can then connect out their location in world space to other nodes. Similar to the expose transform tool in Max, but not as complex unless combined with other math nodes in Maya.

(example the Maya distance tool uses the locators world location attribute to drive the distance measurement so you can parent them in to any hierarchy and still get their true measurement.)

Joints are the most costly in Maya and have some diffrent attributes than regular transforms. Think of Joints as a transform node + orients (where they aim) and scale inversion (causes child joint to translate instead of scale when parent is scaled) etc..

They offer the most control and act almost like a Max list controller, combining what you would need to use 2 or 3 group transform nodes and some math operations in to a single node.

Note that they are not a “bone” with length.  See our Joint orient post for more details.

Shape Nodes are a type of node that is responsible for displaying and holding the geometry and other icons like the locator cross and the cone on a light.  They are a child node of the “transform” node (our Null node that holds translate, rotate and scale). If you edit a polygon cube in Maya, moving the points around or extruding faces happens to the “shape”.  Shape nodes can be re-parented to other Null nodes but you have to do this with a script, you can’t re-parent them directly in the Maya GUI.

Hope this helps,

If you are looking for some other “translations” in tools check out the post from Paul Neale, Max Master of rigging

Here is a handy infographic quick guide.

Visual repeat of the blog post for easy sharing