| name | kangaroo-hop |
| description | Hops forward repeatedly off both feet in an upright kangaroo bounce with the arms tucked, via a translating sequence with root.y arcs. Use when a command mentions kangaroo hop, two-foot bounce forward, springy forward hops, or hop forward like a kangaroo. |
| category | locomotion |
| disable-model-invocation | true |
| subskills | ["bend-knees","move-leg","move-arm"] |
kangaroo-hop
Upright repeated two-foot hops forward, arms tucked at the chest, springing along.
Composes: bend-knees + move-leg + move-arm
How
- Use a
sequence with loop:false. Frame root is ABSOLUTE; compute the travel axis from state.position+state.faceDeg (0=+Z, 90=+X). The example assumes origin facing +Z.
- Each hop: crouch then spring (
root.y~0.35) with a slight knee tuck and the arms tucked (Forearm Z ±90); advance z.
durationMs ~2000.
Example
- "do kangaroo hops" ->
{"durationMs":2000,"say":"Boing! Boing!","sequence":{"loop":false,"frames":[{"t":0,"pose":{"LeftUpLeg":[40,0,0],"LeftLeg":[60,0,0],"RightUpLeg":[40,0,0],"RightLeg":[60,0,0],"LeftForearm":[0,0,-90],"RightForearm":[0,0,90]},"root":{"y":-0.15,"z":0}},{"t":0.3,"pose":{"LeftUpLeg":[30,0,0],"LeftLeg":[40,0,0],"RightUpLeg":[30,0,0],"RightLeg":[40,0,0]},"root":{"y":0.35,"z":0.7}},{"t":0.5,"pose":{"LeftUpLeg":[40,0,0],"LeftLeg":[60,0,0],"RightUpLeg":[40,0,0],"RightLeg":[60,0,0]},"root":{"y":0,"z":1}},{"t":0.8,"pose":{"LeftUpLeg":[30,0,0],"RightUpLeg":[30,0,0]},"root":{"y":0.35,"z":1.7}},{"t":1,"pose":{"LeftUpLeg":[0,0,180],"RightUpLeg":[0,0,180],"LeftLeg":[0,0,0],"RightLeg":[0,0,0],"LeftForearm":[0,0,0],"RightForearm":[0,0,0]},"root":{"y":0,"z":2}}]}}
Limits & posture
Keep ≥1 foot grounded except at a jump's airborne apex; stay inside human joint ranges and keep weight over the support — see balance-and-posture.