game.crow.poses
What the Old Crow's body is doing, and how it gets there.
A pose is a table of DELTAS in degrees from the rig's rest angles, plus a lift, a
push and a squash on the root. Nothing snaps: every joint springs toward the pose
that is current, at that pose's own blend rate, so a hop that interrupts a peck
reads as the bird changing its mind rather than as a cut.
The set: idle · sidle · weak · hop · fall · land · hang · pullup ·
peck · collapse · fly.
local Poses = require("game.crow.poses")
local anim = Poses.newAnim(built.rest, Rig.restHeight())
Poses.setPose(anim, "hang")
local joints, lift, push, squash = Poses.step(anim, dt)
solveFootY(rest, pose) is planar forward kinematics down one leg, in the
crow's own units. It answers where the claw tips end up for a pose, which is how
the hang lifts itself onto the ledge lip exactly rather than onto a number
somebody measured once and wrote down: newAnim takes restHeight - reach as
the hang's lift, and because the whole bird is scaled by CF.RULES.crowHeight
over that same rest height, the claws land on the lip CF.grabbable catches.
Retune a leg link in game.crow.rig and the grip follows; nothing here needs
touching.
Owned by the crow slice. See /zero/source/design/spec.md.
Scoped to this part · feeds back into the world's score.