LOG_04: BEACH AREA PROCESSThis week we spent some time building out a stretch of beach. It belongs to a larger coastal level - one of the three major environments that comprise the story world.
We've been putting this off for a while, as priorities shifted to dialogue systems. We really enjoyed finally getting back to the coast, a space quite different than the forest we'd been building initially.
Here's a look at the process of bringing sea to shore.Usually, I'll start with a thumbnail sketch, just thinking about
general shape/motif. Each area theme is tied visually to narrative concepts this way. While forest is predominantly angular and very contrasty -- unyielding logic -- The beach employs curves, softer, cooler hues and sine wave forms meant to evoke openness & empathy:
Next is a more traditional level design
(LD) sketch. Here I'm focused on distance between points, major location features and relative asset scale. I use the lasso tool and a mono palette so I remain focus on those things, rather than art details.
That LD sketch is then used to identify
asset need. I sketch those very roughly, then move them to specific files grouped by type (flora, topography, etc). This first pass is always 'common' assets - stuff with high reuse. I'll do 'hero' assets for set piece locations and interactives in a much later pass, as being certain of scale and function is a necessity to avoid wasted art.
Motion of the OceanThe priority (untested) aspect of the beach art was nailing the 'flat' beach wave cycle. So we started on that first. I produced a mock-up image (constructed of final textures) in photoshop, just to make sure everything is visually in sync.
ignore the bigger waves - they're for another part of the coast :DNext, those textures are exported and bought into unity for
animation. We have several choices for animation, but regular unity anim is the fastest(if janky to use) option for the base wave asset, as exact control over timing was important.
After the wave timing anim is there, we move to secondary animation and effects. In short, more layers, color animation, some distortion shaders.
Happy with the main wave, next we had to address the
seam between sand and the main body of the sea. It's also where the player would be blocked, so some visual delineation helps. The wave covers this most of the time, but we need to know that's not too jarring in the few cases it is seen. In the end we went for a combination of a few planes - sea 'fill', rolling waves and an irregular distorted edge. It'll do for now.
Now the fun part starts. Deco, FX, polish. Jerry wrote a nice little
anim timing offset script so I could finally add the 'relief' waves. So a new wave is always arriving as the previous recedes. After timing is adjusted, the sea seam is never fully exposed.
Earlier, Jerry had also done some work on a
reflection shader. As a first test we set it up on some of the rocks.
Next, I dressed the dunes/inland with the other assets I'd prepared. Practically, I'm testing how well things transition from inland flora. The inland stuff will come into to play more in another area of the coast.
Finally, I set up some distinct
post-process and color adjustment for the inland area vs the beach. You may have noticed the base assets are fairly low in saturation and contrast. That's because it gives me more range to adjust in engine. Not quite like diffuse color + traditional lighting, but similar motivation.
For now this is where we ended up:
Still not
100%, but - it's definitely a beach! When we next revisit this I'll probably add a small crest in the sea for each wave, so there's a more definite source. We've also got to add FX for impacts on submerged objects, and for the Teller's footsteps and reflection.
Next tasks: Moving back to writing, dialogue/interaction feedback and preparing some reference for our composer/sound designer. Hope to have a stab at an area/main music theme by end of this month!