Lumote: Using Wwise to Drive In-Game Visual FX

게임 오디오 / 사운드 디자인

Hello to everyone out there in Wwise user land! My name is Paul Ruskay and I am the Audio Director at Studio X Labs in Vancouver, Canada. In this blog, I am going to explain how, in our upcoming Indie 3D Puzzle Platformer title: Lumote (PC, Switch, PS4, XBox One), I used the Wwise Audio Metering plugin to drive in-game VFX, such as particles, lighting, camera shaking and mesh warping. Due to Lumote being an indie title, I was given a great amount of time and freedom to experiment with the Metering plugin and to learn how to use it in the context of the game’s world and narrative. Since I was designing sound elements to specifically drive visual effects, I found many opportunities to create unique visual and auditory moments with this setup.

lumote2

Lumote is a colourful and beautiful 3D-Puzzle-Platformer slated for release on February 20, 2020 on Steam . It will be available on Switch, XBox One and PS4 later in 2020.

Overview

The process of creating game audio typically has the sounds being created after an animator or VFX artist has completed their work. Our task, as sound designers, is to create audio that will match to these finalized animations and visual effects. For Lumote’s development, I used the Wwise Metering plugin to “harvest” the sound design’s waveforms, in order to generate a RTPC value string that was fed back into the game engine, to drive various visual effects and animation systems. With a team of four devs and no animators, we needed to adapt our approach and we soon realized that a lot of visual interest could be generated in a procedural manner, by having the audio drive many of the game’s VFX systems.  This approach to audio-driven VFX has led to a game that feels very organic and fluid. I have an extensive portfolio of game audio production and this approach of driving visual effects from waveforms was new to me and a lot of fun.

The topics for this Blog are as follows:

  1. Description of Lumote
  2. Development Team
  3. Lumote’s Audio Design
  4. Metering Plugin Setup
  5. Examples from Lumote of audio driven VFX

About Lumote

Lumote is a game about two opposing powers. Blue power is controlled by Lumote and Red power is controlled by the Mastermote, the antagonist in our game. The player navigates Lumote through this 3D-Puzzle Platformer, in which the player has only two abilities: the ability to possess creatures and the ability to jump. Possession allows the Lumote to take control of the world's inhabitants, (the “Motes”) and to use their unique abilities to solve increasingly difficult puzzles. Depending on which energy controls a Mote, their behaviour will either help (with Blue Energy) or hinder (with Red Energy) Lumote’s goal of reaching the bottom of the world map and take control away from the Mastermote.

lumote3

Lumote is a 3D-Puzzle Platformer that will take the player on a 6-hour journey to the bottom of the world map. It was developed in a custom game engine (rEngine), coded for this project by members of the Lumote Dev Team (Kyle Rocha and Aaron Arnt)

The world of Lumote is broken into three biomes, each comprising three towers that need to be converted from Red Energy to Blue Energy before Lumote can proceed to the next series of puzzles. Each tower represents a Mote type and a specific game mechanic, that you must master by completing the tower. There are five Mote types in the game (Small Dumbats, Large Dumbats, Hover Movers, Jellyfish and Divertors). Each Mote has its own special ability that Lumote must master in order to reach the end of the game.

 

Lumote4

Early concept art for Motes. Some great character design that works beautifully in the context of the puzzle design. 

 

Development Team:

Lumote5

From left to right:
Michelle Rocha , Puzzle Design & Code             
Kyle Rocha, Code & Art   
Aaron Arnt , Code & Rendering          
Paul Ruskay, Music, Sound Design & Wwise Integration                


We all worked remotely, so our development environment was Perforce, Slack, rEngine and Wwise. We kept meetings to a minimum and used Slack as the primary means of communication throughout the project. Everyone worked within their respective silo, while easily being able to Slack someone when needed. Looking back, it's a great way to make a game, which provided me with the time and creative freedom to experiment with audio-driven VFX.
Luminawesome Games is an indie studio, located in Vancouver, Canada, and is made up of veterans from the video game industry. Every team member has worked on and shipped AAA titles, so there was a lot of development experience applied to Lumote. In October 2014, Kyle and Michelle were one of the winning teams in an Unreal Game Jam, with their mini game, Bump. They loved the concept and decided to develop it into a full game. Aaron joined in 2015 and it was decided then to move away from the Unreal Engine. Over the course of 2015, Kyle and Aaron coded a custom graphics engine, called rEngine, specifically for Lumote. I joined the project in March 2016 and was charge of music composition, sound design and Wwise integration.

Lumote’s Audio Design

The main goal of the sound design for this game was to create a world that would feel alive and expressive, whenever a player interacted with it. Lumote needed to sound and look organic, electronic and otherworldly. We were a small team with no animators, and so we needed to optimize our resources. With that in mind, we quickly realized that many of the Mote’s animations could be generated in a procedural manner, from their respective sound design. By using the Metering plugin, we were able to create an RTPC value string from the game object’s decibel meter, in its associated audio folder in Wwise. Kyle programmed the VFX in rEngine, which would take the RTPC output from Wwise and send it to lighting, particle emissions, camera shaking and mesh warping systems. So Lumote’s visual effects became literal translations of the waveforms being triggered from the game objects Wwise folder. That meant I would need to think about audio in a visual way. Below is a breakdown of what I came up with:

