Tyler Smith talked about the Wind Effect as a part of his UE4 Ambient VFX Studies.
Tyler Smith talked about the Wind Effect as a part of his UE4 Ambient VFX Studies.
Introduction
I have been working at Sucker Punch Studios with an incredibly talented team to make Ghost of Tsushima as amazing as possible! In my free time, I have been pursuing more VFX projects in UE4, as well as developing creature and fantasy environments. This has led me to release tutorials on my ArtStation store covering how to make rocks, trees, creatures, and other cool things.
Goals
I always love going out into nature and seeing what amazing experiences I can encapsulate, not just as a single rendered image but showing how it moves in real time. With UE4 or any other real-time rendering engine, a new kind of art can be achieved where time/movement is another aesthetic factor. For this scene, I was looking at both the wind storms that rattle the trees in the Pacific Northwest where I live now and the flowing windswept grass plains of Colorado where I grew up.
About the Effect
What got me excited about achieving this effect was looking at the pivot painter level in the UE4 Content Examples project. It’s a really amazing free project that demonstrates and showcases all the features the engine can achieve. I saw an example of some simple blocks flowing in a wave-like pattern using what they had named as the “DirectionalAni_Advanced” material. Looking into how the material for it was set up, I discovered it was using the origin of the object and offsetting it in a rhythmic pattern with soft falloff to get a nice S-Curve to the movement. As long as any object I imported had a basic rectangular shape, decent vertex count, and an origin at its base it could be affected by this smooth movement. At first, I thought that it would be great for something like a sea anemone for an underwater scene. While making a recent tree asset for one of my tutorials, I realized I could take the branches and stand them on their ends and then export them to create the wind effect.
Grass
The grass assets became very simple after seeing that the wind material would work on the tree branches as well. I had to make sure that the shape of the grass clumps did not get to spread out and flattened. What is so amazing about the “DirectionalAni_Advanced” material epic made was that all the objects share the same movement on a global scale. So, no matter how many objects of grass I put down, they all move in the same nature of the wave.
Tree
For setting up the tree, I split my tree into 2 mesh components. The first was the trunk and main branches that would have very little wind effect. I then assigned a material instance that had a very low wind effect.
For the branches component, I exported them standing up straight with the mesh origin at the base of their branches. From there, I imported the branch assets and set dressed them to fit onto the trunk. What makes the wave effect so nice to look at is the wave patterns that flow down the branches. In most games, the wind affecting trees relies on a world position offset that moves the vertices in one direction in a more chaotic way. This is more accurate to what happens in nature and it’s very cost-effective for production. However, for this small scene, I wanted to bend the rules a bit and see what kind of aesthetics I could achieve for the wind.
Particle Movement
The particle movement is made from two components. The first is where I take a plane in Maya that can bend and twist with deformers until it looks something like a roller coaster track for the panning texture effects to “ride along.” Then I pan transparent cloud textures along the mesh creating a great sense of twirling and twisting. The other main effect is taking GPU particles with a simple leaf texture, first, making the camera facing option based on velocity in the main particle options, then assigning a basic radial local vector field and slowly rotating it along the velocity axis the particles are traveling on. Then all the GPU particles get a twirling effect and with velocity aligned then have a sense of the 3D perspective changes as they move.
Advantages of DirectionalAni_Advanced
Using the math in the “DirectionalAni_Advanced” material as a springboard effect, this wind effect can be used for a huge number of different effects. The wave movement speed and frequency can be modified in a material instance to make anything from underwater plants at a slower speed or to intensify the fire or electrical effects at a faster rate. The other huge benefit of this is the movement expressed on a global scale. You can have one object or an entire ocean of them and they will share the same uniform wave patterns.