Files
settled-reach/spikes/quaternius-aesthetic/scenes/showcase.tscn
T
jpmschweitzerandClaude Opus 4.6 c380ef8a84 feat(assets): add Quaternius aesthetic validation spike
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>
2026-03-19 13:29:22 +01:00

75 lines
2.1 KiB
Plaintext

[gd_scene load_steps=3 format=3]
[ext_resource type="Script" path="res://scripts/spike/showcase_main.gd" id="1_script"]
[sub_resource type="Environment" id="Environment_env"]
background_mode = 1
background_color = Color(0.18, 0.2, 0.24, 1)
ambient_light_source = 2
ambient_light_color = Color(0.5, 0.5, 0.55, 1)
ambient_light_energy = 0.6
[node name="Showcase" type="Node3D"]
script = ExtResource("1_script")
[node name="Camera3D" type="Camera3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 5, 20)
projection = 1
size = 5.0
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
transform = Transform3D(0.866, -0.354, 0.354, 0, 0.707, 0.707, -0.5, -0.612, 0.612, 5, 10, 5)
light_energy = 0.8
shadow_enabled = true
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
environment = SubResource("Environment_env")
[node name="HUD" type="CanvasLayer" parent="."]
[node name="Panel" type="PanelContainer" parent="HUD"]
offset_left = 8.0
offset_top = 8.0
offset_right = 220.0
offset_bottom = 300.0
[node name="VBox" type="VBoxContainer" parent="HUD/Panel"]
layout_mode = 2
[node name="Title" type="Label" parent="HUD/Panel/VBox"]
layout_mode = 2
text = "Controls"
[node name="BodySelect" type="OptionButton" parent="HUD/Panel/VBox"]
layout_mode = 2
[node name="SkinToneSelect" type="OptionButton" parent="HUD/Panel/VBox"]
layout_mode = 2
[node name="BtnOutline" type="Button" parent="HUD/Panel/VBox"]
layout_mode = 2
text = "[2] Outline: ON"
[node name="BtnOutfit" type="Button" parent="HUD/Panel/VBox"]
layout_mode = 2
text = "[3] Outfit: none"
[node name="BtnAnim" type="Button" parent="HUD/Panel/VBox"]
layout_mode = 2
text = "[4] Animation: playing"
[node name="BtnTrellis" type="Button" parent="HUD/Panel/VBox"]
layout_mode = 2
text = "[6] Trellis head: OFF"
[node name="BtnTilt" type="Button" parent="HUD/Panel/VBox"]
layout_mode = 2
text = "[T] Camera: dramatic (-30)"
[node name="Sep" type="HSeparator" parent="HUD/Panel/VBox"]
layout_mode = 2
[node name="LabelNav" type="Label" parent="HUD/Panel/VBox"]
layout_mode = 2
text = "WASD pan | Q/E orbit | Scroll zoom | F12 screenshot"