カーレースシステムをWwiseで構築

サウンドデザイン

高校生の頃にPS1でnamco『R4: Ridge Racer Type 4』をプレイした私は、リアルな『グランツーリスモ(GT)』シリーズからPCの『ニード・フォー・スピード』シリーズまで、カーレースのゲームに夢中でした。今でもカーレースが大好きですが、仕事で複雑なWwise機能を要するカーレースプロジェクトに関る機会がなかったため、自分で『GT Sport』用にシンプルでありながら包括的なカーレースシステムをWwise(2019.2.10.7490)で構築してみようと思いました。オーディオ仲間の皆さんにとって、私の実験的なプロジェクトが、少しでも機能面やデザイン面でのインスピレーションとなることを願っています。全体的なワークフローは、多くのサウンドデザイナーやオーディオデザイナーにとって新しいプロジェクトを始める時のお馴染みの方法だと思います。私の仕事の流れは調査と分析、設定の最適化、アセット作成、Wwiseを使ったオーサリング、そして全体的な実装です。なお、このプロジェクトは決して完璧ではないので、皆さんのアイデアや改善・修正のための助言をどうぞお寄せください!

このブログは次の7部の構成です:

1. オーディオ要素の最適化

2. 主なエンジン機能

3. 環境音

4. ブレーキ、衝突、ESP(横滑り防止装置)、縁石音

5. UIサウンドエフェクト

6. 視点別の音のバリエーション

7. 全体の実装

1: オーディオ要素の最適化

元のオーディオ要素に加え、UIのサウンドエフェクト(時間延長、準備完了、最終タイミング、追い越し)、ギアシフト、そしてUI音(ステアリングホイールのビジュアルと合わせる)も追加しました。また次の動画のように、デフォルトの3つのビュー以外に左右のルックアラウンドと後方視点も追加しました。

このような見え方、聞こえ方になりました:

2: 主なエンジン機能

エンジンの後退、アイドリング、そして前進のループはBlend Containerに入れています。RTPC曲線(カーブ)はピッチ、ボリューム、ローパスフィルタで定義され、ゲームパラメータ "Speed"に紐づけられています。

Switchを使ってゲームパラメータ"Speed"との紐づけを行ってある速度の時のギアを特定し、車両が前進しているのか後退しているのかを判断します。

車が前進する時は1速から上にギアシフトしていくたびに、ギアシフトを示すUI音が鳴ります。一方、後退してアイドリングしてから1速にギアを入れる時はUI音は鳴りません。これが前進ギアのロジックです。

最高速度から1速まで落とす時は、ダウンシフトのたびに排気管の音が鳴り響きます。一方1速からアイドリングに入れ、そして後退する時、排気管の音はしません。これがリバースギアのロジックです。

前進と後退のギアロジックを区別しないと、ギアアップ音とギアダウン音の両方が発動してしまいます。

ではそのロジックをまとめて見てみましょう:

ギア アップ:

1. 後退、アイドリングし、1速にシフトアップする:UI音なし

2. 上のギアにシフトアップする(1速から始めて):UI音あり

ギア ダウン:

1. 1速にシフトダウンし、アイドリングに入れてから後退する:排気管の音なし

2. 下のギアにシフトダウンする(1速まで):排気管の音あり

3: 環境音

タイヤ音と風切り音:前述と同様に、強弱の風切り音や、強弱のタイヤ音をBlend Containerに入れました。RTPCカーブはボリュームで定義され、ゲームパラメータ"Speed"と紐づいています。

4: ブレーキ、衝突、ESP(横滑り防止装置)、縁石素材

ブレーキには3Dオーディオを追加し、Attenuation ShareSetを適用しました。この方がブレーキ音がリアルに聞こえます。また"BrakeSense" というゲームパラメータをつくりました(範囲は1~100)。この値が高ければブレーキ音は短くなり(つまり強いブレーキ)、値が小さければ長くなります。これもSwitchに紐づけました。

