Debug and Validation
Extended Validation Layer
Despite that the animation system heavily depends on name relations between components (bone names, animation parameter names, state machine state names, etc), string
values are used only in bake time. Bake systems convert all string
values into Hash128
representations and work with them in runtime. No string data is available during state machines and animation processing. This approach is very performant but debugging and validation in case of issues become very complicated.
To make the easier process of watching for state and parameter changing, debugging, and detailed logging of baking processes, Rukhanka introduces a special extended validation
mode. This mode can be enabled by adding the RUKHANKA_DEBUG_INFO
script definition symbol into project preferences:
Adding this symbol, Rukhanka will add to all internal structures its corresponding string fields (FixedString or BlobString for Burst
compatibility where appropriate). Watching these members in the debugger and logging makes it much easier to investigate and fix problems in animations
Logging capabilities
By defining RUKHANKA_DEBUG_INFO
extended logging and visualization capabilities have also become available. To configure them add the Rukhanka Debug Configuration
authoring component to any GameObject
inside Entities Subscene
.
If RUKHANKA_DEBUG_INFO
is not defined this configuration script will show a warning message and no configuration options will be available:
- Baking Systems logging will log a total of
Authoring Components
baked as well as additional warnings and messages during the baking process. - Animator Controller System logging will enable the log of animator controller internal state changes and additional details.
- Animation Process System_ logging will enable the log of animation core internal details during runtime.
- Bone Visualization enables internal bone renderer for all Rukhanka
Rigs
.
Bone Visualization
There are two options to enable Bone Visualization capability for Rukhanka Rig
:
- Enable bone visualization for all meshes in the scene. This is done by the checkbox described in the previous section on this page.
- Add the
Bone Visualization Authoring
component to the required animated object. Note that this way bone visualization will work even withoutRUHANKA_DEBUG_INFO
defined.