Behind the Sound of I Am Fish

游戏音频 / 声音设计

I Am Fish is a charming, physics-based adventure which sees the player take the fortunes of four intrepid fish friends into their hands as they try to escape for the sea. It was developed by London-based Bossa Studios and is a spiritual successor to their earlier hit I Am Bread. The game features a variety of bizarre physics-based vehicle audio, dynamic music, a bunch of systems to handle water (would you believe), as well as the challenge of making the player feel like four very different fish. The audio designer for the project, Ali Tocher at LookListen Audio, was asked by Audiokinetic to share a few tricks, tips and takeaways from using Wwise on the game.

So let’s dive in! (Sorry, I will try to keep piscine puns to a minimum, but they were a mainstay on our team slack so I might have to Plaice a few in [groan])

fish key art

Dynamic Vehicle Audio

I Am Fish lets the player/fish control some unusual and bizarre vehicles which were a blast to make sounds for. Mop buckets, dumpsters, observation tanks, beer glasses, mine carts, large jars, a spherical fish bowl, luggage, a cube of ice, an inebriated human male and more! I wanted to share a couple of details on the design and usage of Wwise for two of these.

Spherical Glass Fish Bowl

The fish bowl audio needed to be readable at both very low speeds but could also reach very fast speeds for a decent amount of time. Initial tests on layers and processing for a rolling glass object showed that a traditional vehicle approach of pitch ramping through a blend of layers was not going to work. From recording and analysing a bunch of glass things rolling and spinning around, I realised that the main “sound of rolling” is defined by a sine sweep that describes a full rotation, and this should slow down and speed up based on roll speed. My first attempt of chopping up and recombining individual rotations was fruitless, so I settled on the approach of using an LFO in Wwise to create this shape dynamically in a designed piece of noise.

As you can see in the video, I set up a parametric EQ on the mix busses for rolling sounds, (in-picture left) then used a rolling speed parameter to control the Attack, Depth of Frequency of an LFO (in-picture right) to apply the “sound of rolling” to the noise layers.

A couple of notes beyond what’s shown here: 

• I’ve isolated just the rolling in the video, there are water layers and fish movement layers present too in-game. However, I kept the bowl impacts as they do a crucial job of covering some janky frames when the ball goes from very fast to stopped and also registers the ground.

• We do a check to see if the vehicle is grounded as there are plenty of airborne moments and this is a surface layer.

• You can hear it only faintly in this video example, but at high speeds a glassy texture is added as an alarm to let the player know they have reached a speed which will cause the bowl to smash if they don’t lose momentum.

Ice Cube Vehicle

I wanted to quickly share one thing about the ice-cube vehicle too, shown in the video. Mostly it was fairly straightforward to use this vehicle’s momentum to drive RTPCs, however I was struggling with the impacts; and they are the key layer for gameplay feel. I solved this by using angle of impact for the first time; so there are two types of designed impacts - scrapes (when the angle of impact is between 10-60 degrees) and hits (when the angle is 60-90 degrees), which are selected using Switch Groups. This seemed very obvious once I’d found the solution but took me a while to recognise.

img1

Water

I could trickle on at length about how we made the water sound splash off the screen… But I’ll just pick a couple of things.

Surfaces and edges

As those who have attempted it before know, water is a little bit tricky for object-based audio and the use of a spline system to move the sound source relative to the player is required. I focused on two uses of this to try and get good coverage for water audio. First was getting our graphics programmer to define a “surface boundary” for each body of water, shown with the red line. Secondly I also defined “traversable edge” regions (shown in yellow), for edge areas that were important to gameplay, usually because they were the player’s destination.

img2

As you can hear in the following video, the surface spline is located directly below the camera to enable the sound to attenuation for camera height, but importantly it also stops when it reaches the red marked boundary, and waits there until the player returns; as our puffer friend has a real penchant for getting out of bounds!

Water, music and how not to make it all sound dull

From day one of this project I had a big question on my mind. How do I make this game not sound dull and flat when I’m underwater, when I know that the allegory for underwater is to roll off a bunch of high frequencies? The answer came to me from the music. The score of I Am Fish is intended to mirror the emotional state of the fish, especially as the game plays a lot with things that seem unthreatening on their face but are rather different when you’re a 10cm goldfish. Fish like being in water, so I had the idea to flip the dampening idea on it’s head. What if the music was dampened when the camera is out of water (in the human domain) and full spectrum when the camera goes back underwater to the fish’s happy place! This gave me the added benefit of creating room in the mix for ambience above water while covering the LPF effect when submerging. They always say; you know a design solution is good when it starts solving other problems too! We also extended this to maintain full frequency music if the player is above the water and also using their special ability (ie. flying/rolling/biting). 

Fish Movement and Specials

