Stand up (short legs)

Standing up for the short-legged upright animal: the folded legs unfold back to standing, finishing with a little shake of the tail, for a game switching the character out of a sit.

A cartoon person and a dog unfolding from settled legs, tail giving a little shake.

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

What it is for

Stand up (short legs) is the stand-up of the nine game cycles, written for the hop set: it starts from the folded pose Sit (short legs) holds and unfolds the legs back to an ordinary standing pose, ending with a small shake of the tail rather than the long-legged stand-up's lean and push.

The principle it shows: arcs

The unfolding legs are still kept planted by the same cosine geometry the sit-down and the sit use, worked out from the hip and knee angles as they straighten rather than drawn separately. The tail's own little shake, right at the very end and not tied to that geometry at all, is the one touch that marks the motion as finished.

The program, line by line

settings: h = 540, leg = 0.09, on = 0
when it starts
  show the side view
  set hips 0, left leg 46, right leg 46, left shin 92, right shin 92, left foot 46, right foot 46, dx (-h*leg/2*(sin((46)*pi/180) + sin(((46) - (92))*pi/180))), dy (h*leg/2*(2 - cos((46)*pi/180) - cos(((46) - (92))*pi/180))), tail -10, torso -4, left arm 20, right arm 20, left forearm 30, right forearm 30
  at the same time:
    — 1:
      glide hips 0, left leg 0, right leg 0, left shin 0, right shin 0, left foot 0, right foot 0, tail 0, torso 0, left arm 0, right arm 0, left forearm 0, right forearm 0 over 0.55 s (smooth)
    — 2:
      set dx 0, dy 0
      for 0.55 s:
        dy follows (h*leg/2*(2 - cos(((46 + -46*smoothstep(min(local/0.55, 1))))*pi/180) - cos((((46 + -46*smoothstep(min(local/0.55, 1)))) - ((92 + -92*smoothstep(min(local/0.55, 1)))))*pi/180)))
        dx follows (-h*leg/2*(sin(((46 + -46*smoothstep(min(local/0.55, 1))))*pi/180) + sin((((46 + -46*smoothstep(min(local/0.55, 1)))) - ((92 + -92*smoothstep(min(local/0.55, 1)))))*pi/180)))
  set dx (-h*leg/2*(sin((0)*pi/180) + sin(((0) - (0))*pi/180))), dy (h*leg/2*(2 - cos((0)*pi/180) - cos(((0) - (0))*pi/180)))
  for 0.3 s:
    sin wave on tail · every 0.15 s · amp 12

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

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

h*leg/2*(2 - cos((46)*pi/180) - cos(((46) - (92))*pi/180))

h*leg/2*(2 - cos(((46 + -46*smoothstep(min(local/0.55, 1))))*pi/180) - cos((((46 + -46*smoothstep(min(local/0.55, 1)))) - ((92 + -92*smoothstep(min(local/0.55, 1)))))*pi/180))

-h*leg/2*(sin(((46 + -46*smoothstep(min(local/0.55, 1))))*pi/180) + sin((((46 + -46*smoothstep(min(local/0.55, 1)))) - ((92 + -92*smoothstep(min(local/0.55, 1)))))*pi/180))

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

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

Try this

  1. Take a full second to unfold instead of 0.55. The stand-up becomes a slow, careful rise instead of a quick one.

    In the program: ramp · over 0.55 → 1

  2. Keep the tail shaking for 0.6 seconds instead of 0.3. The little shake at the end lasts twice as long before it settles.

    In the program: for · s 0.3 → 0.6

How it differs from Sit (short legs) and Stand up

Sit (short legs) is the settled pose this move rises out of. Stand up is the long-legged version of the same idea, a lean and a push rather than an unfold and a tail shake.

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:stand_up_hop · version 1.0.0 · c4c-free · by Jabbertoon