Game Development Community

PhysX Joint Types in Ecstasy

by Chris Calef · 06/20/2009 (2:29 pm) · 10 comments

Hey, Current and Future Ecstasy-ers!

Welcome to my first ever public blog for Ecstasy users! 8-) We had a great product release last week, and hope all you new customers are having a wonderful time with Ecstasy and getting tons of animation work done! To those still thinking about it, you can grab it at: www.ecstasymotion.com.

This week's blog is about joints. PhysX offers quite a wide variety of joint types, and Ecstasy supports just about all of them.

Below is a quick youtube video showing PhysX joints of three different types. The one in the middle is a revolute (hinge) joint, the one to the right is a spherical (or ball and socket) joint, and the one on the left is called a D6 (six degrees of freedom) joint.


All PhysX joints can be defined either with a global axis, or with local axes in the coordinate systems of the child and parent bodies that the joint is connecting. I rewrote my system this week to make this process easier in Ecstasy. Now, you can use a global axis, if that makes sense for your situation, or you can define only the child axis and let the system figure out the same axis local to the parent body's frame of reference. This is very useful for models that are set up by default in an arbitrary "natural" pose - like Kork - rather than a T-Pose or some other globally axis-aligned position. In this situation, for most of Kork's bodyparts, you can simply define the X axis in the local child space to be your joint axis, and the parent gets thrown in for free.

Every joint also needs to have a normal defined the same way as the axis, but once you do this, you can then go to town with TwistLimits and SwingLimits, to get whatever kind of behavior you need out of your joint.

In Ecstasy, all of these properties are defined in an fxJointData datablock class, of which there are numerous examples in the scripts provided.

If you've already purchased Ecstasy, make sure you hit the "Update Application" button on the launcher, to catch you up to all the changes I just committed! Also, keep your eyes on the "How To's and Tutorials" section of our site - we expect to have several short videos up there soon, to show how to use the various features of the program.

Sorry to write such a short blog, but I've been coding for days, and the non-software-related aspects of life are closing in with demands for this busy Saturday afternoon! I'll leave you with this short demonstration of our new ragdoll configuration:


music by Manu Chao

#1
06/20/2009 (3:58 pm)
This application looks cool but sounds hard to use... Would this be good for an RPG environment?
#2
06/20/2009 (4:05 pm)
Are there any tutorials on usage?
#3
06/20/2009 (4:48 pm)
Yes, it comes with a pretty extensive tutorial in html, although it is admittedly still a little clunky (we're still firmly planted in the Early Adopter phase of development). It is very fast and easy once you get the hang of it, however.

It's for making animations that you can use in any environment, so yeah, it would be great for making an RTS.
#4
06/20/2009 (5:54 pm)
Can you use Ecstasy to retarget animations? Like load up Korks animations, and target them to MACK, and save them?

Also - Can we adjust an animation? Ie, the arm is too far at one point, we can drag it down?
#5
06/21/2009 (2:20 am)
Yea thats a good question dose it have like auto if i dont have mocap software can i manipulate the model frame by frame to make moves or special attacks? Is there a time bar and auto key?
#6
06/21/2009 (12:45 pm)
Yes, absolutely, these are the kinds of problem that Ecstasy was originally designed for! First, you can retarget animations by loading them onto the character they were intended for, saving them to bvh, and then loading the bvh on the character you want the anim to move to. (Note: there is still a setup step here that can be a little clunky, you have to make a cfg file that tells Ecstasy which nodes go with which on the different models, and how to adjust the rotations so everything works. It's documented, and I can help you with it as well.)

Then, second point, yes you can move arms around - in the EA edition of Ecstasy it isn't quite as easy as dragging the arm with your mouse, you have to add rotations via XYZ boxes in the keyframes pane, but it's easy and fast once you get the hang of it.
#7
06/21/2009 (3:22 pm)
@Chris: Great news! I'm buying it as soon as I can convince my wife that it's money well spent. (Perhaps I should use the "fathers day" angle...)
#8
06/22/2009 (12:26 pm)
Just tell her how much it would cost you to be able to do this stuff any other way... (Motion Builder = $7k, Endorphin = $12k, Morpheme = $OMFG, etc). I can't claim Ecstasy has the features & usability of those guys yet, but I'm feeling pretty good to even be in the same room with them for under a hundred bucks...

Everybody should know as well that this Torque Love $99 deal won't last forever either... at some point in the next few weeks we'll be setting it to the "regular" EA price of $149. That should be stable until 1.0 is out, at which point the final price will be announced. (Assume somewhere under $500, but exactly where will depend on how many of the planned features we're able to get working by then.)

But anyone who buys the "Torque Love" (S.T.E.A.L.) edition now will be a full owner all the way through 1.0 and get _all_ the updates, plus our eternal friendship and gratitude for helping us get this ball rolling!

#9
06/23/2009 (11:36 pm)
Chris, I finally got time to download and play with Ecstasy! Man I sure feel the love the programs working great, I need to learn how to map the mocap files from true bones to my model and the new physic joints and I think I will be set. 5 Stars Man!

10k Polys anim DSQ style but I will get him dancing and day now! Power to BrokeAss!

www.bitSlap.me/EcstasyPowerShotlol.jpg
#10
06/24/2009 (4:44 pm)
Wow, nice work Omega Man!! Glad to see it working for you! Just email me if you can't figure out the node mapping, I'd be glad to help.