Game Development Community

Procedural Animation

by Eric McQuiggan · in Torque X 3D · 10/07/2009 (6:06 pm) · 5 replies

Hey Crew,

Do you fine folks know of a way to directly control the rotation of individual bones for procedural animation, that would help me a lot.

Thanks,
Eric

#1
10/07/2009 (7:56 pm)
If you're using the T3DTSRenderComponent, you can get the public Shape property and from there get the Nodes array. This should be an array of all the nodes that are animated and you can manually set their transform. If you end up fighting for control over the nodes, try creating your own component, similar to T3DTSRenderComponent, but using your own update methods.

John K.
www.envygames.com
#2
10/07/2009 (8:10 pm)
Excellent,

Thanks for pointing me in the right direction, this should make this better!
#3
10/08/2009 (7:08 pm)
Hahaha, so I got what I asked for, I was able to make rotate an individual bone, but I forgot completely about forward kinematics. So again, John, thanks.

BUT, is there away to apply a rotation on the bone so that it preforms a a forward kinematic ..erm, thing... on the children of the bone, or will I have to devise that myself?


Basically, I'm trying to make a procedural sword slicing motion, and I need the children to rotate(orbit?) around like a real arm, if I rotate the upper right arm bone.
#4
10/09/2009 (6:49 pm)
Ok,
I've created a component that inherits from T3DTSRenderComponent, I've recreated the Render function, I've managed to get the upper right arm to rotate with
_shapeInstance.NodeTransforms[nodeNum] += Matrix.CreateRotationY(changevalue);
I noticed that the index of the _shapeInstance.NodeTransforms does not relate to _shape.Names, Also I cannot find a general "transform' in the shape, only translations. I hate to ask, but what value would be the best to rotate? I don't want to destroy the initial model positions, only augment them, as I would like to turn this procedural animation off.

Thanks again.
#5
03/15/2010 (4:49 pm)
would you mind including your code for your inherited class. I was trying to subclass one of the rigidcomponents that torque has and i dont know the correct way to go about it. or maybe can you explain exactly how to correctly do this. Thank you