Sit

Staying seated in the game cycles: the middle third of sitting, a long hold on the ground, a chair or a ledge, breathing and blinking, looping every 4 seconds until a game stands the character back up.

A cartoon person and a dog sitting on the grass, breathing quietly.

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

What it is for

Sit is the sit of the nine game cycles, the held middle third of sitting (sit down, sit, stand up): once Sit down finishes, a game switches to this loop and leaves the character seated, breathing and blinking, for as long as it is meant to stay there, on the ground, a chair or a ledge at hip height, by the same on setting the sit-down and stand-up share.

The principle it shows: overlapping action

The breath (sy, sx) and the head's own sway share the same four-second period but start at different points in it, so the seated pose does not hold perfectly rigid even while nothing else is happening. On a ledge specifically, a second, separate two-second sway is added to the shins, since the legs are hanging free rather than resting on the ground, one more layer on top of the breathing rather than a replacement for it.

The program, line by line

settings: h = 540, leg = 0.24, on = 0
when it starts
  show the side view
  if (on == 0):
    set hips 20, left leg 85, right leg 85, left shin 75, right shin 75, left foot -30, right foot -30, dx (-h*leg/2*(sin((105)*pi/180) + sin(((105) - (75))*pi/180))), dy (h*leg/2*(2 - cos((105)*pi/180) - cos(((105) - (75))*pi/180))), torso -14, left arm 34, right arm 34, left forearm 30, right forearm 30
  if (on == 1):
    set hips 24, left leg 64, right leg 64, left shin 88, right shin 88, left foot 0, right foot 0, dx (-h*leg/2*(sin((88)*pi/180) + sin(((88) - (88))*pi/180))), dy (h*leg/2*(2 - cos((88)*pi/180) - cos(((88) - (88))*pi/180))), torso -22, left arm 30, right arm 30, left forearm 40, right forearm 40
  if (on == 2):
    set hips 24, left leg 64, right leg 64, left shin 88, right shin 88, left foot 0, right foot 0, dx (-h*leg/2*(sin((88)*pi/180) + sin(((88) - (88))*pi/180))), dy 0, torso -22, left arm 22, right arm 22, left forearm 30, right forearm 30
  sin wave on sy · every 4 s · amp 0.01
  sin wave on sx · every 4 s · amp -0.005
  sin wave on head · every 4 s · amp 1.4 · phase 1.4
  if (on == 2):
    sin wave on left shin · every 2 s · amp 8
    sin wave on right shin · every 2 s · amp 8 · phase 3.141592653589793
  possin wave on blink · every 4 s · amp 1 · phase 1.2 · power 40

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

-h*leg/2*(sin((105)*pi/180) + sin(((105) - (75))*pi/180))

h*leg/2*(2 - cos((105)*pi/180) - cos(((105) - (75))*pi/180))

-h*leg/2*(sin((88)*pi/180) + sin(((88) - (88))*pi/180))

h*leg/2*(2 - cos((88)*pi/180) - cos(((88) - (88))*pi/180))

Try this

  1. Sit on a chair instead of the ground (on 1 instead of 0). The hips and knees settle at the chair's own angles, 64 and 88 degrees, instead of the ground's 85 and 75.

    In the program: params.on 0 → 1

  2. Sit on a ledge instead (on 2 instead of 0). The hips stay up at the ledge's own height rather than dropping down to it, and the shins pick up a slow two-second sway on top of the breathing, the legs hanging loose off the edge.

    In the program: params.on 0 → 2

How it differs from Sit down and Stand up

Sit down is the motion of getting into this pose; Sit is the long, quiet hold once it is reached, with nothing travelling any further. Stand up is what a game switches to when it is time to leave this pose behind.

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, turns, body, head, arms, legs
4 legs (a dog)yeswhole body, body, head, front legs, back legs, tail, ears
no legs (the monster with no legs)yeswhole body, turns, body, arms, tail, ears

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