Parent epic: #554
Goal
Make complex rigs legible. Today every bone draws as an identical octahedron via SkeletonDebug. Real rigs need: per-bone shapes (custom controllers, sphere handles), groups / layers for grouping bones logically, per-bone colors, hide/show, and lock-from-selection.
Scope
- Bone display shapes:
- Built-in shapes:
octahedron (default), sphere, cube, arrow, line, circle, ring, custom-mesh.
- "Custom-mesh" lets the user assign any imported entity as the bone's display proxy (the standard Blender approach — common for placing nurbs-circle controllers).
- Per-bone scale + offset + rotation for the display shape (so a sphere handle can sit at the bone's head, tail, or wherever).
- Persist with the rig in the project file + glTF extras.
- Bone groups / display layers:
- Groups: arbitrary named groupings ("Face Controls", "Arm IK", "Spine"). A bone can belong to multiple groups.
- Layers: 32 fixed layers (like Blender 2.7 armature layers — small enough to ship as a bitmask). Each bone is on one or more layers; the user toggles which layers are visible.
- Per-bone colors: a colour swatch per bone, optionally driven by group ("Face Controls" group → all yellow). Renders into the bone display shape with a transparent overlay.
- Hide / show:
- Per-bone visibility toggle.
- Per-group "isolate group" (hide all bones not in this group).
- Per-layer visibility (the standard armature-layer UI).
- Lock from selection: a bone marked locked can't be selected via clicking or box-select. Useful for shielding deform bones once IK controllers are set up.
- Lock transforms per channel: optionally lock T / R / S independently. The gizmo respects locks.
- UI: a new "Bone Display" inspector subsection with shape picker, group memberships, layer bitmask, colour swatch, lock checkboxes.
- Extends
SkeletonDebug to render bones with per-bone shapes + colours + visibility.
Acceptance Criteria
Effort
~8 days.
Parent epic: #554
Goal
Make complex rigs legible. Today every bone draws as an identical octahedron via
SkeletonDebug. Real rigs need: per-bone shapes (custom controllers, sphere handles), groups / layers for grouping bones logically, per-bone colors, hide/show, and lock-from-selection.Scope
octahedron(default),sphere,cube,arrow,line,circle,ring,custom-mesh.SkeletonDebugto render bones with per-bone shapes + colours + visibility.Acceptance Criteria
scene.skel.display.*.Effort
~8 days.