Skip to content
← Back to work

02 — Production Art

Frontier Outpost — Modular Kit

A modular environment kit shipped with UVs, texture sheets, material instances, LODs and a documented Unreal implementation.

Year
2025
Role
Environment art · material authoring · engine implementation
Context
Personal
Type
Production Art
Software
Blender · RizomUV · Substance 3D · Unreal Engine 5 · Photoshop
Frontier Outpost — Modular Kit hero shot

Modules

48 snapped pieces

Atlas

4K trim + 2K detail

LODs

4 tiers per module

Engine

Unreal 5 · Nanite + fallback

What 'kit' means here

  1. Modular

    100 cm snap grid, zero unique walls

    Walls, floors, trims and corners all share one metric grid, so level designers re-block a space without touching an artist.

  2. Texturing

    Trim sheet + detail normal

    One 4K trim carries every hard-surface edge; a 2K detail normal adds surface noise at close range without new UVs.

  3. Optimisation

    4 LOD tiers, Nanite where it counts

    Dense hero modules keep Nanite; small props use a hand-authored LOD chain so overdraw and silhouette both stay controlled.

  4. Delivery

    Documented for the next artist

    Naming, pivot rules, UV margins and import settings are written down — a kit nobody else can use isn't a kit.

48Modules
4LOD tiers
2Texture sets
312kTypical room tris

UVs, topology and material sheets

UV shells — 0–1 space, consistent margins
UV shells — 0–1 space, consistent margins
PBR channels — modular wall set
PBR channels — modular wall set
Topology + snap grid overlay
Topology + snap grid overlay
LOD chain — LOD0 to LOD3 with screen-size thresholds in Unreal
LOD chain — LOD0 to LOD3 with screen-size thresholds in Unreal

Unreal implementation — greybox to dressed

GreyboxDressed + litGreyboxDressed + lit

Identical module layout — the kit was assembled in-engine by blockout, then dressed with prop variants.

Material setup in Unreal

Every module shares one master material with a trim atlas, a detail normal and a vertex-color mask for wear. Variation comes from material instances and per-instance parameters, never from duplicated materials.

Vertex painting handles dust accumulation and wetness at runtime, which means the same wall works in an exterior shot and a covered interior without a second texture set. Texel density is locked at 512 px/m across the whole kit, so nothing visibly blurs when modules are mixed.

Engine implementation

Material instance — trim + wear params
Material instance — trim + wear params
Nanite / fallback visualisation
Nanite / fallback visualisation
Unreal stats — draw calls and LOD screen sizes
Unreal stats — draw calls and LOD screen sizes

Production breakdown

  1. 01

    Greybox the rules first

    Grid, ceiling heights and doorway spans were tested in engine before a single high-poly was made.

  2. 02

    High → low, trim first

    Trim sheet authored before modules, so every bevel decision already had a place to live in UV space.

  3. 03

    Texture once, instance everywhere

    Two texture sets cover the entire kit — variation is handled by instances and vertex masks.

  4. 04

    Ship, then measure

    Draw calls, texture memory and LOD screen sizes profiled on target hardware, then trimmed back.

  5. 05

    Document the constraint

    Pivot, naming and margin rules written into the README so new modules don't break the set.

  6. 06

    Hand it over

    Kit delivered with a sample room so the receiving artist can validate import without guesswork.