Game Development Community

Animation doesn't work with "collapse transforms"

by Spencer Boomhower · in Artist Corner · 07/11/2003 (3:34 pm) · 9 replies

I've dug all through the forums and tutorials trying to fix this, with no luck. Maybe there's a solution obvious to someone who knows this stuff.

I created and rigged a character, and then created a run based on this character. I exported the player.dts with "collapse transforms" unchecked to make sure that everything exported. I then exported the run from a different Max file as a .dsq.

Here's where the problem occurs: if I export the .dsq with "collapse transforms" unchecked, my run loads into the viewer and the game perfectly. But if I check "collapse transforms" it doesn't appear to animate in the viewer.

When I check it out in the game, the player still isn't animating. However, I can see the crossbow, which is attached to the mount0 node on the character's hand, jumping around as if it's receiving the animation (as if an invisible guy is carrying it). And the funny thing is, the animation is oriented 90 degrees to the left from where it should be. It looks like this invisible character switches to the run animation when I move the character.

I checked the dump file for the animation and under:

"Third pass: Collapsing unneeded nodes..."

it looks like it's removed all the Bip nodes! Some of the nodes it removed are limbs that I know are animating, which seems strange because the docs I read said that the exporter doesn't remove animating nodes.

Help?

-Spencer

#1
07/11/2003 (9:25 pm)
The first thing that I would do is check your CFG file that you are using. It should be located in the same directory as the MAX file, if it is not, the exporter will not find it and will try to export as it sees best.

An example of the default CFG that most people that have Max and Character Studio use is as follows:

AlwaysExport:
eye
cam
mount0
//mount1
//jetnozzle0

NeverExport:
Bip01
Bip01 L Finger*
Bip01 R Finger*
Dummy*
Bip01 L Toe*
Bip01 R Toe*
start01
mountpoint
DELETE*
//Ski0
//Ski1
Light0
Light1
//Mount1
//Mount2

+Error::AllowEmptySubtrees
+Error::AllowCrossedDetails
+Error::AllowUnusedMeshes
-Error::AllowOldSequences
-Error::RequireViconNode
-Param::CollapseTransforms

-Param::findMergeIndices
-Param::computeScreenError
=Params::T2AutoDetail 0

You can go into more detail with your CFG if you want more control. For example I list all of the necessary Biped nodes twice (once in the Always Export and once in the Never Export). I think use the "//" to comment out the node from either Always or Never to refine some more. Typically though you do not need to have this much control and should try to export all the data.

I always use "collapse transforms" on my export, this keeps the data from being rotated 90 degrees and appearing incorrect.

As for other tips...
#2
07/12/2003 (1:39 am)
Thanks for the detailed reply, Logan. I didn't mention that I played around with a lot of .cfg variations before I posted. This is what I ended up with:

AlwaysExport:
eye
cam
mount0
//mount1
//jetnozzle0

NeverExport:
//Bip01
//Bip01 L Finger*
//Bip01 R Finger*
Dummy*
Bip01 L Toe*
Bip01 R Toe*
//start01
//mountpoint
DELETE*
//Ski0
//Ski1
//Light0
//Light1
//Mount1
//Mount2

The .cfg in the animation directory (where I keep the run anim) is exactly the same.

Quote:I always use "collapse transforms" on my export, this keeps the data from being rotated 90 degrees and appearing incorrect.

That's funny because, as I mentioned in my previous post, if I check "collapse transforms" I get the weird 90 degree turn and no animation on the mesh. Any idea why the exporter would remove all my Bip nodes? I'm guessing that's what's causing my problem.

-Spencer
#3
07/12/2003 (9:09 am)
I would guess that its because you are exporting "Bip01" to your DSQ files (which you do not need to do), when you do this it adds some extra unnecessary transform data.

Add bip01 to your NeverExport: list and see what you get.
#4
07/12/2003 (9:14 am)
I concur. There is some wacky transform stuff going on with the Bip01 node, better to leave it out of the export.