Lumote6

A constant pulsing sound applied to lighting would generate a strobe effect. The same sound applied to particles would create a constant stream. It was interesting to have to think about how the audio wave would translate visually as an animation, especially within the context of character responses.

 

 

The most time consuming task was developing the five varieties of Motes, as all five needed to communicate both their character State and their reactions to Lumote. The other challenging part of Lumote’s audio design was having to create two different sound sets for each energy type, per Mote (Red and Blue). At any given time in the game, the environment and the Motes could carry either Red Energy (Mastermote possessed) or Blue Energy (Lumote possessed) and as a result, each energy type needed to have a its own special audio treatment. This resulted in having two sound design versions for every game interaction, based on energy type. I had to effectively sound design the game twice to make all this work. Also, the Mote's sound design needed to blend harmonically with the music, as many of the Mote's voices were generated from samples of musical instruments (flutes, bells, whistles, etc). The musical style that best suited the environment was ambient, as I needed to create music that felt “underwater” and “otherworldly”. The ambient music would also not distract the player, who would need to concentrate to try and solve the spatial 3D puzzles. There are also no spoken words in Lumote’s character reactions, only vocalizations. This meant that no language localization recordings were needed, but it also meant the game’s narrative would be non-verbal and would have to be told through audio design and music alone. 

My inspiration would come from games like Inside, Limbo and Ori and The Blind Forest, that all have great “non-verbal” narratives that sustain interest, build tension and create convincing gameplay moments that communicate the emotional state of the main character.

Even though Lumote’s core gameplay loop of solving puzzles has a very simple sequence of audio Events, I discovered that there was an amazing amount of subtlety and variation that could be created within the game, for example, as Lumote possessed and changed a Mote’s energy State.  

Mote’s Core Audio Event Loop:
Idle – Hello – Goodbye (Blue or Red)
Idle – Hello – Possession Start – Energy Change - Move Start – Move End – Possession End – Idle Start
 
Lumote Core Audio Event Loop:
Walk
Jump
Double Jump
Land (RTPC driven based on falling distance)
Possession Start
Possession End
Mote Hello Reaction

 

Lumote has different reactions for each Mote type, based on the Energy State. It is apprehensive when greeting Red Motes and pleasantly cordial when meeting a Blue Mote.

 

Metering Plugin Setup and Wwise Setup

My goal was to create a Wwise project that would allow me to have maximum control over all game audio assets, with a minimal amount of programming support. To accomplish this, Kyle and I “paper-designed” the audio Event layer, based on game object groupings that shared common Events. This way we could have 80% of the audio Events being passed to Wwise before I even started the audio production. Our Switch categories and Common Events were:

Lumote7

With rEngine passing audio Events to Wwise, I set out to start building my folder structures and populating them with audio assets. By getting 80% of the Events passed from rEngine at the start of the sound development process, I was able to work independently and could create and test all of the audio elements with very little programming support. With a Dev team composed of only four people, it was obvious everyone needed to be as independent as possible.

 

lumote8

Kyle created a series of OutputMeter presets that I could assign to game objects to drive their lighting, animation and particles. The OutputMeter_Voice was used 90% of the time, because that was the preset that linked the RTPC from Wwise to the Mote's visual systems. 

AkGameObject, AkSoundEngine.PostEvent:

This is how we passed the RTPC from Wwise to the game’s engine:

1. We set the Mote Type Switch for each character in the game.

2. We then set PostEvent with a common Event like Common_OnMoveBegin and Common_OnMoveEnd.

3. We then used AK::SoundEngine::Query::GetRTPCValue() to read back the metering parameters from Wwise, based on the audio folder’s decibel meter. 

4. We post-processed those metering parameters in the game to modify the amplitude and frequency of a Sine wave, which is what drives the actual lighting, mesh animations, camera shaking and emissive material parameters.

 

What I found working with Metering Plugin:

1. We used the Metering plugin to reinforce Motes States and created creature voices for a range of States (idle, surprised, stop, start, power change).

2. The Metering plugin worked great as long as there was no “hangover” signal from the game object’s previous audio Event. I needed to spend time working in the Event layer to make sure a game object’s sound design had completely stopped before the next SFX was triggered. Any audio overhang from a previous audio Event would takeover the Metering plugin and not pass the new audio RTPC to the game engine. I also found that using Pause Events on a folder would also takeover the Metering plugin. It was best to stop playing a folder completely before triggering the next audio Event, so the Metering plugin remained available for the new audio signal.

3. Adding verb FX on Mote subfolders allowed for both audio and visual blending between different Mote States. It helped blend the separate sound folders into a cohesive whole.

4. Linking Impacts to the Pitch RTPC (for Impacts) yielded really interesting visual results. The lower pitched versions of the SFX created slower and broader visual effects.

