| Version 6 (modified by osg, 5 years ago) |
|---|
osgAnimation
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
hg clone http://hg.plopbyte.net/osg-branch/ or svn co http://www.openscenegraph.org/svn/osg/OpenSceneGraph/branches/OpenSceneGraph-osgWidget-dev/
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 throu 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 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
