I've done a lot of exporting. I use slightly earlier versions of Maya
and Softimage for maximum animator compatibility, so maybe this is
easier with later versions of Softimage/Maya. It takes me DAYS to
transfer everything perfectly for our AnimSchool rigs. And it sort of
works -- for the important parts. The envelope and shapes. They come
over exactly matching. But you have to do it in bits and pieces. Don't
expect the control rig to carry over effortlessly. You have to recreate
IK chains.
Jack Kao has done some of this too for AnimSchool and might have better
workflows.
I purposely use things in Softimage I know I can transfer/recreate
easily in Maya.
My workflow is to use .xsi for the heirarchy. You'll need to recreate
the control rig using those parts.
For the envelope, sometimes it only works by isolating the envelope and
exporting JUST the object and the deformers ONLY in a flattened
heirarchy. I'm not sure why that is. Select the envelope/s, then select
all the deformers (Select Deformer from Envelope). Unparent all those.
Group them all under a new transform group. So they are all flattened.
Export that via .xsi
CrossWalk>Export to Maya.
Use .xsi 5.0 binary. Everyting else seems to crash.
Import into a fresh Maya scene.
Save the weights using Comet's Save Weights.
Get a list of the deformers
Open up your main Maya rig file and import the weights.
For the shapes, the .xsi will include shapes, but I delete them because
they are not connected to objects.
So I use this tool for exporting all the shapes as separate objects.
(attached)
Turn off/down your undo before using this tool. It will eat all the
memory otherwise.
Select the shapes in the explorer you want to export, then
Shape>CopySelectedShapeKeyInNewModel
It creates a ton of objects. Export them to Maya and make them all
blendshapes to the object.
Once everything is up and working in Maya, I can make edits in
Softimage, and just export positions for matching or new shapes/envelope
weights.
I use a script for making the maya scene (all selected objects) match
all the positions from the exported Softimage heirarchy (via fbx or .xsi):
(in worldspace)
string $selected[]=`ls -sl`;
for($x=0; $x<size($selected); ++$x){
string $fbxVersion = ("yourNamespace:" + $selected[$x]);
print $fbxVersion;
float $translate[3]=`xform -q -rp -ws $fbxVersion`;
move -a -ws -rpr $translate[0] $translate[1] $translate[2] $selected[$x];
float $rotation[3]=`xform -q -rotation -ws $fbxVersion`;
rotate -a -ws $rotation[0] $rotation[1] $rotation[2] $selected[$x];
};
or sometimes the local space works better.
string $selected[]=`ls -sl`;
for($x=0; $x<size($selected); ++$x){
string $fbxVersion = ("yourNamespace:" + $selected[$x]);
print $fbxVersion;
float $translate[3]=`xform -q -t $fbxVersion`;
move -a -ls $translate[0] $translate[1] $translate[2] $selected[$x];
float $rotation[3]=`xform -q -rotation -os $fbxVersion`;
rotate -a -os $rotation[0] $rotation[1] $rotation[2] $selected[$x];
};
I use some scripts for listing all the constraints and expressions in
Softimage. Then I reformat them to be like mel commands.
I think Eric Thivierge wrote those for me. Thanks Eric!