JonathonA
Member
|
Animation controllers
What do they do?
Allow greater control of animations being played, giving better opportunity to blend and replace single or multiple animations.
How do they work?
Start with a couple of classes: blend animator and frame animator. Instances of these classes can become sub nodes (children) of each other, allowing you to build a hierarchical animation tree. (This would require some sort of tree-like storage container/data structure).
Each animator can target a specific bone and its children, or the entire model (by default). A weight for each animator can also be specified to determine its importance.
Basically each animator outputs the animation transforms to its parent animator, the parent then processes it and continues to move up the tree until we get the final animation output.
The frame animator would store the keyframes for an animation and would be used to load the .anim resource (much like the cskel.animate(...) which loads the resource, storing the animation data in Mems<CSkelBone> _bones).
The blend animator would be responsible for taking the child animator outputs and blending them (this would have to take into consideration each child animators weight (or importance).
I have seen almost identical systems before in a couple of game engines/development kits ranging from UDK and Unity (which I appreciate have a larger development team) to C4 (developed by Mr Lengyel) and the flexibility it allows is incredible. I appreciate a great deal of work would be involved though.
Bottom line is that targeting CSkelBones and their children to be affected by an animation would be fantastic.
(This post was last modified: 05-17-2012 12:13 AM by JonathonA.)
|
|
04-26-2012 11:28 PM |
|