| name | somersault-tuck |
| description | Performs a tucked forward somersault traveling forward, via a sequence that tucks deeply, arcs root.y, and advances root.z. Use when a command mentions somersault, forward somersault, tucked roll over, or flip forward in a tuck. (For a flat ground roll, use forward-roll.) |
| category | locomotion |
| disable-model-invocation | true |
| subskills | ["move-torso","move-leg","bend-knees"] |
somersault-tuck
A tucked forward somersault: ball up tight, arc up and over, and come out to a stand moving forward.
Composes: move-torso + move-leg + bend-knees
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 (crouch, torso forward), tight tuck airborne (
UpLeg/Leg125, Spine+X60, root.y~0.4, z), come out to rest.
durationMs ~1300.
Example
- "do a somersault" ->
{"durationMs":1300,"say":"Somersault!","sequence":{"loop":false,"frames":[{"t":0,"pose":{"LeftUpLeg":[60,0,0],"LeftLeg":[95,0,0],"RightUpLeg":[60,0,0],"RightLeg":[95,0,0],"Spine":[25,0,0]},"root":{"y":-0.2,"z":0.2}},{"t":0.5,"pose":{"LeftUpLeg":[125,0,0],"LeftLeg":[125,0,0],"RightUpLeg":[125,0,0],"RightLeg":[125,0,0],"Spine":[60,0,0]},"root":{"y":0.4,"z":0.9}},{"t":1,"pose":{"LeftUpLeg":[0,0,180],"LeftLeg":[0,0,0],"RightUpLeg":[0,0,180],"RightLeg":[0,0,0],"Spine":[0,0,0]},"root":{"y":0,"z":1.6}}]}}
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.