# Game Animation Sample Both of the Game Animation Sample's characters (Unreal Engine 5.8) were tested with Traversecraft, on a dedicated server with two clients, 150 ms of lag and 5% packet loss. Both went over a 60 cm wall, onto a 150 cm ledge, up a 250 cm wall and up a leaning ladder in every run. ## In one click Enable Traversecraft, then in the Content Browser right click `SandboxCharacter_CMC` or `SandboxCharacter_Mover` (or both), **Set Up for Traversecraft**, and save. It does what the two sections below do by hand, and also takes the sample's own traversal out of the jump input (see below). A window lists every change. ## The CMC character (`SandboxCharacter_CMC`), by hand 1. Enable Traversecraft. 2. Open `SandboxCharacter_CMC`, **Class Settings > Parent Class**, pick **TRCCharacter**. Compile. It compiles with no errors: the movement component keeps its name. ## The Mover character (`SandboxCharacter_Mover`), by hand Its Character Mover Component is added in the Blueprint, so add Traversecraft to it rather than replacing it: 1. Enable Traversecraft. 2. Open `SandboxCharacter_Mover` and select the **CharacterMover** component. 3. **Movement Modes**: add `Traversecraft` → **TRC Mover Traversal Mode**, `TraversecraftLadder` → **TRC Mover Ladder Mode**, `TraversecraftHang` → **TRC Mover Hang Mode**, `TraversecraftWallRun` → **TRC Mover Wall Run Mode**, `TraversecraftZipline` → **TRC Mover Zipline Mode** and `TraversecraftRope` → **TRC Mover Rope Mode**. Keep the sample's own modes. 4. **Transitions**: add **TRC Mover Traversal Start Transition**. 5. Compile, save, compile again. The settings appear under **Shared Settings > Traversecraft**. 6. Optional: add a **TRC Mover Traversal Events** component for the events and the animations. In the tests the Mover character had no rollbacks at all over three runs. ## The sample's own traversal The sample has its own traversal (`AC_TraversalLogic`), started from the same key: the character's jump input calls `TryTraversalAction` and only jumps when it fails. It only climbs the sample's `LevelBlock_Traversable` blocks, the ones that carry ledge splines. On any other obstacle it fails, the jump goes through, and Traversecraft takes it. On a `LevelBlock_Traversable` the sample's traversal goes first and Traversecraft never starts. **Set Up for Traversecraft** takes `TryTraversalAction` out of the jump input: whatever led into it goes straight to what used to run when it failed (the Jump on the CMC character, the jump flag on the Mover one). By hand, connect the input straight to Jump. To keep the sample's traversal instead, set the character up by hand without that step, switch Traversecraft's **Traverse On Jump** off and call `TryTraverse` from a key of your own. After the setup, on the sample's own blocks, over the same networked course: the CMC character had 4 corrections in the run, the largest 5.8 cm, and the Mover character none. Measured on the same course, server and connection (3 runs each, CMC character): the sample's own traversal, on its blocks, had 22 to 30 corrections per run, the largest 80 cm, and in two runs the player ended 49 and 106 cm from where the server had it. Traversecraft on the same character had 1 to 3 corrections per run, the largest 1.8 cm. ## Animations The sample's traversal animations can be used in Traversecraft's animation slots (see [Animation](../animation/)), or the sample's Animation Blueprint can read `GetTraversal()`. They are made with root motion for one obstacle size each. Turn **Follow Root Motion** on in their slots: the capsule then follows each animation's own root motion, stretched to the obstacle, instead of straight lines, so the hands meet the edge at other heights too. The example map does this with the sample's vault, mantle and climb.