| name | shoulder-charge |
| description | Lowers a shoulder and charges forward into something, then recovers, via a translating sequence. Use when a command mentions shoulder charge, shoulder barge, charge forward, bull rush, or lower your shoulder and ram. |
| category | locomotion |
| disable-model-invocation | true |
| subskills | ["walk","move-torso","balance-and-posture"] |
shoulder-charge
Wind up, then drive forward low with a leading shoulder into an impact, and recover.
Composes: walk + move-torso + 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: load, drive forward (
Spine+X~35, Chest twist to lead a shoulder, z carries), recover to rest.
durationMs ~1200.
Example
- "shoulder charge forward" ->
{"durationMs":1200,"say":"Charge!","sequence":{"loop":false,"frames":[{"t":0,"pose":{"Spine":[10,0,0],"LeftUpLeg":[30,0,0],"LeftLeg":[40,0,0]},"root":{"z":0}},{"t":0.5,"pose":{"Spine":[35,0,0],"Chest":[0,-25,0],"LeftUpperArm":[20,0,90],"RightUpperArm":[20,0,-90],"RightUpLeg":[40,0,0],"RightLeg":[50,0,0]},"root":{"z":1.2}},{"t":1,"pose":{"Spine":[0,0,0],"Chest":[0,0,0],"LeftUpLeg":[0,0,180],"RightUpLeg":[0,0,180],"LeftLeg":[0,0,0],"RightLeg":[0,0,0]},"root":{"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.