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.