lumote090

Conclusions

1. Lumote's sound design turned into an evolutionary process as I began to play around with the Metering plugin. When we hooked camera shaking to the audio of the Mastermote, it really brought the Tower Sequences to life.

2. Be open to crazy ideas and always pursue the most enjoyable and memorable experience for the player. Also, ask yourself: Is there too much sound in the game? I there enough “negative space” in the audio to allow the player to be comfortable in the game environment? 

3. "Paper design" the Event layer and Switch categories early.

5. Research the goals of creatives in other fields (coding, art, and design), and ask yourself how you can help the people working in those fields achieve their goals with audio?

 

 

Paul Ruskay

Audio Director

Studio X Labs

Paul Ruskay

Audio Director

Studio X Labs

Paul Ruskay has been an Audio Director at Studio X Labs in Vancouver Canada since founding this postproduction studio in 1999. He has produced audio for over 40 game titles during the past 26 years. He is best known for his music on Homeworld and Strike Suit Zero.

www.studioxlabs.com

댓글

Elise Baldwin

February 05, 2020 at 02:17 pm

Wonderful article and multi-disciplinary creative use of Wwise data. Super cool!

댓글 달기

이메일 주소는 공개되지 않습니다.

다른 글

Hitman 2: 최신 CPU에서 잔향(Reverb) 향상시키기

6 코어와 8 코어 CPU의 대중화는 아직 손대지 않은 여유 처리 능력을 게임에 사용할 수 있게 된다는 것을 의미하며, 그 중 일부를 플레이어의 오디오 환경을 향상시키는 데 사용할...

5.8.2020 - 작성자: 스테판 보예프 (STEPAN BOEV)

Wwise 미디 기본 지식: 뉴 슈퍼 럭키스 테일(New Super Lucky Tale)의 폭스베리 타이머 음악적 미디 마법!

안녕하세요 멋진 Wwise 사용자분들 :) 게임 오디오 업계에서 살아남기 위한 필수적인 스킬은 바로 문제를 해결하는 능력입니다. 사용하는 도구의 크고 작은 모든 면을 아는 것은...

8.2.2021 - 작성자: 애론 브라운(AARON BROWN)

텔 미 와이(Tell Me Why) | 오디오 다이어리 제 1부: 환경음과 보이스오버

'텔 미 와이(Tell Me Why)'는 DONTNOD(돈노드)가 개발하고 Xbox Games Studios(엑스박스 게임 스튜디오)가 출판한 싱글 플레이어 서사적 어드벤처...

4.5.2022 - 작성자: 루이 마르탱 (Louis Martin)

텔 미 와이(Tell Me Why) | 오디오 다이어리 제 2부: 음악

Tell Me Why의 음악은 본질적으로 캐릭터의 서사와 감정을 뒷받침하도록 설계되었습니다. 게임의 이야기는 두 주인공에게 아주 자세하게 집중되어 있으며 생각에 잠기기 쉬운 느린...

23.6.2022 - 작성자: 루이 마르탱 (Louis Martin)

Wwise를 사용한 반복 재생 기반 자동차 엔진음 디자인 | 제 2부

다시 뵙게 되어 반갑습니다! 이 시리즈에서는 Wwise에서의 간단한 반복 재생 기반 자동차 엔진을 구성 및 설계를 함께 살펴보게 됩니다. 디자인을 제어하기 위해 필요한 엔진 매개...

9.5.2023 - 작성자: 아르토 코이비스토 (Arto Koivisto)

Strata 작업 과정 파워업하기 | 2부 - "연결된 REAPER 프로젝트 열기"

Wwise를 REAPER와 함께 사용하는 사운드 디자이너라면 Wwise에서 작업하는 동안 REAPER에서 사운드를 다시 렌더링하고 싶은 경우가 종종 있습니다. 원래대로라면 관련...

15.8.2023 - 작성자: Audiokinetic (오디오키네틱)

다른 글

Hitman 2: 최신 CPU에서 잔향(Reverb) 향상시키기

6 코어와 8 코어 CPU의 대중화는 아직 손대지 않은 여유 처리 능력을 게임에 사용할 수 있게 된다는 것을 의미하며, 그 중 일부를 플레이어의 오디오 환경을 향상시키는 데 사용할...

Wwise 미디 기본 지식: 뉴 슈퍼 럭키스 테일(New Super Lucky Tale)의 폭스베리 타이머 음악적 미디 마법!

안녕하세요 멋진 Wwise 사용자분들 :) 게임 오디오 업계에서 살아남기 위한 필수적인 스킬은 바로 문제를 해결하는 능력입니다. 사용하는 도구의 크고 작은 모든 면을 아는 것은...

텔 미 와이(Tell Me Why) | 오디오 다이어리 제 1부: 환경음과 보이스오버

'텔 미 와이(Tell Me Why)'는 DONTNOD(돈노드)가 개발하고 Xbox Games Studios(엑스박스 게임 스튜디오)가 출판한 싱글 플레이어 서사적 어드벤처...