Global Wind System

Global Wind Material Function

Global Wind Material Function

Global Wind Demo

Global Wind Material Function

Global Wind Material Function

Prop Demo

Global Wind System

These images and videos are from an unreleased project that I had the pleasure of being a Senior Technical Artist for. They represent the early stages of a global wind system that could be controlled and directed per level in our procedural world.

Wind was part of a larger package of systems meant to be change-able across different "biomes" as well as game life cycles to create interest and variation. My goal was to unify wind data such that we could tap into it and use it to drive performances across environments, characters and effects. What I present above was a first past at systematizing this focused primarily on different types of environment content as well as some key camera locked effect systems. Had the project continued this would have been further expanded to character elements such as clothing/hair as well as ability effects.

This system primarily revolved around scrolling 3d noise textures wrapped inside a material function that could be shared across different material types. Core behavior such as wind direction and speed was driven by a material parameter collection (MPC) wrapped in a singleton blueprint manager. As of last creative discussion it was not intended that wind would need to change in real time, but could instead be updated on level loads since we had pretty small chunks of space between screens. In the event this changed the system was also set up to cross fade noise samplers over a set period of time to avoid visual issues with simply swapping the direction and speed up a panning texture.

Wind behavior for environment objects was set up in a modular fashion using the material layers system to inject custom WPO behaviors specifically into categories of objects that required it so as not to bloat the core material structure and save on instructions. We mostly used vertex color channels to mask different kinds of effects. For example Trees used the red channel for large scale sway, green channel for randomized sample offseting of different elements and blue channel for minor wiggles.