| name | hop-up-stairs |
| description | Hops up the stairs two-footed, rising a step per hop, via a sequence with stepped root.y increments. Use when a command mentions hop up the stairs, bunny hop up the steps, jump up the staircase, or two-foot up the stairs. |
| category | locomotion |
| disable-model-invocation | true |
| subskills | ["move-leg","bend-knees","balance-and-posture"] |
hop-up-stairs
Two-foot hops up the staircase: crouch, hop up onto the next step (root.y increases), repeat.
Composes: move-leg + bend-knees + balance-and-posture
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.
- Alternate a crouch-load and a hop that lands higher (
root.y steps up) and a bit forward; absorb each landing.
durationMs ~2400.
Example
- "hop up the stairs" ->
{"durationMs":2400,"say":"Hopping up!","sequence":{"loop":false,"frames":[{"t":0,"pose":{"LeftUpLeg":[45,0,0],"LeftLeg":[65,0,0],"RightUpLeg":[45,0,0],"RightLeg":[65,0,0]},"root":{"y":0,"z":0}},{"t":0.3,"pose":{"LeftUpLeg":[20,0,0],"RightUpLeg":[20,0,0]},"root":{"y":0.3,"z":0.3}},{"t":0.5,"pose":{"LeftUpLeg":[45,0,0],"LeftLeg":[65,0,0],"RightUpLeg":[45,0,0],"RightLeg":[65,0,0]},"root":{"y":0.18,"z":0.4}},{"t":0.8,"pose":{"LeftUpLeg":[20,0,0],"RightUpLeg":[20,0,0]},"root":{"y":0.5,"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.36,"z":0.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.