Game Development Community

Adding a node to character in MS3D borks the animations

by J.P. Berry · in Artist Corner · 03/30/2009 (7:33 pm) · 6 replies

I have a model that is rigged to a skeleton and animated. Now I would like to add in an eye node (for example). The problem is that whenever I add in a node (aka a joint in Milkshape) to the shape, all of my animations go all crazy and disoriented.

I have tried adding it as a "floating" node as well as a node attached to part of the skeleton. The animations go crazy whether or not I'm using the built in animations or .DSQ's.

So how can I add in a node or joint without affecting the animations that are already in place?

#1
03/31/2009 (6:37 am)
OldSkool

This is about the only way I know you can do it in Ms3d without taking the shape into another program that retains the world coordinates and local coordinates of a node. Sorry to make your eyes...bleed!

I can do this type of character editing, I'm pretty experienced at it; they call me, "The Doktor"....

Remember: always complete your rigs before animating, in any program I'd say....
#2
03/31/2009 (12:26 pm)
Thanks Rex.

This is the first time I've ever run into this problem.

I purchased an animated model and now have to add some nodes to get it working properly in my version of torque (mostly the eye/cam node and a couple more nodes that are specific to my programming needs - damage/particle emitters and such).

The article is a little.. fuzzy.. but I'll give it a shot when I get home and let you know how it goes. But, do I really have to do all that trickery when I'm just adding an unconnected joint? Adding things in like a 3rd person camera node should be trival.. but I guess there isn't anything really trivial in game development!
#3
04/06/2009 (11:41 am)
Hey Rex, I'm wondering, is this a Milkshape-only quirk? If I were able to get this into something like 3DSmax, would I be able to add nodes more easily? Thanks again,
JP
#4
04/06/2009 (1:07 pm)
Yes, this is a limitation of Ms3d's Joint system. Any program that supports the storing of the World Coordinates as well as Local Coordinates, would probably not have this 'issue'. Milkshape3D only stores the Local coordinates of a joint....

Now, adding bones after Max weighting envelopes are established or the 'skin' listing...might prove troublesome in it's own right. I've read in the DTS documents that 'removing' a node from the skin listing is not a good idea; not sure if this 'caveat' applies to adding nodes as well.

I use a few tools that handshake well together, including Ms3d; I can add nodes and remove them at will with no ill effects to stored/existing animation.
#5
04/06/2009 (1:28 pm)
A good idea would be to rig your model and hit Tools->Zero Joints before you start animating. This puts every joint at the same orientation. If you decide to add another node, you can add it, hit Zero Joints again, and the orientations (and your animations!) should be fine.
It's a good habit to start getting into...I've completely screwed up four models this way.
#6
04/06/2009 (3:32 pm)
True, you can reZero joints as you go, however; unless your chains and geometry match, you'll have to use more than a single vector to get the bones rotating as you'd like the geometry moving. It's difficult to get geometry aligned to exact world coordinates.