| name | combat-roll |
| description | Performs a tactical combat roll, diving low forward, rolling over the shoulder, and coming up moving, via a sequence with a root.y dip and forward root.z. Use when a command mentions combat roll, tactical roll, shoulder roll forward, dive and roll, or roll to cover. |
| category | locomotion |
| disable-model-invocation | true |
| subskills | ["move-torso","move-leg","balance-and-posture"] |
combat-roll
A fast forward shoulder roll: dive low, tuck through, and pop up advancing.
Composes: move-torso + move-leg + 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.
- Beats: crouch dive (torso forward,
root.y-0.3, z forward), deep tuck (root.y-0.6), pop up to rest (root.y:0, z further).
durationMs ~1300.
Example
- "do a combat roll" ->
{"durationMs":1300,"say":"Combat roll!","sequence":{"loop":false,"frames":[{"t":0,"pose":{"LeftUpLeg":[55,0,0],"LeftLeg":[90,0,0],"RightUpLeg":[55,0,0],"RightLeg":[90,0,0],"Spine":[30,0,0]},"root":{"y":-0.3,"z":0.2}},{"t":0.5,"pose":{"LeftUpLeg":[100,0,0],"LeftLeg":[120,0,0],"RightUpLeg":[100,0,0],"RightLeg":[120,0,0],"Spine":[60,0,0]},"root":{"y":-0.6,"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.