Animation Engines
The animation engine is a part of Rukhanka that reads, processes and blends animation tracks for the animated rigs.
Rukhanka has two animation engine implementations:
- One that is completely implemented on parallel jobs and
Burst
-compatible C# code. In the documentation, this engine is referred to asCPU Animator
. - Another with the core routines implemented using compute shaders. In the documentation, this engine is referred to as
GPU Animator
.
The reference Rukhanka animation engine is the CPU Animator
. The GPU Animator
is closely followed by the CPU Animator
and produces exactly the same animation results, but due to the CPU-GPU interprocess communication aspects, cannot provide all functionality available from the CPU Animator
.
Animators Feature Support Table
The following table shows available animator features and their support status.
Feature Name | CPU Animator Support Status | GPU Animator Support Status |
---|---|---|
Legacy animations | ❌ | ❌ |
Generic animations and avatars | ✅ | ✅ |
Humanoid animations and avatars | ✅ | ✅ |
Weighted animation blending | ✅ | ✅ |
Avatar mask application | ✅ | ✅ |
Loop pose calculation | ✅ | ✅ |
Altering animation results | ✅ | ❌ |
Inverse Kinematics | ✅ | ❌ |
Root motion | ✅ | ❌ |
User animation curves | ✅ | ❌ |
Blend shapes | ✅ | ❌ |
Bone position writeback | ✅ | ❌ |
Working with physics | ✅ | ❌ |
Working with Netcode | ✅ | ✅ |
Animation frustum culling |