This is the first post for my Tech Tuesday posts. From now on, I will be posting tech art threads in addition to my senior project PPJ's for Groundless. In these submissions I will focus on the progress of effects I make and also include a few of the links I found helpful along the way. I will also include the issues I ran into as well as solutions that could fix them.
I've decided to do this because during GDC I received great feedback from the developers I spoke with. One of the greatest tips I got from almost everyone I spoke with was "Just make stuff". That motivated me to create a list of effects and shaders I wanted to replicate.
Interactive Floor
The first effect I wanted to make appeared on the Unity3d sub-reddit. Sine VFXs posted a video that showcased a floor that actually interacted with the player as they walked across it. In the preview it either rose up to the player's feet or lowered down to their level. It was an interesting idea and I wanted to recreate it.
A few days later it seemed like another redditor had a similar idea and posted their video recreating the effect too. This post was incredibly helpful because it pointed me in the direction of Particle Triggers to identify what particles were near the player. After testing the collider by just changing the color of the particle, I moved ahead with making the particles spawn in a grid pattern. In this process I also looked into displacing the particles with perlin noise to achieve the wave effect. I found that it is similar to displacing a mesh plane's vertices in a water wave script.
My biggest issue right now with the script is the fact that I haven't figured out a way to make the particles move smoothly between the Inside trigger and Outside trigger states. Inside of the collider, I want the particles to SmoothDamp translate towards the player's feet like in the first image below, but the issue arises when I add the perlin noise wave. When I add the extra transform information, the particle jumps back and forth rapidly. It's ugly looking. In the second image I have perlin noise, but the Inside particles are just transformed and clamped.
Right now the perlin noise is inside of Update and it effects all of the particles in the array. Possible ways to fix this could be:
1. Find a way to ignore particles that are inside of the collider when applying the noise
2. Add to the inside particle's transform slowly over time rather than set a point on trigger
2. Add to the inside particle's transform slowly over time rather than set a point on trigger
Melting Shader
After spending a couple of days on the particle floor, I wanted to take a bit of a break with it and look into another effect I had on my list. This effect was inspired in part by Guardian of the Gears at GDC. The student team from DigiPen submitted their senior project from a year ago to the contest and had a booth setup in the IGF area. I played their game a bit and even got in contact with their technical / character artist Cameron Craig. In speaking with him, I learned of one technique they used for quick level design, which was having a UV-less shader material on all of the level objects. This let them quickly texture everything with minimal effort.
Researching this effect further, I found a Joyce [MinionArt] tutorial on a similar effect. What was different about her shader though, was that it included parts of a melting shader from Cone Wars when merging land geometry. So I decided to start there. With the melting shader. In it's current state the melt deformation works as planned! Currently the melting is applied at a y-axis value rather than other colliders, but it's a good first step. The color of the material also changes in the melted state, and can be edited to be wavy or fade. In Joyce's case, the material is a hard transition between the grass and stone texture.