| name | hop-forward |
| description | Hops forward off both feet with a sequence that arcs root.y up and translates root forward, then lands. Use when a command mentions hop, hop forward, hop ahead, two-footed hop, bounce forward, or a little jump forward. |
| category | locomotion |
| disable-model-invocation | true |
| subskills | ["bend-knees","move-leg"] |
hop-forward
A two-footed hop that travels a little forward. The vertical arc needs root.y, so this is a sequence that crouches, leaves the floor, drifts forward, and lands.
How
- Use a
sequence with loop:false (frame root is ABSOLUTE — z grows; compute forward from state.position+state.faceDeg, here origin facing +Z).
- Three beats: crouch (
root.y:-0.15, knees bent), airborne (root.y:~0.45, knees tucked, z advances), land (root.y:0, legs back to rest).
- Keep it quick:
durationMs ~900–1200.
Example
- "hop forward" (at x:0,z:0,faceDeg:0) ->
{"durationMs":1100,"say":"Hop!","sequence":{"loop":false,"frames":[{"t":0,"pose":{"LeftUpLeg":[40,0,0],"LeftLeg":[60,0,0],"RightUpLeg":[40,0,0],"RightLeg":[60,0,0]},"root":{"y":-0.15,"z":0}},{"t":0.5,"pose":{"LeftUpLeg":[60,0,0],"LeftLeg":[70,0,0],"RightUpLeg":[60,0,0],"RightLeg":[70,0,0]},"root":{"y":0.45,"z":0.7}},{"t":1,"pose":{"LeftUpLeg":[0,0,180],"LeftLeg":[0,0,0],"RightUpLeg":[0,0,180],"RightLeg":[0,0,0]},"root":{"y":0,"z":1.2}}]}}