Environments
02 / 3D environment artist· Environment

A composition-driven, semi-stylized medieval village in Unreal Engine 5 — built to tell a story by itself and read clearly in motion. My MA Animation technical showcase.

Year
2026
Status
Live
Stack
Unreal Engine 5.6, Blender, Substance, Lumen
performance
~100 fps @ target
Umbraixs village vista
01

Under a clear blue sky brushed with soft pink clouds, a quiet medieval village of round stone towers and red-tiled roofs — a landscape that tells a story by itself. Umbraixs is my MA Animation technical showcase: composition-driven, semi-stylized environment building that has to read clearly in motion. The touchstones were Genshin's Mondstadt, Zelda: Breath of the Wild, and Studio Ghibli's Howl's Moving Castle.

02

Unreal Engine 5.6 as the primary engine, with Lumen for lighting and Nanite for foliage. Buildings and workspaces are authored as Blueprint actors; the castle walls and the flowing river are spline-driven. Assets are largely sourced and then reworked — the skill is in combining and re-authoring them through material and shader edits (blends and masks) so a bought asset stops looking bought.

03

The lighting is fully dynamic, from street lamps to cloud caustics, with generous bloom to bring out the stylized energy. A day/night cycle drives the whole scene, and a randomized weather system runs in cahoots with it for a more authentic feel. Going semi-stylized (rather than fully) kept a firmer grip on how the environment and lighting read. Composition leans on leading lines, value grouping, and light anchors.

04

The PC target was 60 fps; it landed around 100. Getting there meant profiling with stat fps and stat gpu to find what was pulling compute down — dynamic shadows and pre-lighting composition were the culprits — then leaning on camera culling, LODs, and Nanite overrides, which saved a lot.

05

Water reflectivity fought me every time I panned or rendered — overlapping materials where one had emission enabled — until I tracked it down and fixed it. A GPU driver update broke DirectX 12 and crashed Unreal at random, a hard lesson that the newest of everything has drawbacks. Blueprint pivot points drifted and scrambled whole classes, so I'd reset the pivot and re-add the actor at its original transform. The real takeaways were earlier planning for system integration, the economics of asset reuse, and a sharper critical eye for what a shot actually needs.

The full piece on YouTube. Nothing loads from YouTube until you press play.