Enum that defines how root motion is handled when producing the output animation clip. It has three modes: Off (leave solved hips/root as-is), Extract (move smoothed ground-projected hips trajectory onto a dedicated root bone, keeping hips local height and rotation), and InPlace (remove horizontal hips travel so the clip is in-place).
#nullable enable annotations
using System;
using System.Collections.Generic;
using System.Numerics;
using HumanoidRetargeter.Core.Maths;
using SkeletonModel = HumanoidRetargeter.Core.Skeleton.Skeleton;
namespace HumanoidRetargeter.Core.Cleanup;
using Vector3 = System.Numerics.Vector3; // s&box compat: shadow engine's global-namespace Vector3 (see Code/HumanoidRetargeter/Assembly.cs)
/// <summary>How root motion should be handled in the output clip.</summary>
public enum RootMotionMode
{
/// <summary>Leave hips/root channels exactly as solved.</summary>
Off,
/// <summary>
/// Move the ground-projected, smoothed hips trajectory onto the dedicated root bone;
/// hips keep height and full rotation locally (Unity/UE convention).
/// </summary>
Extract,
/// <summary>Remove horizontal hips travel entirely (in-place clip); root stays put.</summary>
InPlace,
}