Foley is always a treat to do, and that’s still true for fish! But get ready to unhook a lot of footstep concepts you’re used to! I’ll share a couple of things about how the sounds for the actual fish came together.

img3

Fishy footsteps?

This was another example of expectation reversal. The default view that “as video game character moves faster, more foley audio is heard” turned out to be untrue for our fish. The important player feedback and correct feel was that activity was heard from the fish’s tail mostly during maneuvering; ie. changes of direction or speed, but while the fish is heading in a sustained direction then water pad layers (or wind if airborne) were better to convey speed. Frankly I didn’t have the first clue how I was going to do the movement sounds for these fish coming in so it was very rewarding to find a solution that felt right. In the end a simple loop of high pitched bubbling that was processed using pitch and filters did the heavy lifting, as shown in the video.

Adding personality to the fish

The fish are the stars of the show in our game. Here are a couple of highlight sounds.

Pufferfish

The puffer fish’s special ability is to inflate, giving it the properties of a ball - rolling, bouncing etc. It reminded me of a semi-inflated foot[soccer]ball. 

Here it is in action:

Piranha

The piranha was, perhaps predictably, quite bitey. It reminded me of a small dog, so I scoured my library for snuffles, whines and gnawing and made a fun dynamic instrument. Having a dynamic loop helped out with a game design challenge too. When the piranha has successfully bitten a gameplay prop, the player must use the main input control to wiggle the prop free. With no sound this was confusing as the player could no longer move, but left-stick wiggle = more growly-barking exertion sounds seemed to get the message across well.

Thanks to Audiokinetic and Bossa for asking me to put this together. I hope you were able to take something useful away from it. I hope you all enjoy a well earned rest this coming holiday season!

Ali Tocher

Audio Designer

Ali Tocher

Audio Designer

Ali Tocher is a freelance audio designer and Director of LookListen Audio, based in Stroud, UK. He is a 2020 Bafta Breakthrough for games. Alongside working with a wide range of indie and AAA dev teams, Ali also makes audio for hospital and medical care projects using the power of game audio middleware.

 @Ali_LookListen

评论

留下回复

您的电子邮件地址将不会被公布。


更多文章

为何在制作高预算游戏时有必要使用音频中间件?

在本文中,我将从个人观点出发简要阐述使用 Wwise 的几点好处。尤其是在制作高预算游戏时,它的优势会更加明显。 我们先来总结一下使用音频中间件的普遍好处: 提升工程的声音品质。 ...

29.4.2019 - 作者:_Samy Elia Colombano_

小型游戏项目使用Wwise的五大好处

假如您是游戏音频领域的从业人员,并且之前参与制作过小型游戏项目,八成听人说过下面这样的话: “就我们的需求来说,有必要使用像 Wwise...

19.12.2019 - 作者:亚历克斯·梅 (Alex May)

在当代从事声音设计行业:电影,游戏和新型应用

声音设计手法可大致分为线性和互动两种。就应用领域来说,它们分别对应影视和游戏。随着技术的发展,近年还出现了像 XR...

22.6.2020 - 作者:大卫·格林巴姆 (David Grinbaum)

FPS游戏中枪械模块的音频设计思路

大家好,我是JYUN,近期作为音频设计师参与开发了一款FPS端游,梳理了一些开发过程中碰到的设计点,希望和同行老师朋友分享交流。文本内容基于个人经验和理解,仅供参考。...

22.6.2021 - 作者:谢玮

Tell Me Why | 音频日志 – 第 1 部分:环境声和 VO

《Tell Me Why》是一款由 DONTNOD 开发、由 Xbox Games Studios 发行的单人叙事冒险游戏,支持的平台包括 Xbox 主机、Windows 10 和 Steam。...

22.3.2022 - 作者:路易斯•马丁 (Louis Martin)

“不”字诀

由于社区中已经有很多更好的人在写声音设计和技术实现相关的内容,我借此机会写一篇与我2018年的博客《我理想中的工作环境:以游戏音频行业为例浅谈雇佣关系的人性化》关联的姐妹文章。...

21.6.2022 - 作者:戈登·麦格拉德里 (Gordon McGladdery)

更多文章

为何在制作高预算游戏时有必要使用音频中间件?

在本文中,我将从个人观点出发简要阐述使用 Wwise 的几点好处。尤其是在制作高预算游戏时,它的优势会更加明显。 我们先来总结一下使用音频中间件的普遍好处: 提升工程的声音品质。 ...

小型游戏项目使用Wwise的五大好处

假如您是游戏音频领域的从业人员,并且之前参与制作过小型游戏项目,八成听人说过下面这样的话: “就我们的需求来说,有必要使用像 Wwise...

在当代从事声音设计行业:电影,游戏和新型应用

声音设计手法可大致分为线性和互动两种。就应用领域来说,它们分别对应影视和游戏。随着技术的发展,近年还出现了像 XR...