menu
 

Building a Car Racing System Using Wwise

사운드 디자인

Growing up, I was very keen on car racing games; from playing Namco’s R4: Ridge Racer Type 4 on PS1 in high school, to the realistic Gran Turismo (GT) series, to the Need for Speed series on PC. I still love racing, but I never had a chance to get involved in a car racing project with complex Wwise feature requirements in my work, so I decided to build a simple yet comprehensive car racing system for GT Sport myself, using Wwise (2019.2.10.7490). I hope that this experimental project of mine will bring a bit of functional and design inspiration to my audio friends. I believe that my general workflow will be familiar to most sound/audio designers when starting new projects. My process consisted of: research and analysis, settings optimization, asset creation, Wwise authoring, and overall implementation. This project is certainly not perfect, and I would appreciate any ideas, improvements, and/or corrections you may have!

This article consists of 7 parts:

1. Optimizing Audio Elements

2. Core Engine Features

3. Ambient Sounds

4. Braking, Collision, ESP Anti-skid, Curb Materials

5. UI Sound Effects

6. Sound Variations for Different Perspectives

7. Overall Implementation

1: Optimizing Audio Elements

In addition to the original audio elements,  I decided to add some UI sound effects (timing extension, ready, final timing, overtaking), gear-shifting, and UI tones (to align with the steering wheel visuals). Also, as you'll see in the video below, in addition to the 3 default views, I added left and right look-arounds, as well as a backward perspective change.

Here's what that looks and sounds like:

2: Core Engine Features

The engine uses a Blend Container to hold the going-backward, idling, and going-forward loops. The RTPC curves are defined by the pitch, volume and low-pass filter, and are associated with the "Speed" Game Parameter.

I used Switches to associate with the "Speed" Game Parameter, identify the gears at certain speed values, and determine whether the vehicle is going-forward or going-backward.

When the car goes forward, each time it shifts up to a higher gear (from the 1st gear), there will be an UI tone indicating the gear-shifting. However, when it goes backward, idles, and then shifts up to the 1st gear, there will be no UI tone. This is the forward gear logic.

From the highest speed down to the 1st gear, each downshift is accompanied by the exhaust-pipe sound. However, when going from the 1st gear, then to idle, and then backward, there is no exhaust-pipe sound. This is the reverse gear logic.

If we don’t make the distinction between the forward and reverse gear logic, both the gearing-up and gearing-down sounds will be triggered.

Let's have a look at the logic all together:

Gearing up:

1. Goes backward, idles, then shifts up to the 1st gear: without the UI tone

2. Shifts up to a higher gear (from the 1st gear): with the UI tone

Gearing down:

1. Shifts down to the 1st gear, idles, and then goes backward: without the exhaust-pipe sound

2. Shifts down to a lower gear (till the 1st gear): with the exhaust-pipe sound

3: Ambient Sounds

Tire noises and wind sounds: Same as before, I used a Blend Container to hold the light/heavy wind sounds and the light/heavy tire noises. The RTPC curves are defined by the volume, and it's associated with the "Speed" Game Parameter.

4: Braking, Collision, ESP Anti-skid, Curb Materials

For braking, I added 3D audio and applied an Attenuation ShareSet. This makes the braking sounds more real. Also, I created a "BrakeSense" Game Parameter (with values 1 - 100). A higher value means a shorter braking sound (i.e. a harder braking), and vice versa. It’s also associated with Switches.

For collision, I also added 3D audio and I applied an Attenuation ShareSet. When the car hits the curb, a natural collision sound will be triggered.

When you steer the car, there will be a subtle ESP anti-skid sound. To do this, I created a Random Container with 3D attenuations. It can be attached to the front-left and front-right wheels.

When the car runs on a gravel curb, there will be a 3D sound too. It makes sense to attach the sounds to the curb of the racing track. And you can expect a longer distance for the Attenuation ShareSet.

5: UI Sound Effects

I created a 3D Attenuation ShareSet for the UI_BeSurpassed sound so that it will be more convincing when the car is overtaken.

6: Sound Variations for Different Perspectives

In addition to the engine sounds, tire noises and wind sounds, the "Speed" Game Parameter is also associated with the gearing-up, gearing-down, collision, ESP anti-skidding, and braking sounds. A higher speed means a higher volume.

The busses are organized in detail. Note that the UI bus is ducked against the Race bus.

