SoftImage Tips and Tricks
gregw@wdi.disney.com
updated 2/26/2002
The following document contains certain advice for getting models and
animations through the
soft2egg converter in one piece. Some of these restraints are
due to differences between Panda
and SoftImage and some are workarounds for SoftImage idiosyncrasies.
The first section is advice
for set-up, modelling, and animation. The second section describes
some frequently seen problems
after conversion attempts. If you have any questions please don't hesitate
to ask.
Section I - Set-up
Hierarchy naming:
The converter needs to ignore
most of the constraint hierarchies and they are not always
flagged invisible so the
code will ignore any nodes (and anything below them) with the
following strings in their
names:
con-
con_
fing-
eyes-
faces-
head-
camRIG
bars
If you don't do this, the
converter will make geometry for the sliders and the camera. I freely
admit there is some kruft
in this keyword list.
Model naming:
Try to make the models have
consistent names through the revision process. SoftImage is
terrible about appending
version numbers onto everything in the scene file (null12_1_1, etc.)
Each time a model name changes
it's highly likely that a makefile or the show code will break.
While it is possible to
"fix" this with wildcards (null12*) it is undesirable as this is no longer
unique and can cause other
problems.
NURBS Textures:
Textures applied to closed
NURBS surfaces in Soft will have problems in Panda. This is because
Soft uses phantom vertices
in their NURBS representation and this seems to affect where they
start and stop applying
the texture. This can be fixed by shifting the NURBS parameterization.
You can do this on the surface
in question through the Soft GUI, or you can do for all surfaces
in the scene upon conversion
with the "-x" option to soft2egg.
Model scale:
It seems the general convention
here in the VR Studio has been for the animators to scale the
character models up by a
factor of four while animating. I believe this is because Soft has limited
precision. Thus models should
be scaled by a factor of one fourth to look right in Panda.
Non-uniform scaling of joints:
A non-uniform scale is one
that is not the same in all three axes (ie x=1, y=1, z=0.5). If an
animation puts a non-uniform
scale on any joint then you must place the key word "scale-" in
the name of the joint that
does that scale.
Face shape trickiness:
Currently SAAPHIRE (the SoftImage
API) is broken when it comes to reading expressions
which determine shape weights.
Because of this you MUST put the expressions in strict order
of the shape numbers they
affect (ie the expression for shape 0 must be before 1, etc.)
Animating Nulls:
When constructing a skeleton
for the player the converter looks at the skeleton nodes in Soft.
If you are animating a null
directly through some relationship you need to make the converter
aware of that by flagging
the null with the prefix "joint-" in its name. Alternatively, you
can
do a "GroupAsSkeleton" on
the null in question to make it actually part of the skeleton. It will
then have a tiny "Skel"
above the node in the Soft's schematic view.
The Minus One Frame:
Our animation system works
by computing offsets from a neutral pose in the -1 frame of the
scene file. If the character
is not in the "jesus pose" at frame "-1" all bets are off. Animation
should not start on anything
in the scene until frame "1".
Section II - Known Pathologies
Part not where it should be:
Frequently Soft does not
update the position of parts that are moved and skinned. It will look
right in Soft until you
cut it out of the hierarchy. If the geometry stays where it is after cutting
it is fine. If it
pops to a different position it will be problematic. We never did find
a way to make
Soft update its position
but we did find a fix: do a "duplicate immediate" on the geometry while
it is in the correct position;
cut out the old geometry and delete it; skin up the new copy you just
made.
Part stretched out while animating:
If you put a non-uniform
scale on a joint and don't tag it as described above it will most likely
be extremely stretched out
and creepy looking on playback (like Edward Scissorhands). There are
other things that can cause
this too (like scaling an egg model and not the egg anim channel and
vice versa). But when in
doubt, throw in the "scale-" flag.