If you have put it in the 'skin' bone list, you can delete the mesh from the max file you are using to make your animations, as it is not necessary to export DSQs (mesh data is in the DTS)
#5
07/12/2003 (10:12 am)
I tried not exporting Bip01, and it didn't help. I think I had it that way before, but recently changed it hoping it would help.

Anyway, even with not exporting Bip01, I get the same results in the dump file. A bunch of the nodes, even ones that are animating, get culled out during exporting:

Third pass:  Collapsing unneeded nodes...

Removing node "Bip01"
Removing node "Bip01 Pelvis"
Removing node "Bip01 Spine"
Removing node "Bip01 Spine1"
Removing node "Bip01 Neck"
Removing node "Bip01 Head"
Removing node "Dummy05"
Removing node "Bip01 L Clavicle"
Removing node "Bip01 L UpperArm"
Removing node "Bip01 L Forearm"
Removing node "Bip01 L Hand"
Removing node "Bip01 L Finger0"
Removing node "Bip01 L Finger01"
Removing node "Dummy02"
Removing node "Bip01 L Finger1"
Removing node "Bip01 L Finger11"
Removing node "Dummy07"
Removing node "Bip01 L Finger2"
Removing node "Bip01 L Finger21"
Removing node "Dummy09"
Removing node "Bip01 L Finger3"
Removing node "Bip01 L Finger31"
Removing node "Dummy11"
Removing node "Bip01 R Clavicle"
Removing node "Bip01 R UpperArm"
Removing node "Bip01 R Forearm"
Removing node "Bip01 R Hand"
Removing node "Bip01 R Finger0"
Removing node "Bip01 R Finger01"
Removing node "Dummy01"
Removing node "Bip01 R Finger1"
Removing node "Bip01 R Finger11"
Removing node "Dummy06"
Removing node "Bip01 R Finger2"
Removing node "Bip01 R Finger21"
Removing node "Dummy08"
Removing node "Bip01 R Finger3"
Removing node "Bip01 R Finger31"
Removing node "Dummy10"
Removing node "Bip01 L Thigh"
Removing node "Bip01 L Calf"
Removing node "Bip01 L Foot"
Removing node "Bip01 L Toe0"
Removing node "Dummy04"
Removing node "Bip01 R Thigh"
Removing node "Bip01 R Calf"
Removing node "Bip01 R Foot"
Removing node "Bip01 R Toe0"
Removing node "Dummy03"
Removing node "Unlink"

Add default object states...

Add default node states...

Why are all those nodes being removed?

Thanks for the replies BTW.

-Spencer
#6
07/14/2003 (11:51 am)
I'm giving this a bump, because, frankly, I'm stumped.

To recap: If I export a character animation with "collapse transforms" checked, most of the Biped bones, even the ones that are animating, get thrown out (see above). That ain't right.

Anyone? ...anyone? ...Bueller?

-Spencer
#7
07/14/2003 (10:35 pm)
Eh, I gave up and put all the bones I wanted to export in the "always export" list. Seems to do the trick, hopefully there's nothing *too* weird going on with the problem that led to my taking this seemingly drastic step.

-Spencer
#8
09/02/2003 (2:25 am)
Spenser, I have the same problem as you do.
Animated bones are collapsing as well as not animated.
So I just unchek the collapse transform while exporting.
But is it right?
#9
09/07/2003 (11:33 pm)
Andrei,

I had to put this aside for a while, so I haven't had the chance to investigate further. What you see in this thread is all that I've heard on the subject.

I don't see a problem with specifying in a .cfg file exactly what to export and what not to export - and it almost seems preferable to an automated system since I like to know exactly what's going on when I export stuff - but the disturbing thing is, according to the docs, this problem isn't supposed to happen.

I figured I would see this character through, even with the problems I'm having, and then start a new one from scratch. Iteration seems to fix a lot of problems.

-Spencer