Collision mesh hierarchy
by Russell Fincher · in Artist Corner · 11/01/2007 (12:02 pm) · 3 replies
We're working on getting ragdoll physics working on a quadraped over here. The quadraped DTS and DSQ files have been exporting and working great for weeks now. Now to get the ragdoll stuff working, I've created a collision mesh for most of the bones, and made them children of the bones they represent. Here's a bit of the schematic and some visualizations:

So far so good. Now when I get this into ShowTool, I can see that the hierarchy looks a little different than I expect:

The problem here is that Max is exporting an additional non-mesh node for each of the convex collision meshes that we're intending to use for our ragdoll. What we need is for the convex mesh to be a child of the actual skeleton's nodes instead of this new node. In the image above, we need:
The convex mesh Convex_Trike_LFShoulder ("Convex Mesh" in RED box) to be under the *node* Trike_LF_Elbow ("Regular Skeleton Node" in GREEN box) rather than under the *node* Convex_Trike_LFShoulder ("Convex Mesh Node" in RED box).
Ideally, we'd also be able to do away with the Convex_* nodes altogether, since they also screw up the parentage hierarchy between nodes. Here is an mockup image of ideally how we need the hierarchy to be:

A secondary, but much less important issue is that Max is also exporting the convex meshes it uses to show the bones in Max (the RED box, "Max Skeleton Mesh"). If there's a way to get rid of this behavior, it'd be handy to do, but the above issue is the main problem and really somewhat of a show-stopper compared to secondary problem.

So far so good. Now when I get this into ShowTool, I can see that the hierarchy looks a little different than I expect:

The problem here is that Max is exporting an additional non-mesh node for each of the convex collision meshes that we're intending to use for our ragdoll. What we need is for the convex mesh to be a child of the actual skeleton's nodes instead of this new node. In the image above, we need:
The convex mesh Convex_Trike_LFShoulder ("Convex Mesh" in RED box) to be under the *node* Trike_LF_Elbow ("Regular Skeleton Node" in GREEN box) rather than under the *node* Convex_Trike_LFShoulder ("Convex Mesh Node" in RED box).
Ideally, we'd also be able to do away with the Convex_* nodes altogether, since they also screw up the parentage hierarchy between nodes. Here is an mockup image of ideally how we need the hierarchy to be:

A secondary, but much less important issue is that Max is also exporting the convex meshes it uses to show the bones in Max (the RED box, "Max Skeleton Mesh"). If there's a way to get rid of this behavior, it'd be handy to do, but the above issue is the main problem and really somewhat of a show-stopper compared to secondary problem.
About the author
Art Lead at Sickhead Games, focused on dev tools and prototyping, instructor/advisor at several Dallas colleges and universities, Associate Developer with GarageGames, champion of avant-garde game art at uncommonassembly.com.
#2
11/01/2007 (12:23 pm)
Actually, one way I just thought about might be to simply remove the Trike_LF_Shoulder and use the actual collision mesh as the bone. May or may not work in your situation...
#3
11/01/2007 (1:25 pm)
Thanks for your input Magnus. Looks like we'll just have to keep the collision volumes in a different DTS.
Torque Owner Magnus Blikstad
All meshes are attached to their own "node", they're not REALLY different exported objects, it's just the way torque represents the data. Unless I'm completely missing your point and not at all understanding what it is you're asking.