Pose animation support in XSI

· by Steve · Read in about 3 min · (439 Words)

I’m getting close to finishing the pose animation support in XSI, for example here’s some data exported from the XSI facial animation tutorial:

Poses can be blended together at different weights using your animation tracks in order to give the scripted expressions required to play back pre-scripted sequences, such as speech or just a cutscene. Or you can dynamically alter the blending basically by dynamically tweaking custom active tracks. It all adds up to a very flexible vertex animation system, perfect for the sorts of things you’ll use vertex animation for these days (and of course it can be vertex shader powered easily, an important issue for OGRE’s design goal of moving as much as possible to the GPU). OGRE has only supported skeletal animation so far because I believed it was more important to have a full featured skeletal animation system than to bother supplying the frankly outdated and really very ugly MD2-style approach to character animation (and I still think we have the best character animation system of the open source offerings). I was aware that facial animation using bones was a bit more awkward though, so this addresses that issue. You can do traditional morph (MD2 style) animation too if you really want, either using the simplified morph option or using poses to do it. It’s really just there as a concession to old tools and because it wasn’t that hard to allow once the more complex options were designed; I don’t seriously expect people to use such an outmoded animation technique these days. I won’t be supporting it in XSI since it’s not very interesting and XSI’s more flexible animation approach maps far better to pose and/or skeletal animation alone anyway.

It took a while to get the shape key exporting 100% correct in XSI due to a number of factors, one of which being that XSI allows you to define shape keys in one of 3 different spaces - the most useful of which is Local Reference Mode, which means all the offsets are relative to a local point space and thus play nice when combined with skeletal animation. It took me a little while to realise that, and to figure out how to derive the local axes for that space so I could get the offsets in the form I wanted.

I now need to work on the exporting of shape clips before I’m done with the Dagon version of the exporter. I’ve signed some paperwork with Avid (SoftImage) and am hoping this will lead to getting formal go-ahead to distribute some of the XSI tutorial art with the OGRE samples. Fingers crossed.