I have recently been working on some visual touches to the game now that I have some more final assets and animations implemented. I wanted to create an animated surface to the ocean that players will see from below.
First I attempted to animate it by hand, frame by frame, like I have been doing with other assets. I wanted a simple white foam effect that can often be seen in more cartoonish art styles.
I wasn’t really happy with the effect I could achieve by hand. So, after a few unsuccessful attempts I decided it might be more effective to try and program a slight deformation effect to a single surface texture instead.
I followed some very helpful tutorials to try and get to grips with Unity’s shader language as I don’t have any experience programming shaders. I started by reading a lot of this tutorial on the basics : https://catlikecoding.com/unity/tutorials/rendering/part-2/
I then worked on adapting the parts I needed from a tutorial (https://roystan.net/articles/toon-water.html) on developing a toon water shader.
After working with different examples and tutorials for a couple of days I achieved a simple wobbling effect but couldn’t achieve quite the effect I wanted. I had problems with the frame-rate with my first attempt. I then tried another way and had problems with making the effect appear random and not like a cycling pattern. I also needed to figure out adding transparency to the shaders as well to achieve what I was imaginging.
So after some trouble with shaders, I have decided to focus on creating hand drawn animations instead. I would like to look into shaders again at some point in a future project though as I have come to realize how useful they can be for almost any visual effect.
This is a cycling wave animation that I made, I think it looks appropriate at the surface of the water. I have decided to commit to the sort of orthographic 2D style rather than the vague perspective view that was suggested by the backgrounds I have been using that show the surface of the water from below.
I have also done a little bit of Foley by recording some splashing water sounds using a large water bottle. It took a little while to find the right bottle and the right amount of liquid to get the kind of splashes I wanted for when the player dives in and out of the water. I then needed to spend a little time slicing up the sounds I recorded and EQing them to get them just right. Next, I just popped all the sounds into FMOD and got them working how I wanted. I added some randomization to be sure no splash in the game will sound exactly the same.
Here is one example of a splash effect I recorded.