feat: add stylized villager presentation

This commit is contained in:
Rijad Zuzo
2026-07-09 23:47:46 +02:00
parent 8419116008
commit 39989002ca
20 changed files with 395 additions and 32 deletions
+15 -4
View File
@@ -468,7 +468,10 @@ Tab-cycled inspector shows authoritative need values, task state, destination,
decision branch, and utility scores. The existing carried-food prop and village
panel expose immediate consequences. `F10` toggles the debug/cinematic
presentation layer, while `F12` reloads the current scene as a repeatable
simulation-garden demo reset.
simulation-garden demo reset. The capsule NPCs have now been replaced by
multi-part stylized villager placeholders with tunics, heads, hair, limbs,
feet, and state-driven walk motion. Carried wood displays as a log bundle from
authoritative inventory, matching the existing carried-food presentation.
### Exit condition
@@ -653,12 +656,20 @@ Completed:
and waterfall widened; the fortress ridge landmark now has crenellations,
a dedicated banner pole with larger banner, and three turrets for a more
readable silhouette against the sky.
16. Stylized villager readability and VFX cleanup: NPCs now use compact
multi-part silhouettes with state-driven walk motion and visible carried
logs. Waterfall mist is anchored to the waterfall instead of the village
origin, duplicate wind layers are separated, and Metal smoke/wind
materials retain restrained transparency.
Next:
1. Continue growing resource discovery with finite ResourceNode instances
placed in meaningful contexts (from LEARNING_ROADMAP). See the roadmap
for the next systems priority.
1. Replace the remaining player capsule with a matching stylized presentation,
then revisit runtime camera framing so the waterfall and village action
remain readable in the same authored shot.
2. Continue with the action precondition/material-cost contract and
relationship consequence work in `LEARNING_ROADMAP.md` before expanding
visual scope further.
Do not start with GIS data, a full city, a large asset pack, or more NPC
mechanics. The next proof is a beautiful stage for the systems that already
+12 -1
View File
@@ -1,6 +1,6 @@
# Simulation Garden 01
Captured: 2026-07-08
Captured: 2026-07-09
## Files
@@ -50,3 +50,14 @@ The frame also makes the next presentation risks plain:
Use this baseline as the first runtime comparison image before adding more
systems or expanding the terrain.
## July 9 visual follow-up
The baseline images now include the first stylized-villager pass. NPCs use
multi-part silhouettes and real travel-driven limb motion instead of capsules;
profession colors and props remain definition-driven, and authoritative wood
inventory now appears as carried logs. The capture also fixes three effects
that obscured the simulation on Metal: waterfall mist was incorrectly emitted
at the village origin, ridge/valley wind systems overlapped, and chimney smoke
ignored particle transparency. The player capsule and camera composition are
the next visible presentation gaps.
@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://clc1x0yydurdk"
path="res://.godot/imported/jajce_lookdev_01.png-090cdbef692a973d175bce2e4bf10776.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://docs/baselines/jajce_lookdev_01.png"
dest_files=["res://.godot/imported/jajce_lookdev_01.png-090cdbef692a973d175bce2e4bf10776.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.

Before

Width:  |  Height:  |  Size: 710 KiB

After

Width:  |  Height:  |  Size: 419 KiB

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dtr1bl6xe3pnk"
path="res://.godot/imported/simulation_garden_01_cinematic.png-39560816a2b107dac16e5ba4e2c5dbb8.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://docs/baselines/simulation_garden_01_cinematic.png"
dest_files=["res://.godot/imported/simulation_garden_01_cinematic.png-39560816a2b107dac16e5ba4e2c5dbb8.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.

Before

Width:  |  Height:  |  Size: 696 KiB

After

Width:  |  Height:  |  Size: 428 KiB

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://wmk4fykdlafb"
path="res://.godot/imported/simulation_garden_01_debug.png-c2c8d5bb4081c8fa4b5fa05e512fa49e.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://docs/baselines/simulation_garden_01_debug.png"
dest_files=["res://.godot/imported/simulation_garden_01_debug.png-c2c8d5bb4081c8fa4b5fa05e512fa49e.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1