▣
module · drop-in viewer
What it does
game.crow.rig
The Old Crow's anatomy: which mesh, on which joint, where.
local Rig = require("game.crow.rig")
local built = Rig.build(someEntity, "crow_visual")
built.joints.neck.localRotation = { 0, 0, 40 }
Rig.geometry()— every mesh the bird is made of, built once per session and cached, because the meshes never change; only the joints between them move.Rig.build(parent, name)— spawns the hierarchy underparentand returns{ root, joints, rest, eyes, stats }.jointsis by name, so a pose is a table of angles rather than a list of entities;restis each joint's rest rotation.Rig.LINKS/Rig.ANGLES— the leg and spine as link offsets and rest angles.buildplaces the joints FROM these andposes.solveFootYwalks them, so retuning a limb here moves the hang's grip with it.Rig.restHeight()— claw to crown, walked down that same anatomy and taken from the head's own highest vertex.CrowVisualscales the whole bird byCF.RULES.crowHeightover this, so nothing is a measured constant.
The joints, and what each is for: pelvis (the trunk — a breath, a crouch),
spine (the hunch), neck (the S a neck is), head, jaw (the bill opens),
wing_l/r (the shoulder), hand_l/r (the wrist, carrying the primaries),
tail, and hip / shank / foot / toes per side — the crowfeet, which are
the whole game.
The bird faces +X and stands on +Y. The right side is the left one mirrored in the merge rather than by a negative entity scale, so the far wing draws from its own outside like the near one.
Owned by the crow slice. See /zero/source/design/spec.md.
Discussion
Scoped to this part · feeds back into the world's score.
Sign in to post.sign in
No comments yet. Be the first.