Sign in to follow this  
Lithander

Any engine that supports dynamic adaption of animation data?

Recommended Posts

Hello, I'm curious to know if there's any engine (commercial or free) that supports dynamic adatpion of animation data. Let's say a character modelled and animated in an external program has an animation for grabbing an object. Depending on the objects size and relative position to the character the animation needed to be adapted so the hand really touches the object. Even most recent games like "Broken Sword - the Angel of Death" do a pretty bad job regarding character-scene interaction. A default animation is played but never touches an object in the scene. Is there no engine/technique/sceneformat that allows some kind of dynamic adaptions to animations like I described above? -Lith

Share this post


Link to post
Share on other sites
The technique you are looking for is called Inverse Kinematics. Basically you know where you want a bone to end up at the end of the animation. (Hand bone on a doorknob) and you know where the bone and the rest of the skeleton currently is, so you procedurally create an animation to move the Hand to the doorknob.

Share this post


Link to post
Share on other sites
yes sadly there are no engines(i know of) that really support this. There is also an extension to usual IK which is called full body IK. It simulates the motion of *all* bones in the body when trying to perform a certain motion(like grabbing an object that is out of reach).

Natural Motion has a programm called endorphin that already has tools to create realistic procedural animation(Dynamic motion synthesis, DNS) but AFAIK there isn't a suited tool kit for realtime usage like in games, but they are working on it.

regards,
m4gnus

Share this post


Link to post
Share on other sites
Quote:
Natural Motion has a programm called endorphin that already has tools to create realistic procedural animation(Dynamic motion synthesis, DNS) but AFAIK there isn't a suited tool kit for realtime usage like in games, but they are working on it.


Yeah, Endorphin is basically an offline animation package, as apposed to real time. We have been developing a realtime version - Euphoria - which will feature in a number of upcoming titles.

We are also putting the finishing touches to a new product called Morpheme which is more akin to a 'traditional' game animation system - ie, animation blending, IK, ragdolls, partial hierarchies etc; but also features a robust application to edit, author and debug the animation states and transitions.

This sort of technology has been around for a while, it's just that it takes an awful lot of work to get a robust re-usable system. There are a number of games around that has used IK, however it tends to have been specifically programmed for a specific need in that game (ie - 3 joint CCD chains for the fixing of foot skate). There are a few commercial game engines and middleware products available that support IK, but afaik, there are no free engines offering robust support.

Share this post


Link to post
Share on other sites
Quote:

There are a few commercial game engines and middleware products available that support IK

interesting..i thought we do sth new when integrating IK in our engine.
Do you have any links(especially for videos or executables) or catchwords?


regards,
m4gnus

Share this post


Link to post
Share on other sites
Quote:
There are a few commercial game engines and middleware products available that support IK, but afaik, there are no free engines offering robust support.


Free or commercial doesn't matter. I'm just interested to learn how far the development in that area is.

So...

- morpheme does support it. http://www.naturalmotion.com/morpheme.htm
- Unreal Engine 3 does support it. At least they list "Inverse Kinematics solver for calculating limb pose based on a goal location (e.g. for foot placement)" as a feature on http://www.unrealtechnology.com/html/technology/ue30.shtml.

Any more products that come to your mind? Or more detailed information about the 2 solutions above? (anything that exceeds one line in a feature list^^)

Share this post


Link to post
Share on other sites
There's also http://www.catoolkit.com/products/CATRuntime/default.asp

I can't comment too much on Morpheme due to one of those pesky nda's. Anyhow, more generally. Writing the code for an IK solver is a fairly trivial task - that's not really a big deal. There are far bigger problems with IK though :

* You normally need limits for your joints, so for example, you do not have a knee bending the wrong way...

* Your IK probably also wants some form of awareness of the world around it, otherwise you could easily get an elbow or a knee through some solid object (wall, table, etc).

* often IK does not look natural, it often looks like a solution. ("I don't bend my arm like that!")

* The IK will require input from your game engine - ideally you want a fully working (and bug free) game engine before IK can actually do much that's useful (ie - feed it closest positions on terrain, inform it of the object on the table etc)

* IK is rubbish on it's own - ask any Maya/Max/Xsi animator how they set up a decent IK rig for an arm or leg, and you'll see they set up a tonne of expressions + point/orient/pole vector/parent constraints to make the IK system into something useful for them. At that point, the solvers become a tad more complex.... most animators know more about decent IK than programmers....

Share this post


Link to post
Share on other sites
Granny 3D has, according to their web-blurb:

"Fast inverse kinematics for run-time animation control - models can look in a direction, reach for an object, etc."

Granny has been used in quite a lot of games.

Share this post


Link to post
Share on other sites
I'd just like to point out a simple solution that many games use and it doesn't require IK. You can have your animators animate two poses and blend between the two based on the size of the object.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this