Sit down (seen from the front)
Sitting down drawn facing the camera: the thighs swing toward you as the knees bend and the feet stay exactly where they stood, for a game that shows the character from the front rather than in profile.

Use it in a cartoonOpen it in the block editorThe pack file (JSON)
What it is for
Sit down (seen from the front) is Sit down drawn facing the camera instead of in profile, for a game that shows its character from the front. The thighs swing toward the viewer as the knees bend, rather than swinging sideways the way a profile view shows them, and the feet stay exactly where they stood.
The principle it shows: arcs
The body's own height is still worked out every frame from the same bending angles rather than drawn separately, the same arc the side view uses to keep a foot planted. Seen from the front, though, a leg has no knee-fold to lift it the way the side view does, a known limit of the front view: a ground sit ends up drawn more like sitting on a low seat than folding the knee up past the hips. That is also why, in this view, sitting on the ground, a chair or a ledge all draw the same way: without a fold to tell them apart, there is nothing left to vary.
The program, line by line
settings: h = 540, leg = 0.24, on = 0
when it starts
show the front view
at the same time:
— 1:
glide left leg 30, right leg 30, left shin 30, right shin 30, left foot 0, right foot 0, left arm 24, right arm 24 over 0.3 s (in)
— 2:
set dy 0
for 0.3 s:
dy follows (h*leg/2*(2 - cos(((0 + 30*pow(min(local/0.3, 1), 2)))*pi/180) - cos(((0 + 30*pow(min(local/0.3, 1), 2)))*pi/180) + 0.55*sin(((0 + 30*pow(min(local/0.3, 1), 2)))*pi/180)))
set dy (h*leg/2*(2 - cos((30)*pi/180) - cos((30)*pi/180) + 0.55*sin((30)*pi/180)))
if (on == 0):
at the same time:
— 1:
glide left leg 85, right leg 85, left shin 0, right shin 0, left foot 0, right foot 0, left arm 16, right arm 16, left forearm 20, right forearm 20 over 0.55 s (smooth)
— 2:
set dy 0
for 0.55 s:
dy follows (h*leg/2*(2 - cos(((30 + 55*smoothstep(min(local/0.55, 1))))*pi/180) - cos(((30 + -30*smoothstep(min(local/0.55, 1))))*pi/180) + 0.55*sin(((30 + -30*smoothstep(min(local/0.55, 1))))*pi/180)))
set dy (h*leg/2*(2 - cos((85)*pi/180) - cos((0)*pi/180) + 0.55*sin((0)*pi/180)))
if (on == 1):
at the same time:
— 1:
glide left leg 85, right leg 85, left shin 0, right shin 0, left foot 0, right foot 0, left arm 16, right arm 16, left forearm 20, right forearm 20 over 0.55 s (smooth)
— 2:
set dy 0
for 0.55 s:
dy follows (h*leg/2*(2 - cos(((30 + 55*smoothstep(min(local/0.55, 1))))*pi/180) - cos(((30 + -30*smoothstep(min(local/0.55, 1))))*pi/180) + 0.55*sin(((30 + -30*smoothstep(min(local/0.55, 1))))*pi/180)))
set dy (h*leg/2*(2 - cos((85)*pi/180) - cos((0)*pi/180) + 0.55*sin((0)*pi/180)))
if (on == 2):
at the same time:
— 1:
glide left leg 85, right leg 85, left shin 0, right shin 0, left foot 0, right foot 0, left arm 16, right arm 16, left forearm 20, right forearm 20 over 0.55 s (smooth)
— 2:
set dy 0
for 0.55 s:
dy follows (h*leg/2*(2 - cos(((30 + 55*smoothstep(min(local/0.55, 1))))*pi/180) - cos(((30 + -30*smoothstep(min(local/0.55, 1))))*pi/180) + 0.55*sin(((30 + -30*smoothstep(min(local/0.55, 1))))*pi/180)))
set dy (h*leg/2*(2 - cos((85)*pi/180) - cos((0)*pi/180) + 0.55*sin((0)*pi/180)))show the front view— the move is drawn facing the camera.at the same time:— a first settle: both legs bend 30 degrees and both arms come forward 24 degrees, over 0.3 seconds, the body's own height kept in step with the bend so the feet do not slide.set dy …— locks the body's height to match that first settle.if (on == 0): …,if (on == 1): …,if (on == 2): …— the same further bend plays for every surface: the legs reach 85 degrees and the arms come forward 16 degrees with the forearms bent in 20 degrees, over 0.55 seconds, the body's height again kept in step.
Written out in full, exactly as the engine prints them:
h*leg/2*(2 - cos(((0 + 30*pow(min(local/0.3, 1), 2)))*pi/180) - cos(((0 + 30*pow(min(local/0.3, 1), 2)))*pi/180) + 0.55*sin(((0 + 30*pow(min(local/0.3, 1), 2)))*pi/180))
h*leg/2*(2 - cos((30)*pi/180) - cos((30)*pi/180) + 0.55*sin((30)*pi/180))
h*leg/2*(2 - cos(((30 + 55*smoothstep(min(local/0.55, 1))))*pi/180) - cos(((30 + -30*smoothstep(min(local/0.55, 1))))*pi/180) + 0.55*sin(((30 + -30*smoothstep(min(local/0.55, 1))))*pi/180))
h*leg/2*(2 - cos((85)*pi/180) - cos((0)*pi/180) + 0.55*sin((0)*pi/180))Try this
Take 0.6 seconds for the first lean-in instead of 0.3. The sit begins with a noticeably slower settle before the legs fold.
In the program:
ramp · over0.3→0.6Bring the left arm 40 degrees forward instead of 16 as the legs fold under. Seen from the front, one arm now reaches out noticeably further than the other for balance.
In the program:
ramp · to.part:arm:-116→40
How it differs from Sit down and Sit (seen from the front)
Sit down is the same motion drawn in profile, where the on setting genuinely changes how the hips and knees bend for the ground, a chair or a ledge. Sit (seen from the front) is the held pose this move settles into once it finishes.
Works on
| Body | Moves? | What moves |
|---|---|---|
| 2 legs (a person) | yes | whole body, arms, legs |
| 4 legs (a dog) | yes | whole body, turns, front legs, back legs |
| no legs (the monster with no legs) | yes | whole body, arms |