Skip to main content

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:

RUKHANKA_DEBUG_INFO

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.

Rukhanka Debug Config

If RUKHANKA_DEBUG_INFO is not defined this configuration script will show a warning message and no configuration options will be available:

Rukhanka Debug Config Without Define

  • 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

Bone Visualization

There are two options to enable Bone Visualization capability for Rukhanka Rig:

  1. Enable bone visualization for all meshes in the scene. This is done by the checkbox described in the previous section on this page.
  2. Add the Bone Visualization Authoring component to the required animated object. Note that this way bone visualization will work even without RUHANKA_DEBUG_INFO defined.

Bone Visualization Authoring