|Version 5 (modified by osg, 6 years ago)|
osgAnimation is the a new effort to put generic animation is OpenSceneGraph. It is currently in 'beta' and in developpement phase but can do a various things yet. The way osgAnimation is made is to let the user the flexibility to change the behaviour of predefined class.
The developpment branch are located
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 sceduler)
- Callback begin, end are implemented throw the timeline scheduler (see the example osganimationtimeline)
- EaseMotion, a subset of EaseMotion is in osgAnimation ( http://www.robertpenner.com/easing/easing_demo.html )
- skeleton animation with rigged mesh [software implementation]
- solid animation
- it can link an animation channel of any type to another object, or state attribute. (eg: 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
What are we doing now
- Clean up of Animation class to only provide Animation data, remove logic from this class.
- Clean up AnimationManagerTimeline?, move it to an UpdateVisitor?, and do the same for BasicAnimationManager?
- Ehnance AnimationManagerTimeline?. let the user to clean old action finish, use a hierarchical data structure to accept a lot of action.
Short term feature to implement
- hardware skinning
- splitted component in keyframe, like splitting x, y, z on different channel... It's more a exporter function
Long term feature to implement
- improve performance
- inverse kinematics
- max exporter, maya exporter, ...
- compressed keyframe container