Revisiting the rust material and the formation of rust on the boat hull, I realized it wasn't very believable. I observed a lot of rust on metallic surfaces and realized that my rust was lacking a differentiation between the areas of rust flaking and the areas of rust dripping. The rust flaking areas often appear to be a deeper red orange, and the areas of dripping rust are lighter orange and fade off softly.
The boat's skeleton is slightly improved from before, a little bit less fantasy. I tried to make them appear more fragile, deformed, and decaying. One of the main problems with the previous skeleton iteration was that it didn't follow the form of the hull very well, and it looked more like a skeleton inside of a boat than a skeleton underlying the structure of the boat.
I added the wheelhouse structure and applied the same rusting effect to it by painting keyframes for its rusting and deterioration pattern.
This is an early preview. The materials aren't well defined on the wheelhouse yet and I plan to add some further model-specific detail maps like AO, curvature, and normal.
I've been starting to work with the environmental effects for this sequence. My idea is that, as you approach the boat, the sand will start to ripple in front of you in waves that surge forward and "swallow" the water that the boat is floating on. The first component of this is to displace the sand, using variations of a sine wave. I have the sand rippling at the moment, but I'll be working on making it more directed and less random.
Details on the process so far:
I've made a lot of progress in terms of organizing my graphs. The boat is one Blueprint, BP_Boat, that initializes all of the mesh layers that make up the boat (for the painted effect) and assigns dynamic material instances to each mesh layer. This can be simply dragged into the editor and should automatically rust away based on distance, as well as connect with other relevant materials in the sequence.
BP_Boat sets material parameters in all of these dynamic material instances. Different components of the transition are determined by different curves. The wheelhouse deteriorates at a faster rate than the hull, and so I've set up different curves to control their rate (i.e. 60% through the transition, the wheelhouse has completely deteriorated.) The water drying up may be another curve, or the increasing size of the waves/sand ripples throughout the transition.
One of the main material parameters that BP_Boat sets is the Rust Transition, a 0-1 float value determined by the player's distance from the boat. This essentially flips through the hand-painted mask keyframes to animate the boat rusting and deteriorating. Mask keyframes are scalar and so they are stored in each of the RGBA channels to conserve texture space within the shader. I've painted the mask keyframes so that black on the mask is solid, 0 - .5 is where rust begins to form, and .5 - 1 is deterioration, contributing to the opacity mask for the material.
The rust drips are formed by shifting the UVs for the mask downwards and lerping it over itself incrementally several times. This gives a somewhat soft blend directionally downwards. Using this mask, I blend in a lighter rust material. In the standard mask, I blend in a deeper, flakier rust material. The masks, which originally are soft gradients, are blended with different noises - the flakes blend in a cell pattern at the edges of the rusted areas, where the drips use a more directional vertical noise. These are all blended in the UE4 shader so tiling can be adjusted, etc.
Another example of material parameter that BP_Boat sets is a mask based on which mesh layer the material instance corresponds to. This allows for effects like a color multiplier per mesh layer, or a UV offset per mesh layer. Connecting the various materials back to a centralized Blueprint has proven very helpful in directing all of the parameters for this sequence.
Some things left to do:
-Refine the wheelhouse materials, add glass to windows
-Replace placeholder sand and water materials
-Refine sand and water wave displacement
-Natural displacement of boat along with sand/water waves
-Sand particles blowing
I'm looking to finish the majority of this in the next couple of weeks, but some of these tasks might take a backburner for a bit as I start venturing into my idea for my next sequence.
Wax rock beach:
Over the past few weeks I've devised a much clearer plan and scope for this project that I feel like encompasses a lot of the visuals and moods I wanted to create. Essentially, the project is one transforming dreamscape environment. The primary environment is a beach with large, arching rock formations. The color palette will be desaturated and cool initially. If you approach the rocks, they will start to melt into wax wherever you aim, and the melting will spread throughout the rock from there. The color palette will shift to warmer as the wax melts into an amber-like color. The hero element in this environment will be a large rock formation that looks like a candle. My rough idea is that the candle wax rocks will all melt down into a pool of water, which is where you'll find the boat.
I'm interested in incorporating morph targets to actually melt these rock meshes down. The great news is that Canvas Render Target 2D has been fixed and is no longer crashing in UE 4.7, so I'll be continuing to work on my world canvas mask painting to material blend to the wax material wherever the player aims. The wax material will be much more translucent and use flow maps and displace areas achieve the appearance of wax dripping.
A broad summary of the tasks for this sequence:
-Create rock mesh pieces
-Create hero candle rock formation
-Create materials for rock and wax
-Implement morph targets for candle rock meshes
-Implement canvas render target 2D masking for material blending
-Transition into boat sequence
After approaching the boat, leaving only bones, vines will grow up the bones and grass will start to grow and overtake the sand. Trees will sprout up alongside the path you walk, and increasingly grow larger, with branches looming over you.
I've already started to develop a system within my tree Blueprint to animate the primary branches and the trunks. By developing this, I'll hopefully be able to "grow" the trees around the player.
Some known stuff I'll have to do:
-Hopefully add curved tangents on branches
-Add leaves to trees
-Implement tree animating system
-Add vine growth to bone material OR add a spline-based vine