Vixen
02b45cc4
csharp
public static class VariationHarness

Plays an interaction across a range of bodies, props and ground, and measures it.

Read the guide page for this →

Remarks

The single highest-value tool in doc 34, and the answer to its first risk. The honest cost of constraints is marking up a library of clips, and what makes that cost bearable is not authoring faster but knowing when to stop.

Four measurements, because four different things go wrong: a goal misses (Residual), a contact sinks into what it was supposed to rest on (Penetration), a hand snaps between two frames (Jerk), and a limb runs out of arm (Reached).

⚠ "Joint limits hit" is Reached and they are not the same thing. The plan asks for joint limits; no skeleton in this engine carries any, which DefaultConstraintArbiter already says. What can be measured is whether the chain was fully extended while the goal was still missing — a straight arm reaching for something out of range — which is the failure a limit would have caught in the cases that matter here. Reporting it under the name it actually has beats reporting a limit check that does not exist.

⚠ Nothing here touches a graphics device, a window or the ECS, so a CI machine runs it exactly as an editor does. That is not a happy accident: it is why the measurements are taken from LastResiduals and the pose rather than from anything rendered.

Methods (2)

Used by (6)

  • HarnessTestsVixen.Animation.Tests
  • JointLimitTestsVixen.Animation.Tests
  • PlaybackVixen.Animation
  • HarnessDocumentVixen.Editor.AssetEditors
  • HarnessViewTestsVixen.Editor.AssetEditors.Tests
  • VariationHarnessViewVixen.Editor.AssetEditors