wgt01: tileset build guide + 40-tile generator kit
AGENTS.md: NWN:EE tileset construction reference (constraints, .mdl/.wok walkmesh rules, .set format, Blender->NWN pipeline, prototype->NWN mapping). wgt01/: Westgate Urban Foundation MVP kit. - generator/tiles.py: single source of truth (40-tile table, materials, 12x12 test map, pure paint/height/walkmesh/.set derivations). - generator/build.py: Blender 4.0.2 scene generator (VIS_/WOK_/BLOCK_ per tile, edge metadata, library grid + 12x12 district previews). - generator/make_wok.py: ASCII walkmesh emitter (verts+faces+surfacemat+AABB tree) from the same geometry. - generator/make_set.py: first-pass twu01.set (CRLF) from the tile grammar. - flake.nix: build/wok/set apps + dev shell (pinned Blender 4.0.2, NWN tools). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,400 @@
|
||||
You are assisting inside Blender to rapidly prototype a Neverwinter Nights: Enhanced Edition urban foundation tileset for the project “Shadows Over Westgate.”
|
||||
|
||||
The goal is NOT to build a full city tileset with buildings. The goal is to generate a reusable tile library of streets, sidewalks, plazas, alleys, ramps, bridges, canals/voids, drains, raised terraces, and foundation pads. Buildings, facades, lamps, signs, roofs, walls, doors, clutter, and district decoration will be modular placeables later.
|
||||
|
||||
Westgate’s intended atmosphere is noir dark fantasy: rain-slick streets, mercantile decay, old stone, smoke, fog, gothic silhouettes, and grimy desperation. The city also has an early industrial-magical layer: steam, alchemy, bound elementals, lightning engines, magical lamps, printing presses, and machinery beneath the gutters. For this pass, represent that only through ground grammar: drains, grates, canal cuts, raised streets, bridge foundations, dark cobbles, and industrial service channels. Do not make buildings.
|
||||
|
||||
PROJECT GOAL
|
||||
|
||||
Create a Blender scene containing a prototype tile library named:
|
||||
|
||||
Westgate_Urban_Foundation_MVP
|
||||
|
||||
Each tile must be a 10m x 10m square module suitable for later NWN tileset conversion.
|
||||
|
||||
Use metric scale.
|
||||
|
||||
Coordinate convention:
|
||||
|
||||
- Each individual tile is centered at origin when built as a source asset.
|
||||
- Tile bounds are X = -5 to +5, Y = -5 to +5.
|
||||
- Ground level is Z = 0.
|
||||
- Raised tier level is Z = 1.5.
|
||||
- Canal/void water surface, if present, is Z = -0.3.
|
||||
- Do not create true multi-level playable over/under spaces. Bridges may cross non-walkable canal/void areas only.
|
||||
- Keep walkable slopes gentle and readable.
|
||||
- Keep edges clean and snap-compatible.
|
||||
|
||||
Create each tile as its own Collection. Name collections exactly with their code and readable name, for example:
|
||||
|
||||
CP1_cobble_plain
|
||||
ST_S_straight_street
|
||||
RA_S_straight_ramp
|
||||
|
||||
Inside each tile collection, create these sub-objects where appropriate:
|
||||
|
||||
VIS_<tilecode> visual geometry
|
||||
WOK_<tilecode> simple walkmesh proxy geometry
|
||||
BLOCK_<tilecode> non-walkable blocker proxy geometry, if needed
|
||||
MARK_<tilecode>_* edge/debug markers, if useful
|
||||
|
||||
The WOK proxy should be simple and functional: mostly flat planes or simple ramp planes. Avoid complex triangulation unless necessary.
|
||||
|
||||
Use simple prototype materials:
|
||||
|
||||
- MAT_wet_cobble_dark
|
||||
- MAT_cobble_patch
|
||||
- MAT_plaza_slab
|
||||
- MAT_sidewalk_stone
|
||||
- MAT_curb_dark_stone
|
||||
- MAT_canal_black_water
|
||||
- MAT_void_black
|
||||
- MAT_ramp_stone
|
||||
- MAT_drain_iron
|
||||
- MAT_foundation_pad
|
||||
- MAT_debug_walkmesh
|
||||
- MAT_debug_blocker
|
||||
|
||||
Do not spend time on final textures. Use flat colors or simple procedural noise only. This is a geometry and tile-grammar prototype.
|
||||
|
||||
REQUIRED TILE LIBRARY
|
||||
|
||||
Generate these tiles first.
|
||||
|
||||
FLAT WALKABLE GROUND
|
||||
|
||||
1. CP1_cobble_plain
|
||||
|
||||
- Full 10x10 walkable dark cobble.
|
||||
- Subtle bevel or edge trim allowed.
|
||||
- WOK full square at Z=0.
|
||||
|
||||
2. CP2_cobble_plain_wet_variant
|
||||
|
||||
- Same as CP1 but with darker wet material patches.
|
||||
- Geometry can be the same with different material regions.
|
||||
|
||||
3. CP3_cobble_plain_broken_variant
|
||||
|
||||
- Same as CP1 but with a few shallow cracked/patch shapes.
|
||||
- Keep WOK flat.
|
||||
|
||||
4. AL1_narrow_alley_paving
|
||||
|
||||
- Full tile walkable, but visual paving suggests a narrower central alley.
|
||||
- Add darker side strips/foundation margins where modular building placeables might sit.
|
||||
- Do not place buildings.
|
||||
|
||||
5. PL1_plaza_slab
|
||||
|
||||
- Full tile walkable large stone slab plaza.
|
||||
- Less busy than cobble.
|
||||
|
||||
6. DR1_drain_detail
|
||||
|
||||
- Full tile walkable cobble with a central or offset iron drain/manhole/grate.
|
||||
- Drain is visual only unless it is a tiny non-walkable inset.
|
||||
|
||||
7. MU1_muddy_repair_patch
|
||||
|
||||
- Full tile walkable cobble with broken/muddy repair patch.
|
||||
- Keep WOK flat.
|
||||
|
||||
8. LOT_foundation_pad
|
||||
|
||||
- A quiet, flat urban foundation pad for placing modular buildings or large placeables.
|
||||
- Mostly plain stone, minimal decoration.
|
||||
- Full WOK square.
|
||||
|
||||
STREET SHAPES
|
||||
|
||||
9. ST_S_straight_street
|
||||
|
||||
- Straight street path running north-south through the tile.
|
||||
- Sidewalk/curb margins on east and west sides.
|
||||
- Entire tile can remain walkable for flexibility, but VIS should clearly read as street + curb + sidewalk.
|
||||
- WOK full square unless blockers are necessary.
|
||||
|
||||
10. ST_C_street_corner
|
||||
|
||||
- L-shaped street corner.
|
||||
- Sidewalk/curb margins.
|
||||
- Use visual contrast, not blockers, unless necessary.
|
||||
|
||||
11. ST_T_street_t_junction
|
||||
|
||||
- T-junction street.
|
||||
|
||||
12. ST_X_street_crossroads
|
||||
|
||||
- Four-way street crossing.
|
||||
|
||||
13. ST_E_street_end
|
||||
|
||||
- Dead-end street with a visual blocked/terminated paving edge.
|
||||
- Do not add a wall or building; just create the ground condition.
|
||||
|
||||
14. ST_W_wide_boulevard
|
||||
|
||||
- Wider street segment, usable for civic or merchant districts.
|
||||
- Include broad sidewalks.
|
||||
|
||||
15. ST_G_gate_mouth
|
||||
|
||||
- Street tile that visually suggests a gate approach or major threshold.
|
||||
- No gate model. Just heavier paving, curb geometry, and alignment pads.
|
||||
|
||||
16. ST_D_street_with_central_drain
|
||||
|
||||
- Straight street with central gutter/drain channel.
|
||||
- Channel should be shallow and walkable or visually recessed without pathing problems.
|
||||
|
||||
SIDEWALK / CURB / GUTTER
|
||||
|
||||
17. SW_S_sidewalk_straight
|
||||
|
||||
- Raised sidewalk/promromenade strip along one or both sides.
|
||||
- Use low curb height, around Z=0.12 to 0.18.
|
||||
- Keep WOK simple.
|
||||
|
||||
18. SW_C_sidewalk_corner
|
||||
|
||||
- Corner curb/sidewalk condition.
|
||||
|
||||
19. SW_T_sidewalk_t_split
|
||||
|
||||
- Sidewalk T connector.
|
||||
|
||||
20. SW_X_sidewalk_crossing
|
||||
|
||||
- Sidewalk/plaza connector or crossing tile.
|
||||
|
||||
21. SW_E_sidewalk_end
|
||||
|
||||
- Sidewalk ending/transition tile.
|
||||
|
||||
22. GD_S_gutter_straight
|
||||
|
||||
- Straight shallow gutter/drain channel.
|
||||
|
||||
23. GD_C_gutter_corner
|
||||
|
||||
- Gutter corner.
|
||||
|
||||
24. GD_X_gutter_crossing_grate
|
||||
|
||||
- Drain crossing with visible grate.
|
||||
|
||||
RAISED TIERS / RAMPS / STAIRS
|
||||
|
||||
25. UP1_raised_terrace
|
||||
|
||||
- Full tile raised walkable surface at Z=1.5.
|
||||
- WOK full square at Z=1.5.
|
||||
|
||||
26. UP2_raised_plaza_variant
|
||||
|
||||
- Raised plaza/slab variant at Z=1.5.
|
||||
|
||||
27. TE_S_retaining_edge_straight
|
||||
|
||||
- Half or edge tile where one side is raised terrace at Z=1.5 and the lower side is at Z=0.
|
||||
- Include vertical retaining wall face.
|
||||
- The top and bottom walkable areas should be clear.
|
||||
- Do not create inaccessible slivers.
|
||||
|
||||
28. TE_C_retaining_edge_outer_corner
|
||||
|
||||
- Raised/lower retaining corner.
|
||||
|
||||
29. TE_I_retaining_edge_inner_corner
|
||||
|
||||
- Raised/lower retaining inside corner.
|
||||
|
||||
30. RA_S_straight_ramp
|
||||
|
||||
- Straight ramp from Z=0 to Z=1.5 across the tile.
|
||||
- Ramp direction north-south.
|
||||
- Add simple side retaining edges.
|
||||
- WOK should be a clean ramp plane.
|
||||
|
||||
31. RA_C_corner_or_dogleg_ramp
|
||||
|
||||
- A corner/dogleg ramp from lower to upper.
|
||||
- Keep it simple and pathable.
|
||||
|
||||
32. STA_broad_stair
|
||||
|
||||
- Broad stair from Z=0 to Z=1.5.
|
||||
- Since NWN pathing can be sensitive, create a simplified ramp-like WOK proxy over the visible stairs.
|
||||
- Visual stairs may be stepped; WOK should be smooth or very simple.
|
||||
|
||||
CANAL / VOID / BRIDGES
|
||||
|
||||
33. CN1_canal_black_water
|
||||
|
||||
- Non-walkable canal/black water/void tile.
|
||||
- Visual water at Z=-0.3.
|
||||
- WOK absent or marked non-walkable.
|
||||
- Add stone canal edge only if it does not imply mismatched adjacency.
|
||||
|
||||
34. CN2_narrow_drainage_cut
|
||||
|
||||
- Narrow non-walkable drainage cut through the tile.
|
||||
- Include stone/cobble edges.
|
||||
|
||||
35. CE_S_canal_edge_straight
|
||||
|
||||
- Straight canal embankment edge.
|
||||
- One side walkable at Z=0, one side canal/void non-walkable.
|
||||
- Add clean retaining wall face.
|
||||
|
||||
36. CE_C_canal_edge_corner
|
||||
|
||||
- Canal edge corner.
|
||||
|
||||
37. CE_I_canal_edge_inside_corner
|
||||
|
||||
- Canal inside corner.
|
||||
|
||||
38. BR_1_narrow_bridge
|
||||
|
||||
- Narrow bridge crossing canal/void.
|
||||
- Walkable bridge deck at Z=0 or slightly above Z=0.
|
||||
- Non-walkable canal beneath.
|
||||
- No playable underpass.
|
||||
- Add simple side parapet placeholders if useful, but keep them low/blocker-safe.
|
||||
|
||||
39. BR_2_broad_bridge
|
||||
|
||||
- Broad bridge suitable for a main street.
|
||||
- Same constraints as BR_1.
|
||||
|
||||
40. SEW_sewer_mouth_culvert
|
||||
|
||||
- Canal/drain edge with sewer mouth or culvert visual.
|
||||
- Mostly decorative, but useful for noir city composition.
|
||||
|
||||
BUILDER GROUP / PREVIEW ASSEMBLIES
|
||||
|
||||
After generating source tile collections, create a separate Collection:
|
||||
|
||||
PREVIEW_tile_library_grid
|
||||
|
||||
In this collection, instantiate or duplicate each tile in a neat grid with labels so I can inspect the full library.
|
||||
|
||||
Also create another Collection:
|
||||
|
||||
PREVIEW_12x12_test_district
|
||||
|
||||
Build this exact 12x12 prototype map using the generated tiles. Place each tile on a 10m grid. Each tile should be positioned by row/column, 10m apart.
|
||||
|
||||
Map:
|
||||
|
||||
Row 01:
|
||||
CN1 CN1 CE_S CE_S BR_2 CE_S CE_S CN1 CN1 CN1 CN1 CN1
|
||||
|
||||
Row 02:
|
||||
CN1 CE_C SW_S ST_S ST_S ST_S SW_S CE_C CN1 CN1 CN1 CN1
|
||||
|
||||
Row 03:
|
||||
CE_S SW_S ST_C ST_S ST_T ST_S ST_C SW_S CE_S CE_S BR_1 CE_S
|
||||
|
||||
Row 04:
|
||||
SW_S AL1 AL1 CP1 PL1 PL1 CP1 AL1 AL1 SW_S ST_S SW_S
|
||||
|
||||
Row 05:
|
||||
SW_S AL1 LOT CP2 PL1 PL1 CP2 LOT AL1 SW_S ST_S SW_S
|
||||
|
||||
Row 06:
|
||||
ST_S ST_S ST_T ST_S ST_X ST_S ST_T ST_S ST_S ST_C ST_S SW_S
|
||||
|
||||
Row 07:
|
||||
SW_S AL1 LOT CP1 ST_S ST_S CP1 LOT AL1 SW_S CP2 SW_S
|
||||
|
||||
Row 08:
|
||||
SW_S AL1 AL1 CP1 PL1 PL1 CP1 AL1 AL1 SW_S CP2 SW_S
|
||||
|
||||
Row 09:
|
||||
CE_S SW_S ST_C ST_S ST_T ST_S ST_C SW_S CE_S TE_S TE_C SW_S
|
||||
|
||||
Row 10:
|
||||
CN1 CE_C SW_S CP1 RA_S UP1 UP1 TE_S TE_S UP1 RA_S SW_S
|
||||
|
||||
Row 11:
|
||||
CN1 CN1 CE_S CE_S BR_2 CE_S CE_S CN1 CE_S SW_S ST_S SW_S
|
||||
|
||||
Row 12:
|
||||
CN1 CN1 CN1 CN1 CN1 CN1 CN1 CN1 CN1 SW_S ST_E SW_S
|
||||
|
||||
Use tile names matching the generated collection names. If exact variants are not available yet, use the closest equivalent and note the substitution.
|
||||
|
||||
DESIGN CONSTRAINTS
|
||||
|
||||
- Do not model buildings.
|
||||
- Do not model full walls except retaining/canal/bridge support walls needed by terrain.
|
||||
- Do not model roofs.
|
||||
- Do not model decorative clutter except minimal drains/grates required to communicate tile purpose.
|
||||
- Avoid tiny details.
|
||||
- Prioritize edge alignment, walkability, and builder usefulness.
|
||||
- Keep polygon counts low.
|
||||
- Keep all tile edges snap-clean.
|
||||
- Avoid overhangs at tile boundaries.
|
||||
- Avoid geometry extending beyond -5/+5 bounds unless it is an explicitly marked harmless visual trim.
|
||||
- Use bevels sparingly.
|
||||
- Prefer clean simple geometry over visual polish.
|
||||
- Use material slots consistently so final textures can replace prototype materials later.
|
||||
|
||||
EDGE COMPATIBILITY
|
||||
|
||||
Think of each tile edge as one of these edge types:
|
||||
|
||||
FLAT walkable ground at Z=0
|
||||
RAISED walkable ground at Z=1.5
|
||||
CANAL non-walkable canal/void
|
||||
RAMP ramp transition edge
|
||||
MIXED special edge, document it
|
||||
|
||||
For each tile, create a custom property or add a Text object note listing its north/east/south/west edge types.
|
||||
|
||||
Example:
|
||||
|
||||
ST_S_straight_street
|
||||
N: FLAT
|
||||
E: FLAT
|
||||
S: FLAT
|
||||
W: FLAT
|
||||
|
||||
RA_S_straight_ramp
|
||||
N: RAISED
|
||||
E: FLAT
|
||||
S: FLAT
|
||||
W: FLAT
|
||||
|
||||
CE_S_canal_edge_straight
|
||||
N: FLAT
|
||||
E: CANAL
|
||||
S: FLAT
|
||||
W: FLAT
|
||||
|
||||
Add these notes in a scene text block called:
|
||||
|
||||
TILE_EDGE_METADATA
|
||||
|
||||
OUTPUT EXPECTATIONS
|
||||
|
||||
At the end:
|
||||
|
||||
1. Save the Blender file as:
|
||||
westgate_urban_foundation_mvp.blend
|
||||
|
||||
2. Report:
|
||||
- number of tile collections created;
|
||||
- any tiles skipped;
|
||||
- any substitutions made;
|
||||
- any geometry/pathing concerns;
|
||||
- next recommended pass.
|
||||
|
||||
3. Do not spend time making final art.
|
||||
4. Do not get stuck on perfect NWN export.
|
||||
5. The deliverable is a rapid, inspectable Blender prototype of the tile library and a test district.
|
||||
Reference in New Issue
Block a user