Re: [Algorithms] skeletal animation vs. morphing
Brought to you by:
vexxed72
|
From: Michael D. <md...@io...> - 2000-12-31 08:17:14
|
----- Original Message ----- From: "Eric Maslowski" <mas...@ms...> > Hello, > I was wondering if anyone could foresee any faults in using a morph based > animation system over a skeletal animation system for character animation? By > "morph based" I mean a system that is defined by poses. These poses are created > by the artist (possibly with help from a utility that speeds up common poses). > Which pose to use is decided at run-time depending on in-game criteria. Simple > linear interpolation would be used to blend from one pose to the next. It's your > standard morph-target animation system. > It seems to me that it would be very efficient at run-time. May take a little > longer to create content for, but the resultant animation can be much more > dynamic. Any thoughts? Thanks. This approach is certainly workable, and it is the animation system that Quake used up through Quake 3. The problem with morph target animation systems are in part: 1) Large storage requirements. The higher the poly count in the model, the worse the storage requirements become. Also adding new frames of animation is expensive in terms of memory storage. 2) Linear interpolation. This means vertices move directly from one position to another, and thus don't handle curves well. All of the body's movements are along curves, so you need more keyframes to approximate the curve to keep it smooth, which just makes storing the animation even more memory prohibitive. The fewer keyframes you have, the more likely the animation will be distorted. 3) Difficulty in blending. If you are wanting to blend two separate animations together morph target animation systems don't work as well as skeletal animation systems. The keyframes in your morph target animation were meant to flow into each other, so you can check during content creation to avoid bad distortion. But when you blend different animations together, the chance of getting some messed up distortions are higher. With skeletal animation systems you can blend as many keyframes together as you like, and you won't get mesh distortion. You may get a screwed up pose, but you won't get mesh distortion. 4) Animation locked to mesh. When you work with a morph based system, the animation is "baked" into the mesh. With skeletal systems, you can attach different similarly sized meshes to the same skeletal system and re-use the animations quite easily. That said, morph target based animation systems are a LOT easier to implement, and you can use existing model formats like the Quake formats to store and load your models (if you don't plan on selling your engine). And as you said, it is faster to calculate frames for a morph based animation system than for a skeletal based one. And it is easier to export morph targets from an animation package than skeletal system data. The morph targets can just be exported as separate models, but the skeletal system requires exporting a heirarchical skeletal system, exporting the animations for the skeleton, and exporitng meshes with the correct weighting information to attach the vertexes to the various bones of the skeleton. Hope this helps, Michael Duffy md...@io... |