Playtest ask: "more detailed looking enemies... we have local trellis-2 and hunyuan, we can make
actual shaped pathogens". Two landed, keyed by ARCHETYPE so one mesh skins every instance of
that behaviour with no code change:
latcher -> Giardia trophozoite: teardrop body, broad front, ventral suction disc. 2232 tris.
Replaces a tetrahedron, and it is the one that matters most — a latcher ATTACHES
to your hull, so it is the only enemy the player ever sees close up.
driller -> H. pylori: thick corkscrew rod. 3231 tris. Replaces a cone.
Both prompts deliberately ask for BODIES and no flagella: the phage taught us image->3D webs
thin appendages into a lump, and at flat-emissive gameplay scale only the silhouette ships.
It worked — bbox aspect 3.80 (teardrop) and 2.12 (rod) against the phage's near-cubic 1.27:1.41:
0.94 failure, so these are genuinely shaped rather than blobs.
THE PIPELINE FIX that made them usable, worth recording: collapse-decimate FLOORS OUT on Trellis
output. Asking for 2500 tris gave 15871 and iterating moved it not at all; welding first made it
worse (12042 -> 78663); triangulating changed nothing. The answer is VOXEL REMESH first — it
rebuilds the surface as clean manifold topology, which is the right tool for a blobby organic and
finally gives decimate something it can collapse. 15439 -> 2232 and 78663 -> 3231, shapes intact,
4.4MB -> 91KB. Any future pathogen goes through the same path.
Not landed: seeker and turret. MODELBEAST returned 401 then 429 on both across two runs — the
guest token's active-job cap, not a content failure. The script is resumable; they need a quieter
window on the farm.
Honest limit, so nobody expects more than this delivers: at gameplay distance under flat emissive
these read mostly as silhouette, so the gain over the old primitives is real but modest. The place
it should actually show is a Giardia clamped to the hull. If we want enemies to read as DETAILED
rather than merely better-shaped, the lever is the rendering (a matcap or rim treatment on
entities), not more geometry — that is an ART_BIBLE decision, not a pipeline one.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
160 lines
3.2 KiB
JSON
160 lines
3.2 KiB
JSON
{
|
|
"audio": {
|
|
"beds": {
|
|
"esophagus": {
|
|
"gain": 0.5,
|
|
"loop": true,
|
|
"m4a": "audio/bed-esophagus.m4a",
|
|
"ogg": "audio/bed-esophagus.ogg",
|
|
"seconds": 24.0
|
|
}
|
|
},
|
|
"sfx": {
|
|
"boost": {
|
|
"gain": 0.6,
|
|
"loop": false,
|
|
"m4a": "audio/sfx-boost.m4a",
|
|
"ogg": "audio/sfx-boost.ogg",
|
|
"seconds": 0.85
|
|
},
|
|
"hit_squelch": {
|
|
"gain": 0.7,
|
|
"loop": false,
|
|
"m4a": "audio/sfx-hit-squelch.m4a",
|
|
"ogg": "audio/sfx-hit-squelch.ogg",
|
|
"seconds": 0.34
|
|
},
|
|
"pellet": {
|
|
"gain": 0.5,
|
|
"loop": false,
|
|
"m4a": "audio/sfx-pellet.m4a",
|
|
"ogg": "audio/sfx-pellet.ogg",
|
|
"seconds": 0.2
|
|
},
|
|
"pickup": {
|
|
"gain": 0.5,
|
|
"loop": false,
|
|
"m4a": "audio/sfx-pickup.m4a",
|
|
"ogg": "audio/sfx-pickup.ogg",
|
|
"seconds": 0.5
|
|
}
|
|
}
|
|
},
|
|
"matcaps": {
|
|
"mol_chrome": {
|
|
"url": "gen/matcap_mol_chrome.webp"
|
|
},
|
|
"mol_glass": {
|
|
"url": "gen/matcap_mol_glass.webp"
|
|
},
|
|
"mol_matte": {
|
|
"url": "gen/matcap_mol_matte.webp"
|
|
},
|
|
"mol_molten": {
|
|
"url": "gen/matcap_mol_molten.webp"
|
|
},
|
|
"mol_pearl": {
|
|
"url": "gen/matcap_mol_pearl.webp"
|
|
},
|
|
"tissue_wet": {
|
|
"url": "gen/matcap_tissue_wet.webp"
|
|
}
|
|
},
|
|
"models": {
|
|
"spore_pod": {
|
|
"url": "models/spore_pod.glb",
|
|
"tris": 3019
|
|
},
|
|
"latcher": {
|
|
"url": "models/latcher.glb",
|
|
"tris": 2232
|
|
},
|
|
"driller": {
|
|
"url": "models/driller.glb",
|
|
"tris": 3231
|
|
}
|
|
},
|
|
"textures": {
|
|
"wall_colon_a": {
|
|
"normal": "gen/wall_colon_a_n.webp",
|
|
"tile": [
|
|
3,
|
|
20
|
|
],
|
|
"url": "gen/wall_colon_a.webp"
|
|
},
|
|
"wall_colon_b": {
|
|
"normal": "gen/wall_colon_b_n.webp",
|
|
"tile": [
|
|
4,
|
|
15
|
|
],
|
|
"url": "gen/wall_colon_b.webp"
|
|
},
|
|
"wall_esophagus_a": {
|
|
"normal": "gen/wall_esophagus_a_n.webp",
|
|
"tile": [
|
|
4,
|
|
16
|
|
],
|
|
"url": "gen/wall_esophagus_a.webp"
|
|
},
|
|
"wall_esophagus_b": {
|
|
"normal": "gen/wall_esophagus_b_n.webp",
|
|
"tile": [
|
|
3,
|
|
12
|
|
],
|
|
"url": "gen/wall_esophagus_b.webp"
|
|
},
|
|
"wall_oral_a": {
|
|
"normal": "gen/wall_oral_a_n.webp",
|
|
"tile": [
|
|
5,
|
|
12
|
|
],
|
|
"url": "gen/wall_oral_a.webp"
|
|
},
|
|
"wall_oral_b": {
|
|
"normal": "gen/wall_oral_b_n.webp",
|
|
"tile": [
|
|
3,
|
|
20
|
|
],
|
|
"url": "gen/wall_oral_b.webp"
|
|
},
|
|
"wall_smallint_a": {
|
|
"normal": "gen/wall_smallint_a_n.webp",
|
|
"tile": [
|
|
5,
|
|
14
|
|
],
|
|
"url": "gen/wall_smallint_a.webp"
|
|
},
|
|
"wall_smallint_b": {
|
|
"normal": "gen/wall_smallint_b_n.webp",
|
|
"tile": [
|
|
6,
|
|
10
|
|
],
|
|
"url": "gen/wall_smallint_b.webp"
|
|
},
|
|
"wall_stomach_a": {
|
|
"normal": "gen/wall_stomach_a_n.webp",
|
|
"tile": [
|
|
4,
|
|
18
|
|
],
|
|
"url": "gen/wall_stomach_a.webp"
|
|
},
|
|
"wall_stomach_b": {
|
|
"normal": "gen/wall_stomach_b_n.webp",
|
|
"tile": [
|
|
3,
|
|
22
|
|
],
|
|
"url": "gen/wall_stomach_b.webp"
|
|
}
|
|
}
|
|
}
|