osgAnimation is the a new effort to put generic animation is OpenSceneGraph. It is currently in 'beta' and in development phase but can do a various things yet. The way osgAnimation is made is to let the user the flexibility to change the behavior of predefined class.

The development branches are located

hg clone http://hg.plopbyte.net/osg-trunk/

short description of class

  • Sampler is the 'low level' type (use to interpolate in a keyframe container with an functor that define how to interpolate)
  • Channel is the association of a Sampler and a Target (it's the result of the sampler poll)
  • Animation is a container of Channels . Often you will have position,rotation and scale, but you can have what you want like color, animation of a stateAttribute. You can add what you want.
  • Bone is a new transform type to manage skeleton animation
  • Skeleton is the root of a tree that contains Bone
  • Timeline is a way to organize and play animation (like a scheduler)
  • Callback begin, end are implemented through the timeline scheduler (see the example osganimationtimeline)
  • EaseMotion , ease motion are predefined curve ready to use (follow the link, you will understand)

Features supported

  • skeleton animation with rigged mesh [software and hardware implementation]
  • solid animation
  • it can link an animation channel of any type to another object, or state attribute. (e.g.: linking the x animation of an object to the alpha of a color.)
  • blender exporter http://hg.plopbyte.net/osgexport/
  • timeline scheduler
  • mixer with priority

Next Step

  • Refactore timeline manager
  • Enhance AnimationManagerTimeline?. let the user to clean old action finish, use a hierarchical data structure to accept a lot of action.
  • split component in keyframe, like splitting x, y, z on different channel... It's more a exporter function

* Refactore Bone related update callback it means that the format will change soon and will be not backward compatible

Long term feature to implement

  • add tool to filter animation data
  • improve performance
  • inverse kinematics
  • max exporter, maya exporter, ... (for now you can export in either the FBX or Collada (.dae) formats which will be imported as osgAnimation data in an OSG application)
  • compressed keyframe container

Blender Exporter


To export rigged model from blender you have to name your VertexGroup? with the bone name, because the association is done by name. If you have more than One bone in a vertex group, it will not work. It's something that has to be fixed. you can get the last version of blender exporter here http://hg.plopbyte.net/osgexport/


  • Export Mesh, Light, Transform
  • Export Action (Rigged mesh) and IPOS
  • Support Group in blender, and create instance in the blender file
  • Export multi uvs, multi texture, multi materials