Your characters must be exported into Atoms Crowd format files before you can use them in your simulations. In this section we are going to see how you can do it.
Some guidelines will also be given on how you should layout your scene to be exported correctly.
Always export your character definition from the bind pose.
Preparing your scene
As explained in the Agent type page, your agent types will need a skeleton, some proxy and skinned geos.
You should gather all your proxy meshes under one group and your skinned meshes under another group. How you name these groups does not really matter as long as it makes sense to you.
The only naming convention applies to the proxy geometries. Atoms Crowd will try to match each joint with a mesh under the proxy geometry group, the mesh name must be equal to the joint name followed by "_GEO".
For instance, if you have a joint named "Hips", the proxy GEO associated with that joint should be named "Hips_GEO".
There is no naming convention for your skinned geometry.
AtomsHoudini supports only rig made of null-bones objects for each joint. Usually this type of rig are used by the houdini fbx importer. Native houdini crowd rigs (made by bones only) are not supported by Atoms.
Make sure your joint local rotation values are always set to 0 before exporting your rig.
Atoms viewport skinning preview only supports 3 joint weights per vertex maximum. Please make sure to skin each vertex to 3 joints maximum or the Viewport preview won't display correctly.
Opening the Skeleton Exporter Tool
Once your scene is ready, you can open the skeleton and animation exporter tool using the shelf button. You can also open it via the Atoms menu: Atoms > Export > Rig/Animation Exporter
The Skeleton Exporter GUI will pop up.
The "Root Joint" field must be set to the root joint of your skeleton, while the lists below are designed to tag, untag and list specific joints of your skeleton (pelvis and leg) as explained in the Agent type page).
Atoms need to know this information in order to place correctly your agent on the ground, apply the IK and the foot lock during the simulation.
Tagging just means adding some houdini parameters on those joints. Please check the property panel after pressing these buttons to see which attributes are added.
The "Extra Joints" list is where you'll add your prop joints.
Each joint list has buttons for adding and removing joints from the lists, a sanity check button which will turn red if there's something wrong with your skeleton (you can click on it to have a report about what's wrong with your rig) and a help button which displays a help tooltip to let user know what each tag means.
Each list has a menu for selecting the joints and performing other actions.
The "set bind pose attributes" button takes care of setting the bind pose attributes on each joint of your hierarchy. You should press this button before exporting and saving your scene.
Whenever you tweak you rig (i.e. move or rotate a joint) you should press this button again in order to set again all the right bind pose data.
The "Proxy" field will point to your proxy geos group.
The "Skin" field will point to your skinned geos group.
Please use the "Config path" field to set your destination folder location.
- Your root joint must always be tagged as pelvis.
- For any IK chains you have to set up the pole vector on your foot roots. The pole vector is a point in world space. This is an attribute on your foot root joints and it's automatically connected to an null from version 2.0.0. You have to set it manually on previous versions.
Exporting your files
For this example we're going to work with the AtomsRobot.hip scene shipped with AtomsHoudini inside the AtomsHoudini/data folder. In this scene all the joints and geos are already prepped correctly.
First let's tag our joints:
- Select the Hip joint and click on the "Pick from selection" button on the "Root Joint" line.
- With the Hip joint selected, click on the "+" button under the "Pelvis Joints" list.
- Select the LeftUpLeg and RightUpLeg joints and click on the "+" button under the "Foot Root Joints" list.
You can set the pole vector of the ik chain by moving the new null node that has just been created in the viewport. This must be a point in world space and you can find this parm in the Houdini property panel, by default Atoms tries to find a sensible value using the position of this foot root first child joint. For selecting the pole vector for each foot root you can right click to an element of the list and select the pole vector via the menu. - Select the LeftFoot and RightFoot joints and click on the "+" button under the "Foot IK Joints" list.
- Select the LeftToeBase and RightToeBase and click on the "+" button under the "Foot Tip Joints" list.
Then:
- Click on the "set bind pose attributes" button.
- Select on "RobotGeo" null and click on the "Pick from selection" button next to the "Proxy" label. Click "Pick selection" on the popup menu.
- Select on "RobotSkin1" null node and click on the "Pick from selection" button next to the "Skin" label. Click "Pick selection" on the popup menu.
- Select a file path where to save your atomsskel file.
At this point the GUI should look like in the picture.
You can also tag joints with the "Skip IK" button. This will instruct Atoms not to use those joints as part of the IK chain when rebuilding the leg.
Click on Export and your files will be exported in the right location:
In this example we did not have any extra (prop) joint or chains detached from the root. In case you do just select them and click on the plus button before clicking the "set bind pose attributes" button.
Add custom data
If you want add some custom data to some joints please check the Adding custom metadata section