Inverse Kinematics: An approximate real time history
November 17, 2012 § Leave a comment
Hi, my name’s Sean Richardson, and I have a weird habit.
“Hi Sean. The first step to recovery is acceptance.”
Why thank you disembodied voice, I was just wondering though, would you like to know about my slightly odd habit?
“Oh. Uhhh, not really, if it’s all the sa-”
Great! So, whenever I’m playing a third person game of any kind, I can’t help but stop my character on slopes, and look at their feet!
“I don’t know if that’s that odd, I mean, lots of people do that.”
Do they though? Do they do it for the same reasons as me? Do they really understand? You know what, I can see it in your face, you’re confused, so I’ll explain.
“That’s really not-”
If you’ve ever stopped, looked down at your character’s feet, and thought “wow, that’s some good connection with the ground my character has” then you have Inverse Kinematics to thank for that. Inverse Kinematics, you ask? Well, it’s the opposite of Forward Kinematics! Forward Kinematics is, for the simplest explanation, a process we do mentally every day. We think to ourselves “I’d like my finger to be there, so that I can type the ‘f’ key” and so we move our muscles so that our finger is there. In a computing sense, the idea is that you work out the position of something(like a finger) based on all the previous joints.
Inverse Kinematics, is of course, the opposite. Inverse Kinematics ask “if my finger is here, where would every other relevant part of me be?” Or, in most cases, it asks about characters feet. In fact, their legs were so specific that an early paper outlining Inverse Kinemation in animation referenced legs specifically(Computational modeling for the computer animation of legged figures). Personally, I started thinking about this recently, after noticing the effect in The Legend of Zelda: The Wind Waker, which was a particularly good implementation, especially for when it was written.
There are problems there, like when you stand with one leg off an object, and it’s also important to note that Wind Waker has an unfair advantage, which is the length of Link’s legs, which make altering the angle considerably easier when compared with someone of relatively normal proportions. Like say, Link.
Oh, yeah, that’s right, Ocarina of Time featured Inverse Kinematics. Remarkably, OoT wasn’t even the first game to feature IK. So far as my research shows, that honour goes to Jurassic Park: Trespasser. A pioneer in many fields, a jack of all trades, and a complete failure at everything, Trespasser, released in October of 1998(So it’s beating OoT by less than a month), animated all of its creatures using IK, rather than a more standard animation system. To say that the results of this were laughable would probably be an understatement.
It’s interesting that a Jurassic Park game would be a pioneer in the field of IK, given 1993’s Jurassic Park film set the benchmark for animal animation through the use of Inverse Kinematics.
Of course, over the years the implementation of IK has improved significantly. For instance, I was impressed when playing Half Life 2, when I noticed a Vortigaunt’s foot angled accurately on a ramp. Guild Wars 2’s implementation manages to animate well with properly proportioned characters, and it also has a “reposition” animation which helps to mask the IK calculations, and stops the characters limbs from suddenly repositioning the moment they stop moving.
The best use, of course, goes to Grand Theft Auto 4. Through its use of Euphoria, and the appropriate body based physics that allows, it has easily the best legs in gaming. It’s a shame that they’re so hard to see thanks to its camera. The animation system causes a change in how Niko moves if he’s going uphill or downhill, meaning there’s no awkward moment when he stops, and any IK attempts to kick in. In fact, the engine even tries really hard to avoid awkward overhangs, by moving Niko’s legs so that he’s always standing on things.
It’s hard to tell from the image, but the back of Niko’s foot is just on the stairs, and any attempt to turn him sideways would fail. Such a strategy should be applauded, given its flawless natu-
Hmm, oh. Well, at least they tried(Again, my images are terrible, but in case it wasn’t clear, he is managing to hold his entire body weight on his right leg, while standing casually).
Obviously, Inverse Kinematics go well beyond simply feet, and how they sit on things, but as a very visible, and increasingly prominent element of games, I thought a brief look at them might be interesting.
Given the majority of this is pulled from Wikipedia, and my memory, it stands to reason that there may be things I missed, or oversights made(I find it hard to believe that nobody has made a comprehensive timeline of something so trivial), if so, I’d love to be proven wrong. If not, well, I guess we can think about feet some more.