Any engine that supports dynamic adaption of animation data?
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
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.
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
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
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.
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
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^^)
EmotionFX also has a basic IK system with solvers. Also I believe that Gamebryo does at it used to when it was called NetImmerse.
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....
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....
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.
"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.
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.
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement