Link
3. Skeleton-based skin-deforming animations
Multiple sub-objects skinned by one skeleton
A character mesh animated by one single skeleton can be divided
into multiple sub-objects.
Each sub-object can have different shaders
and can be enabled separately.
The skin deformation of one single mesh can be also driven
by different groups of bones which are driven by separate animations.
Any number of animation layers
Any number of animation layers can be played and faded in or out
at the same time, at different times, or overlapping time periods,
controlled by one or more scripts.
Fading and blending of bone-animations
Animations can be faded and blended.
For example, you can smoothly fade in and out the "run" animation.
The "run" animation itself may be started at the same time,
continued playing, or stopped immediately.
You also can blend between two or more animations.
This is a special case of fading multiple animations in parallel.
Fading animations allows you to eliminate animation state "jumps".
Every animation state goes into another animation state smoothly.
Animation groups and group fading
Animations can be grouped together to groups
having common fading.
Combination of multiple bone-animations
The Shark 3D animation system
allows a non-linear combination of several animations in real-time.
Combining animations correctly respects bone hierarchies.
For example, suppose you have one animation also rotating the arm,
and another animation moving the fingers of a hand.
The animation of the fingers has to be rotated
according to the current arm rotation.
Shark 3D plays
the finger animation correctly for every rotation state of the arm.
Any number of attachment points
Skeletons can have any number of attachment points,
e.g. for weapons.
Manual joint control
Skeleton joints can be controlled explicitly
by custom components.
Re-using animations for different skeletons
The same bone-animation can be shared between different skeletons.
The different skeletons must have the same bone hierarchy,
but can have different extensions and base angles.
This saves memory when having several different characters.