Complete character pipeline spike validating the Quaternius rig as foundation for The Settled Reach's 3D character system. Validated: - 65-bone skeleton + Universal Animation Library as rig foundation - Body segmentation into 15 bone-group regions with 1-ring vertex overlap - Trellis-generated heads via BoneAttachment3D - Skin tone texture generation pipeline (9 variants from source) - Toon shader + inverted hull outline at gameplay zoom - CharacterVisual class as compositor prototype Failed (documented): - Trellis clothing auto-rigging (sculptures, not garments) - Bone scaling for body type variants (catastrophic joint deformation) - Runtime per-segment clothing scaling (same failure as Blender-side) Includes: Blender pipeline scripts (segmentation, auto-rigging, Surface Deform fitting), Godot showcase with interactive controls, automated screenshot cycle, smoke tests, team reviews, and VERDICT.md. D-158 through D-164 locked. Q-060 through Q-062 opened. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
268 lines
14 KiB
Markdown
268 lines
14 KiB
Markdown
---
|
|
title: "Spike Verdict — Quaternius Aesthetic Validation"
|
|
author: ARAMINTA
|
|
contributor: TYRE
|
|
date: 2026-03-19
|
|
status: final
|
|
---
|
|
|
|
# Spike Verdict: Quaternius Aesthetic Validation
|
|
|
|
**Authors:** ARAMINTA (design verdict), TYRE (technical observations)
|
|
**Reviewed against:** D-146, D-153, D-154, D-158, D-159
|
|
|
|
This document supersedes the Pipeline Tension Report. All findings are final.
|
|
Read this before writing any production compositor code.
|
|
|
|
---
|
|
|
|
## The Three Questions
|
|
|
|
### 1. Does the Quaternius rig work as a character foundation?
|
|
|
|
**SPLIT: Skeleton VALIDATED. Body meshes REJECTED.**
|
|
|
|
The 65-bone skeleton and Universal Animation Library are the correct foundation. Keep
|
|
them. The skeleton is proven compatible with the animation library (January 2026 bone
|
|
naming update), deforms correctly at gameplay zoom, and provides a shared rig that all
|
|
body types can inherit. CC0 license means the fork is clean.
|
|
|
|
The body meshes are rejected. Superhero proportions are not an aesthetic problem — they
|
|
are a design contradiction. Flat toon shading emphasizes silhouette. A crowd of Superhero
|
|
V-taper bodies communicates "game about special people." That directly contradicts D-153
|
|
(player character not visually distinct from NPCs) and the life-sim intent. Regular
|
|
proportions are closer but the gap between Regular and the heavy body types we need is
|
|
too large to bridge with any scaling approach. Bone scaling was tested. It failed.
|
|
|
|
**What to keep:** The 65-bone skeleton. The Universal Animation Library.
|
|
|
|
**What to replace:** Every body mesh. Fork from Quaternius and hand-author body types
|
|
on the shared 65-bone rig. D-159 locks this at 4 adult types x 2 genders + 1 child = 9
|
|
base meshes. All 9 use the same skeleton. All animations work on all body types.
|
|
|
|
Body meshes must be segmented, not monolithic. See the body segmentation finding below.
|
|
|
|
|
|
### 2. Does Trellis clothing attach to the Quaternius rig?
|
|
|
|
**Clothing: FAILED. Heads: VALIDATED. Accessories: VIABLE (untested).**
|
|
|
|
**Clothing — FAILED.** Auto-rigging Trellis clothing outputs via Data Transfer modifier
|
|
(Blender built-in) produced 4-22% vertex match rates. Both the tunic and pauldron outputs
|
|
produced catastrophic fragment geometry — no usable deformation. Robust Laplacian
|
|
inpainting was tested as the more sophisticated fallback and failed at the same rate.
|
|
|
|
The failure is not algorithmic. The problem is geometric: a garment wraps a body and sits
|
|
close to the body surface. A Trellis mesh is a closed sculpture of an object. Those are
|
|
topologically incompatible inputs for weight transfer. No algorithm resolves that, because
|
|
the input data contains no usable signal about bone proximity or influence falloff.
|
|
|
|
The Trellis generative clothing pipeline is closed. It failed clearly and for a structural
|
|
reason that does not change with better tooling.
|
|
|
|
**Heads — VALIDATED.** Trellis generates clean low-poly head meshes at appropriate polygon
|
|
density for toon rendering, at correct scale relative to a character body. Heads attach via
|
|
BoneAttachment3D to the Head bone — single-bone attachment, no skinning required. The
|
|
Trellis head sits on the Quaternius neck correctly at gameplay zoom. Skin tone mismatch
|
|
is visible at editor zoom but is solvable via toon shader tinting (data problem, not
|
|
architecture problem).
|
|
|
|
This is the structural reason heads work while clothing fails: a head follows one bone.
|
|
Clothing must follow thirty bones with correct influence falloff. Trellis cannot encode
|
|
bone influence, and no auto-rig algorithm can infer it from a sculpture.
|
|
|
|
**Accessories (hats, held items) — VIABLE, untested.** Single-bone attachment via
|
|
BoneAttachment3D, same logic as heads. Architecturally sound. Test when needed.
|
|
|
|
|
|
### 3. Are the two pipelines visually consistent?
|
|
|
|
**YES at gameplay zoom. Skin tone mismatch at editor zoom is fixable.**
|
|
|
|
A Trellis head on a Quaternius body through the toon shader reads as a coherent character
|
|
at gameplay zoom. The toon pipeline suppresses texture heterogeneity — what renders is
|
|
shape and color, not surface origin. The two sources do not fight aesthetically at the
|
|
zoom level that matters.
|
|
|
|
The skin tone mismatch between Trellis texture and Quaternius body texture is visible at
|
|
editor zoom (mugshot context, D-146/D-158). This is not a structural problem. The
|
|
`toon_masked` shader supports `tint_color` per material. Matching skin tone tints on head
|
|
and body materials resolves it. Data problem, not architecture problem.
|
|
|
|
The baked ambient occlusion in Quaternius body textures fights the shader's clean shadow
|
|
step at mugshot zoom. Flat toon mode is the correct default for editor context.
|
|
`shadow_strength` at 0.2 suppresses most of this at gameplay zoom. Verify textured mode
|
|
at heavy zoom before committing it to the character editor.
|
|
|
|
---
|
|
|
|
## Evidence Table
|
|
|
|
| Phase | Item | Result |
|
|
|---|---|---|
|
|
| Phase 1 | Quaternius 65-bone skeleton + animation library import | VALIDATED — clean, library naming compatible post-Jan 2026 update |
|
|
| Phase 1 | Toon shader (flat mode) on Quaternius mesh | VALIDATED — works unmodified |
|
|
| Phase 1 | Toon shader (textured mode) on Quaternius mesh | VALIDATED at gameplay zoom — verify at mugshot zoom |
|
|
| Phase 1 | Outline via inverted hull, duplicate + material override | VALIDATED at 0.006 width for gameplay zoom |
|
|
| Phase 1 | Outline at mugshot/editor zoom | OPEN — 0.010-0.012 recommended, unverified |
|
|
| Phase 1 | Outline color `(0.08, 0.08, 0.12)` | VALIDATED — correct register |
|
|
| Phase 1 | Character legibility at gameplay zoom | VALIDATED — silhouette dominant, readable as human |
|
|
| Phase 1 | Character legibility at crowd scale | VALIDATED — shape reads at distance |
|
|
| Phase 2 | Outfit mesh attachment to skeleton | VALIDATED — attaches and deforms with animation |
|
|
| Phase 2 | Outfit body-type lock | CONFIRMED — Superhero clothing clips on Regular and vice versa |
|
|
| Phase 2 | Head mesh availability in outfit files | CONFIRMED ABSENT — head baked into body mesh, not in outfit files |
|
|
| Phase 2 | Quaternius outfit pack scope | CONFIRMED — one pack only (Fantasy, 62 parts). No Sci-Fi, Modern, Casual. |
|
|
| Phase 3 | Trellis clothing auto-rigging | FAILED — 4-22% vertex match, catastrophic deformation on both test items |
|
|
| Phase 3 | Robust Laplacian inpainting as fallback | FAILED — same match rate, same deformation |
|
|
| Phase 3 | Trellis clothing mesh (any approach) | FAILED — topology incompatible with weight transfer by design |
|
|
| Phase 3 | Trellis head attachment via BoneAttachment3D | VALIDATED — clean single-bone follow, correct scale and position |
|
|
| Phase 3 | Bone scaling for body type variants (Blender) | FAILED — catastrophic mesh deformation at joints across all 9 variant attempts |
|
|
| Phase 3 | Runtime per-segment bone scaling (Godot) | FAILED — same mesh collapse as Blender-side; skinned meshes cannot be runtime-scaled via bone pose |
|
|
| Phase 3 | Body segmentation into 15 bone-group regions | VALIDATED — seamless rendering with 1-ring vertex overlap |
|
|
| Phase 3 | Per-segment visibility control | VALIDATED — can hide torso segment when clothed; segment boundaries invisible |
|
|
| Phase 3 | Surface Deform batch pipeline for clothing fitting | PARTIALLY VALIDATED — script runs and produces fits; visual quality at extreme body types (heavy) unverified |
|
|
| Visual | Trellis head + Quaternius body through toon shader | VALIDATED at gameplay zoom — reads as coherent character |
|
|
| Visual | Skin tone mismatch | CONFIRMED VISIBLE at editor zoom — solvable via shader tinting |
|
|
| Visual | Textured mode at mugshot zoom | OPEN — baked AO contamination risk unverified |
|
|
| Visual | Superhero proportions vs life-sim intent | REJECTED — communicates hero archetype, contradicts D-153 |
|
|
|
|
---
|
|
|
|
## Body Segmentation: Key Finding
|
|
|
|
The body mesh must be segmented into regions, not built as a monolithic mesh.
|
|
|
|
Phase 3 validated a segmentation into 15 bone-group regions with 1-ring vertex overlap
|
|
at each boundary. Overlap is what makes this work: each segment shares a ring of vertices
|
|
with its neighbor, so there is no visible seam or gap during animation. Without overlap,
|
|
animation deformation opens cracks at segment boundaries.
|
|
|
|
**Why segmentation matters:**
|
|
|
|
Per-segment visibility control is the architectural win. When a character is clothed, the
|
|
torso body segment is hidden and the clothing mesh takes its place. Without segmentation,
|
|
hiding the body to show clothing removes the head and limbs simultaneously. With
|
|
segmentation, each region is independently addressable.
|
|
|
|
Head separation enables: Trellis-generated unique faces per character, idle look-around
|
|
animation (head bone drives head mesh independently of body), helmet and hood equipment
|
|
as head-slot swaps, hair as a separate mesh on the Head bone (enables hairdresser mechanic).
|
|
|
|
The 15 bone-group regions are the runtime slot architecture. The compositor selects and
|
|
attaches per slot. Segmentation is not optional on the new body meshes — it is the
|
|
prerequisite for everything else.
|
|
|
|
---
|
|
|
|
## What the Compositor Actually Is
|
|
|
|
The compositor brief based on pre-spike assumptions is stale. Rewrite it before TYRE
|
|
writes production compositor code.
|
|
|
|
**What the compositor is not:**
|
|
- It is not a clothing generator.
|
|
- It does not scale clothing at runtime. Runtime bone scaling was tested. It failed.
|
|
- It does not procedurally generate body type variants. Bone scaling was tested. It failed.
|
|
|
|
**What the compositor is:**
|
|
A runtime assembler. It selects pre-authored meshes and attaches them. All generation
|
|
and fitting happens offline. The compositor does not scale, deform, or generate anything.
|
|
|
|
**Slot architecture:**
|
|
|
|
| Slot | Source | Attachment |
|
|
|---|---|---|
|
|
| Body | 9 hand-authored meshes (D-159) on shared 65-bone skeleton | Skinned to skeleton |
|
|
| Head | Trellis-generated, unique per character | BoneAttachment3D to Head bone |
|
|
| Hair | Separate mesh per hairstyle | BoneAttachment3D to Head bone, scale-adjusted per cranium |
|
|
| Clothing | Authored on reference body, pre-baked per body type via Blender Surface Deform | Skinned to skeleton, replaces body segment |
|
|
| Accessories | Single-mesh rigid items | BoneAttachment3D to appropriate bone |
|
|
|
|
**Clothing pipeline (offline, not runtime):**
|
|
Author one clothing mesh on the reference body type. Run the Blender Surface Deform
|
|
batch pipeline to generate a fitted variant for each of the 9 body types. Export all
|
|
variants. At runtime, the compositor loads the variant matching the character's body type.
|
|
Color variation via toon shader tinting and multi-region recolor masks.
|
|
|
|
The `CharacterVisualDescriptor` that TYRE specced (body type, head ID, hair ID, per-slot
|
|
clothing ID, tint values) is the correct interface. Write that before writing any
|
|
production compositor code.
|
|
|
|
---
|
|
|
|
## Architectural Decisions Confirmed
|
|
|
|
**D-158:** Frontal camera angle (-5 degrees) for editor/mugshot context. Dramatic angle
|
|
(-30 degrees) for gameplay. Confirmed. The dramatic angle is the production gameplay angle.
|
|
|
|
**D-159:** 4 adult body types x 2 genders + 1 child = 9 base meshes. Confirmed. These
|
|
must be hand-authored. No procedural shortcut exists — bone scaling failed, mesh stretching
|
|
is not viable at the body type deltas we need. Each mesh is its own authored asset on the
|
|
shared skeleton.
|
|
|
|
**Body meshes must be segmented.** This follows from Phase 3. Monolithic body meshes
|
|
block the compositor architecture. All 9 body meshes must be authored with the 15-region
|
|
segmentation from the start.
|
|
|
|
**Head is always separate.** Heads are never baked into body or clothing meshes. The
|
|
Quaternius Fantasy pack outfit files bake the head into the body — this is a known
|
|
problem with those files, not a pattern to follow.
|
|
|
|
**Clothing is pre-baked per body type.** The Surface Deform batch pipeline is the
|
|
mechanism. Runtime fitting was tested and does not exist as a viable path.
|
|
|
|
**Source tier acquisition:** $5/month Quaternius Patreon when clothing work begins. One
|
|
month is sufficient to download source Blender files. The CC0 license means you own
|
|
the files after cancelling. FBX/GLB standard-tier imports lose the named vertex groups
|
|
that batch scripts require. Source tier is the prerequisite for the batch pipeline.
|
|
|
|
---
|
|
|
|
## Open Questions
|
|
|
|
**Q: Can Surface Deform produce visually acceptable clothing at extreme body types?**
|
|
The batch pipeline script runs and produces output. Visual quality at heavy/stocky
|
|
body types has not been verified at gameplay or mugshot zoom. This must be answered
|
|
before committing to Surface Deform as the production pipeline.
|
|
|
|
**Q: What does the Quaternius Source tier actually include for body type coverage?**
|
|
The standard tier provides Superhero, Regular, and Tiny. Whether Source tier includes
|
|
additional undocumented body types (including Regular and Tiny bodies in full Source
|
|
format) needs verification when subscribing.
|
|
|
|
**Q: How many base clothing meshes are needed for v0.2 proof-of-life?**
|
|
The fantasy pack's 62 parts are genre-incompatible with an industrial sci-fi life-sim.
|
|
Minimum viable clothing catalogue for v0.2 is undefined. Needs a scope decision before
|
|
clothing work begins.
|
|
|
|
**Q: Can the batch pipeline headlessly process shape key variations on purchased clothing
|
|
packs?**
|
|
The scripting research documents the approach and reliability estimates. Headless Surface
|
|
Deform bind requires careful context setup and has not been end-to-end tested. Surface
|
|
Deform in headless mode is marked MEDIUM reliability in the research — this needs a
|
|
practical test before the pipeline is treated as production-ready.
|
|
|
|
---
|
|
|
|
## Failed Approaches — Do Not Revisit
|
|
|
|
These were tested. They failed for structural reasons. Do not investigate them further.
|
|
|
|
**Trellis clothing auto-rigging.** Trellis outputs are closed sculptures. They are not
|
|
garments. Weight transfer requires geometric proximity between the clothing mesh and the
|
|
skeleton. Trellis geometry has no such proximity. No algorithm resolves this.
|
|
|
|
**Bone scaling for body type variants (Blender-side).** Scaling bones to change body
|
|
proportions causes catastrophic mesh deformation at joints. The skinned mesh cannot
|
|
accommodate non-uniform bone scaling without breaking weight painting assumptions. All
|
|
9 variant attempts failed.
|
|
|
|
**Runtime per-segment bone scaling (Godot-side).** Same failure mode as Blender-side.
|
|
Skinned meshes in Godot cannot be runtime-scaled via bone pose modifications. The mesh
|
|
collapses at joints identically to the Blender result. This was tested independently
|
|
and failed independently.
|
|
|
|
**Trellis-generated clothing meshes as a general path.** Both the mesh generation
|
|
approach and the auto-rigging approach are closed. The combination was the original
|
|
hypothesis. Both legs of it failed.
|