Skeletal Animation

Virtual Humans and Skeletal Animation


Skeletal animation is an established technique to model and animate articulated objects in real-time virtual environments. The idea of skeletal animation is to use an auxiliary structure (skeleton) to simplify the control of the modelled 3D object. A variety of problems arises in the context of skeletal animation. In this project, we focus mainly on the problems of skin deformation (skinning) and collision detection.


The problem of skinning is delicate, because believable skin deformations have to be computed with minimal computational complexity. The first condition is due to the fact that a human observer is particularly sensitive to the shape of a human body. The second condition is due to the fact that character animation is typically just one component in an application (e.g., a videogame) and therefore, it should not consume too much resources. The interactivity is a must and therefore most current computer games favor inaccurate but fast algorithms, such as linear blend skinning (aka skeleton subspace deformation or vertex blending). Our goal is to develop algorithms with similar computational complexity as linear blending, but delivering higher quality deformations. Our first contribution, bones blending, has been generalized and turned into a more useful spherical blend skinning.

Fig. 1: Left: An extreme shoulder twist deformed by linear blend skinning. Right: the same posture deformed by spherical blend skinning.

Collision Detection

Virtual characters are typically not used standalone, but within a virtual environment, where they can interact with other characters and objects. Most often, such interaction requires first to detect geometric intersections (collisions). Collision detection is a computationally intensive process, which uses to be the bottleneck of physics simulators. We exploit special properties of skeletally animated models to achieve a more efficient collision detection algorithm for skinned characters. This algorithm is useful both for detecting collisions among different characters as well as for detecting collisions among characters and rigid objects.

Fig. 2: Collision between virtual characters. Our algorithm exploits the knowledge about the applied deformation algorithm. Therefore, it re-computes only the blue bounding spheres, while a general algorithm has to re-compute both blue and red spheres.


[1] [Kavan, L.] [Žára, J.] Real Time Skin Deformation with Bones Blending In: WSCG'2003 Short papers. Pilsen: University of West Bohemia, 2003, p. 69-74. ISBN 80-903100-1-X.
[2] [Štepán, V.] [Žára, J.] Teaching Tennis In Virtual Environment In: Spring Conference on Computer Graphics - SCCG 2002. New York: ACM, 2002, p. 49-54. ISBN 1-58113-608-0.
[3] [Štepán, V.] [Žára, J.] [Hlavác, V.] Describing Human Activities for VR Presentation In: Visualization, Imaging, and Image Processing. Anaheim: Acta Press, 2003, vol. II, p. 37-42. ISBN 0-88986-382-2.
[4] [Kavan, L.] [Žára, J.] Spherical Blend Skinning: A Real-time Deformation of Articulated Models In Proceedings I3D 2005. New York: ACM SIGGRAPH, 2005, p. 9-16. ISBN 1-59593-013-2.
[5] [Kavan, L.] [Žára, J.] Fast Collision Detection for Skeletally Deformable Models In Computer Graphics Forum. 2005, vol. 24, no. 3, p. 363-372. ISSN 0167-7055.