Snow Generation and Trails System

Snow Pass on Prefab Levels

Snow Pass on Prefab Levels

Snow Pass on Prefab Levels

Snow Pass on Prefab Levels

Snow Pass on Prefab Levels

Snow Pass on Prefab Levels

Snow Pass on Prefab Levels

Snow Pass on Prefab Levels

Snow Floor Tool for Generating Flat Surface Snow

Snow Floor Tool for Generating Flat Surface Snow

Snow Volume Tool for Generating Snow on 3D Surfaces Before

Snow Volume Tool for Generating Snow on 3D Surfaces Before

Snow Volume Tool For Generating Snow on 3D Surface After

Snow Volume Tool For Generating Snow on 3D Surface After

Prototype for Interaction "Trail" System on Snow and Water

Trail System Example

Trail System Example

Snow Generation and Trails System

These images and videos are from an unreleased project that I had the pleasure of being a Principle Technical Artist for. They represent a set of tools for generating additive snow geometry over the top of existing levels. This project called for the concept of different "biomes" that could be traveled to each session. While the large maps would be custom built to a specific biome the smaller procedural placed building sections within that map would need to be re-used to save time. One of the proposed biomes was a snowy alpine location and while we started by exploring a material based "up-normal" approach the directors really wanted a solution that would have a meaningful impact on the shape and silhouette of the geometry.

Hand modeling or even procedural modeling within a DCC app would have been time consuming and very difficult for more complex scenes with many overlapping objects. Instead I looked at using dynamic mesh scripts in blueprint to generate custom mesh content in context of the scene at editor time. This involved two separate approaches...

The first was a more targeted approach for complex models or groups of assets where points where scattered along the top surfaces before being used to generate a voxel based mesh that could then be converted back into triangles. The tool would then optimize and cleanup the results before baking it out to a static mesh asset. In many cases for standard actors like cars, fences and lights we could just bake these snow meshes out once and re-use them across every level. For more complex subjects like buildings we would bake out a unique mesh that would live in a sub-folder of the level itself so it was only ever used in this context.

While this proved effective for small props and relatively large building roofs we needed another solution for large ground surfaces. The voxelized approach quickly became performatively untenable in editor on very large surfaces and lowering the resolution resulted in poor outputs. Instead for large flat surfaces I used a spine based approach that would outline the general shape of the snow cover and use sub spline actors to boolean out any locations that might be protected from snow such as building foundations or under cars.

Because of nanite it was fairly reasonable to spend what might have been quite a lot of triangles to achieve this more form based solution. Beyond this I was also able to implement a displacement based solution for realtime interactions with characters and weapon impacts that could be paired with a solution for water interaction. The trail system worked by spawning particles below the gameplay space using a Niagara Data Channels. These particles were captured by a render target centered on the local player and read into supporting materials. Characters only spawned relevant particles when in contact with pre-specified physical material surfaces such as snow and water to avoid wasted particles and or spawning them when in the air or inside a building.

World Director - Carl Shedd
Level Artist/Designer - Michael Drummond
Prop Artist - Jonthan Fawcett