Shark 3D animation system

1. Overview

Shark 3D offers a universal animation and object dependency system with fully build-in networking support. The animation system includes multi-layer skin-deforming skeleton/bone animations and universal hierarchical animations as special case of the universal animation system. All animation features can be used on component configuration level, without needing any C++ code or script code. The Shark 3D object hierarchy and animation system provides a sophisticated smart recalculation system and smart build-in networking support.

2. Multiple kinds of animations

Shark 3D provides standard components for different kinds of animations. This includes:
  • Path animations imported from a 3d tool (e.g. 3D Studio Max™).
  • Mesh morphing.
  • Skeleton-based skin deformation.
  • Hierarchical animation.
  • Other features.

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.

4. Intelligent universal object dependency system

Object dependencies

There are not just specialized features for character animation and world animation. Instead, several kinds of objects can build arbitrarily complex object hierarchies. This includes animation objects, 3d object instances, position objects, sound objects and so on.

Hierarchies

Hierarchical animations are a very simple special case of the universal Shark 3D animation system. But objects are not restricted to usual hierarchical dependencies, but may basically depend in any way from other position and animation states.

Optimization

The universal object hierarchy system internally is optimized to automatically minimize calculations using several optimization techniques. For example, as long as the position of an attachment point of an animated character is not needed, it is not calculated. Similarly, if an animation layer is not played at the moment, it does not consume calculation time. Such kinds of optimizations are performed basically for every object in the object hierarchy system.

5. Advanced features

Character walk animation system

Advanced features include for example a character walking animation system. This component can automatically generate suitable walk animations for walking in any directions including diagonal sliding.

6. Custom components

Adding custom components

You can add custom components providing new functionality or for replacing standard components.

Combination of custom components with standard components

Your custom components can work together seamlessly with standard components. Especially, standard components can fetch data from custom components. The only requirement is that the custom component implements a corresponding standard interface. These standard interfaces are designed to be generic and as flexible as possible.