衝突の音にも3Dオーディオを追加し、Attenuation ShareSetを適用しました。車が縁石にぶつかると、自然な衝突音がトリガーされます。

ステアリングを切ると、ESPのスキッド防止音がわずかに聞こえます。これのために私は3D減衰のあるRandom Containerをつくりました。これを左前輪と右前輪に付けることができます。

縁石に乗りあげ時も3Dサウンドが聞こえます。この音はレースコースの縁石に付けるのが理にかなっています。またAttenuation ShareSetの距離はもっと長くなります。

5: UIサウンドエフェクト

UI_BeSurpassedという音に3D Attenuation ShareSetを作成し、ほかの車に追い越された時にもっとリアルに聞こえるようにしました。

6: 視点別の音のバリエーション

ゲームパラメータ"Speed"はエンジン音、タイヤのノイズ、風切り音以外にも、ギアアップ、ギアダウン、衝突、ESP(横滑り防止)、ブレーキなどの音にも関係します。スピードを上げるとボリュームが大きくなります。

バス(Bus)は細かく編成されています。UIのバスはRaceバスに対しダッキングしていることに着目してください。

前述の通り、ビューに関しては左右の見回しや、フロントビュー、バックビューを追加しました。デフォルトのビューはコックピット、ボンネット、そして三人称の3つだけです。それでは結果をご覧ください:

例えばフロントビューとバックビュー。State Groupさえあればエンジンのボリュームを変えられます。

コックピットの中で頭を左右に動かすと、パンニングエフェクトやボリュームの変化があります。そのために私は"ViewWindTyrePan"というゲームパラメータ(-1~1)をつくりました。-1は左にパンニング、0はパンニングなし、1は右にパンニングを表します。またパンニングの制御やViewWindTyrePan値の調整には、RTPCを使っています。

空間化(スペーシャリゼーション)を制御してViewEngineSpatial値(0~1)を調整するために、RTPCを設定しました。0~0.3は、コックピット視点(センターモノラルチャンネル)、0.3~0.6はボンネット視点(控えめなステレオエフェクト付き)、0.6~1は三人称視点(フルステレオの2チャンネル効果付き)を意味します。

7: 全体の実装

最後に"Engine-Start"イベントと"Engine-End"イベントを作成し、ディレイを適用しました。それではエンジンをスタート・ストップさせ、ギアアップ・ギアダウンを試しましょう。動画で成果をご確認ください!

これが私のWwiseを使ったGT Sport用のカーレースシステムです。読んでくれてありがとうございます!

ジョンソン・ジャン(江山)

サウンドデザイナー

ジョンソン・ジャン(江山)

サウンドデザイナー

私はプロの交響楽団に10年所属し、武漢音楽学校のオーケストラ部門を卒業したサウンドデザイナーです。"シンフォニーを普及させ推進するのと同じく、優れたオーディオデザインを推進し普及させることは、全てのオーディオデザイナーのミッションです。"

 @AudioJohnsonJ?s=05

コメント

Replyを残す

メールアドレスが公開されることはありません。

ほかの記事

Wwiseを使った屋内音響のシミュレーション

23.7.2019 - 作者 エギル・サンフェルト(Egil Sandfeld)

UIデザインを切り口に、UIオーディオを考える – パート 1

12.3.2020 - 作者 ジョセフ・マルチューク(JOSEPH MARCHUK)

アンビソニックスで、ダイナミックなアンビエンスを実現

アンビソニックスを回転...

16.6.2020 - 作者 ルイス・ハビエル・ブッフォーニ(Louis-Xavier Buffoni)

レーシングエンジン音をREVで作成

30.8.2022 - 作者 徐巍

Strataワークフローを加速化する方法 パート1:Open In Strata(Strataで開く)

2023年1月27日更新:Strata_Open associated Strata project from selected audio file.lua...

4.4.2023 - 作者 アンドリュー・コスタ

インパルスレスポンスのリバーブで向上する音のリアリズム

10.9.2023 - 作者 Boom Library