| name | leapfrog |
| description | Leapfrogs forward over a crouched obstacle, planting the hands and splaying the legs over, via a sequence with a root.y arc. Use when a command mentions leapfrog, leap-frog, jump over someone crouched, or vault over a low person. |
| category | locomotion |
| disable-model-invocation | true |
| subskills | ["move-arm","move-leg","move-torso"] |
leapfrog
Plant the hands on the obstacle and spread the legs wide over it, landing beyond.
Composes: move-arm + move-leg + move-torso
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.
- Beats: load + reach hands (
UpperArm X~110), legs splayed over the top (abduct ~140, torso forward, root.y~0.45), land to rest.
durationMs ~1200.
Example
- "leapfrog over" ->
{"durationMs":1200,"say":"Leapfrog!","sequence":{"loop":false,"frames":[{"t":0,"pose":{"LeftUpLeg":[50,0,0],"LeftLeg":[80,0,0],"RightUpLeg":[50,0,0],"RightLeg":[80,0,0],"LeftUpperArm":[110,0,90],"RightUpperArm":[110,0,-90]},"root":{"y":-0.2,"z":0.2}},{"t":0.5,"pose":{"LeftUpLeg":[40,0,140],"RightUpLeg":[40,0,-140],"Spine":[25,0,0]},"root":{"y":0.45,"z":1}},{"t":1,"pose":{"LeftUpperArm":[0,0,90],"RightUpperArm":[0,0,-90],"LeftUpLeg":[0,0,180],"RightUpLeg":[0,0,180],"Spine":[0,0,0]},"root":{"y":0,"z":1.8}}]}}
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.