The Spaceship Landing started with the idea of driving multiple VFX components with a few normalized float values going from the range of 0-1. I used two float curves to animate both the landing behavior and the thruster intensity which was then fed into a blueprint. The Interesting part was to drive multiple components based on these values for various purposes such as setting the location of the ship, driving materials, and particles. By proceeding from these curves to set a good base not only simplified my workflow but it also created a more realistic and logical symbiosis between the different VFX components to achieve a visually pleasing result.
I made three animated float Curves which were imported inside of timelines in the Spaceships actor blueprint. The Ncb_LandingAnimation Curve was used to remap the ships world positions to create a descending animation. After the Ncb_LandingAnimation is finished playing I triggered the Ncb_ HoverEffect, which is a simple “sine like” looping curve. Ncb_LandingAnimation curve acted as an animated distance value that I could use to drive both the smoke particle effect and also the decal wind ripple effect. The Ncb_AfterBurnerAnimation curve was used to drive the thruster fire effect. The behavior and timing of both the Ncb_landingAnimation Curve are very similar but I noticed that Thruster fires Values needed to be more aggressive to get a good motion and feel.
Sand smoke particles
The smoke was made in houdini using the OpenCL solver. I wanted a smoke that could be viewed from many different directions without feeling too static. This was achieved by making the smoke flow from all directions. Because the smoke is loopable it was important to create a shape that felt uniformed but with varying motion. The Smoke was later exported with side FX labs flipbook nodes creating a color, motion vector and 6 way lightmap texture map. In the smoke material I used the landing Curve value to drive the lightmap in different directions by a lerp node. This resulted in the Smoke getting lit from top to gradually move the lightmask to the center and sides of the particles. When the material was finished I created a Niagara System and used the distance value from the Ncb_landingAnimation curve to drive most of the essential parameters of a particle system. The Idea was to get varying values of the particle system meaning that when the ship is closer to the ground parameters like spawn rate, velocity, and particle Color are more intense and higher rather than when the ship is further away. This was achieved by lerping different values in the particle system based on this distance value.
The Thrusters were modeled in blender using three different cylinder shapes sharing the same proportions. I also gave Each Individual thruster a different red vertex color value that would work as a future offset value for the material. That would give each thruster a more random and unpredictable motion and look. The green channel of the vertex color were used to mask out the caps of the top part of the thrusters. I noticed that thruster caps vanished completely when adding a fresnel function and used the green mask to add them after the fresnel. I also made a simple smoke texture and embers in Substance Designer. I panned the texture using different speeds and accelerations for both the Color and Alpha of the material. The thrusters Material also included a vertex animation. For animating the Thrusters Intensity I used the U coordinates to work as a range for the intensity.
The same texture that I created for the Thrusters I used for the Wind Ripple material. The Texture was panned using Radial Coordinates to make the texture getting scrolled from the middle of the decal out to all directions. I imported the Ship Distance I made from the Ncb_LandingAnimation to control the alpha and Intensity of the smoke. The Purpose of using a decal was that I wanted the effect to adapt to all types of surfaces and grounds.