As I mentioned before, I added some view changes: left and right look-arounds, as well front and back views. By default, it only has three views: cockpit, hood, and third-person. Let’s see how this works:

Let’s take the front and back views for example. We only need a State Group to change the engine’s volume.

When you are in the cockpit and move your head from left to right (or vice versa), there will be panning effects and volume changes. To do so, I created a "ViewWindTyrePan" Game Parameter (-1 - 1). -1 indicates panning left, 0 indicates no panning, 1 indicates panning right. And I used RTPCs to control the panning and adjust the ViewWindTyrePan value.

I created an RTPC to control the spatialization and adjust the ViewEngineSpatial value (0 - 1). 0-0.3 indicates cockpit view (central mono channel), 0.3-0.6 indicates hood view (with subtle stereo effects), and 0.6-1 indicates third-person view (with full stereo dual channel effects).

7: Overall Implementation

Finally, I created the "Engine-Start" and "Engine-End" Events with delay applied. Now, let’s start/stop the engine, and try to gear-up/down. See what happens in the video below!

And that's my version of a car racing system for GT Sport using Wwise! Thanks for reading!

Johnson Jiang (江山)

Sound Designer

Johnson Jiang (江山)

Sound Designer

I am a sound designer with ten years of professional symphony orchestra experience and graduated from the Orchestral Department of the Wuhan Conservatory of Music. "Like the popularization and promotion of symphony, it is the mission of every audio designer to promote and popularize good audio design."

 @AudioJohnsonJ?s=05

댓글

댓글 달기

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

다른 글

Wwise 오디오 플러그인을 제작하는 간단한 과정

Wwise용 오디오 플러그인을 개발하는 것은 디지털 오디오 편집 프로그램 (DAW)에서 플러그인을 개발하는 것과 꽤 다릅니다. Wwise는 상호작용적이며 수많은 플랫폼을 지원하기...

27.8.2019 - 작성자: 조엘 로비쇼 (Joel Robichaud)

사운드 디자이너가 PureData + Heavy를 사용하여 DSP 플러그인을 개발하는 법 - 제 2부

제 1부에서는 Patch 파일을 사용하여 '블루프린트'를 제작하는 법을 설명해 드렸습니다. 이제 Heavy 컴파일러를 사용하여 '자동 워크숍'을 제작한 후, 이 자동 워크숍을...

24.11.2020 - 작성자: 천종 호우 (Chenzhong Hou)

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

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

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

Strata 멀티트랙 SFX 라이브러리를 먼저 사용해본 사람들은 이렇게 말했습니다.

Strata의 시작 지난 40~50년 동안 SFX 라이브러리 제작자들은 거의 동일한 방식으로 콘텐츠를 제작하고 배포했습니다.디자인한 사운드를 녹음, 믹싱, 렌더링하고 테마별...

1.12.2022 - 작성자: 시몽 아슈비 (Simon Ashby)

상호작용 음악: '여러분이 직접 선택하는 모험' 스타일의 발라드

2018년 크라우드 펀딩 캠페인을 성공적으로 마친 inXile Entertainment(인엑사일 엔터테인먼트)는 '웨이스트 랜드 3(Wasteland 3)' 게임의 본격적인 제작에...

23.5.2023 - 작성자: Alexander Brandon (알렉산더 브랜드)

Strata의 Physics(물리) 효과음 무료 샘플 | 충돌 사운드 디자인의 무한한 가능성

Strata에서 가장 다양한 곳에 사용되는 멀티트랙 효과음 컬렉션, Physics(물리)를 소개합니다. Strata Sample 03을 사용하면 Strata 독점 제공 컬렉션에서...

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

다른 글

Wwise 오디오 플러그인을 제작하는 간단한 과정

Wwise용 오디오 플러그인을 개발하는 것은 디지털 오디오 편집 프로그램 (DAW)에서 플러그인을 개발하는 것과 꽤 다릅니다. Wwise는 상호작용적이며 수많은 플랫폼을 지원하기...

사운드 디자이너가 PureData + Heavy를 사용하여 DSP 플러그인을 개발하는 법 - 제 2부

제 1부에서는 Patch 파일을 사용하여 '블루프린트'를 제작하는 법을 설명해 드렸습니다. 이제 Heavy 컴파일러를 사용하여 '자동 워크숍'을 제작한 후, 이 자동 워크숍을...

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

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