Run (many legs, in place)

The run of the game cycles for many legs: the legs blur through their two alternating sets while the claws stay held up and back, fitted to a speed setting so no planted leg ever slides.

A cartoon person and a dog with arms held back, mid-step, running in place.

Use it in a cartoonOpen it in the block editorThe pack file (JSON)

What it is for

Run (many legs, in place) is the run of the nine game cycles, written for the many set: the legs a blur of alternating sets, the claws up and back, running sideways in place, the same two-alternating-sets gait Scuttle (many legs, in place) uses, pushed to a sprint.

The principle it shows: exaggeration

Every number here is the walk's own pushed further: a wider stride, a bigger sideways rock and a bigger rise and fall. One thing drops out rather than growing: the walk's own claw-opening wave disappears entirely, as if the claws are held fixed back out of the way while every leg's effort goes into speed instead.

The program, line by line

settings: speed = 1.5, h = 540, leg = 0.1, every = (clamp(0.3 - 0.04*speed, 0.16, 0.26)), stride = (clamp(20 + 8*speed, 24, 40))
when it starts
  set left arm -14, right arm 14, left arm lift (0.058*h), right arm lift (0.058*h)
  walk cycle every (every) s · arm swing 0 · no bob · roll 0 · stride (stride) · give 4 · bend 20
  left leg lift follows (0.04*h*max(0, -sin(2*pi*(local/(every) + 0))))
  left shin follows (20*max(0, -sin(2*pi*(local/(every) + 0))))
  right leg lift follows (0.04*h*max(0, -sin(2*pi*(local/(every) + 0.5))))
  right shin follows (20*max(0, -sin(2*pi*(local/(every) + 0.5))))
  sin wave on dx · every (every) s · amp (0.014*h)
  sin wave on rot · every (every) s · amp 4
  abssin wave on dy · every (every) s · amp (-0.012*h) · offset (-0.014*h)

Written out in full, exactly as the engine prints them:

clamp(0.3 - 0.04*speed, 0.16, 0.26)

clamp(20 + 8*speed, 24, 40)

0.04*h*max(0, -sin(2*pi*(local/(every) + 0)))

20*max(0, -sin(2*pi*(local/(every) + 0)))

0.04*h*max(0, -sin(2*pi*(local/(every) + 0.5)))

20*max(0, -sin(2*pi*(local/(every) + 0.5)))

Try this

  1. Raise the running speed from 1.5 to 2 body heights a second, the top of this move's fitted range. The legs' alternating sets blur even faster, without a planted leg sliding.

    In the program: params.speed 1.5 → 2

  2. Widen the stride directly to 40 degrees instead of letting it follow from speed. Each set of legs swings noticeably further with every step.

    In the program: params.stride "=clamp(20 + 8*speed, 24, 40)" → 40

How it differs from Scuttle (many legs, in place) and Run (in place)

Scuttle (many legs, in place) is the same alternating-set gait at a gentler pace, with the claws opening and closing a little, which this run holds fixed instead. Run (in place) is the two-legged version of a sprint, a single stride rather than legs by the set.

Works on

Worked out by the build: it plays the move in the engine on each body and checks what moves on screen. Nobody types this table.
BodyMoves?What moves
2 legs (a person)yeswhole body, body, arms, legs
4 legs (a dog)yeswhole body, body, front legs, back legs
no legs (the monster with no legs)yeswhole body, body, arms

c4c:beh:cycle_run_many · version 1.0.0 · c4c-free · by Jabbertoon