3Dゲームにおけるサウンドの配置と再生方法の基礎を学ぶ。ただ鳴らすだけではない、環境音実装に必要な知識とは【CEDEC2024】

2024.09.02
CEDEC注目記事ゲームづくりの知識ゲームの舞台裏講演レポートCEDEC2024
この記事をシェア!
Twitter Facebook LINE B!
Twitter Facebook LINE B!

国内最大規模のゲーム開発者向け技術交流イベント「CEDEC2024」が、2024年8月21日(水)から8月23日(金)までの日程で開催されました。本稿では株式会社Prismaton代表取締役兼テクニカルオーディオデザイナーの木幡周治氏が登壇したセッション「環境音実装の仕組み作り ― 新しい基礎の提案 ―」の模様をレポートします。

TEXT / ハル飯田

EDIT / 神山 大輝

目次

オーディオならではの特徴と課題

本講演でスピーカーを務めたのはテクニカルオーディオデザイナーの木幡周治氏。近年はゲーム エンジンやオーディオミドルウェアの充実によって環境音実装が以前より簡単になったとの見方もありますが、実際は必要な機能の不足や具体的な手法が共有される機会の少なさによってハードルは高いため、こうした課題を少しでも解消する機会として今回のセッションの場が設けられました。

セッション冒頭では「オーディオ制御ならではの特徴」についての確認からスタート。音は音源位置や減衰範囲など非常に複雑かつ独自の特徴を持っており、急に途切れるとプレイヤーにとって違和感やノイズの原因となってしまうことから、「変化の連続性」も重要です。

また、必要な音であっても、何重にも鳴らしてしまうとうるさく感じられる上に処理負荷にも繋がるため、特に環境音については「この位置ではこの音が鳴る」と網羅性や排他性などを確保した制御が求められます。さらに、リバーブや遮蔽物などを考慮した音響空間表現の影響も複雑です。こうした事情から、聴こえる音や制御の状況を確認しながら制作できる環境構築も重要になります。

これだけ特殊な要素を持つオーディオ制御を行うにはどのような点がポイントとなるのでしょうか。環境音について考えてみると、現実空間と同じように「音が鳴っている場所から、シンプルに音を流せば良いのでは?」と思われるかもしれませんが、音源が極めて多い上に目には見えない地点からの音もあるため、“無数の音源からそれぞれの音素材を個別に鳴らす”という実装は現実的ではありません。

また、音声の再生にも負荷がかかるため、発音数には制限があり、雨音などの連続して鳴っている音が同一の波形だとフランジング(※)の原因にもなります。さらに「葉っぱ一枚が擦れる音」というレベルにまで環境音を細分化すると、今度は収録や調整が難しくなる上、耳なじみのない音になってしまいます。
※ 全く同じ音の波形がわずかにずれた状態で再生されることで、フィルターが掛かったような違和感が生じること

同時発音数は100音程度に抑えないと、1音ずつのクオリティを上げられない

こうした理由から、音素材は全てを個別に設定するのではなく「ある程度のまとまりに対して1つの音素材を割り当てる」ことになります。扱いやすい素材になる反面、各音源がただ一点からの音として表現できなくなることには注意が必要です。

しかし、実際の実装では焚火などの「一か所から鳴る音」だけでなく、川や滝、草など群体に対する音の配置や、森や洞窟のようなロケーション、あるいは室内外で音が変わるなど環境音の切り替えや変化にも対応しなければならず、天候などの条件に応じた環境音の切り替えなども含めると膨大なケースが考えられます。

3D背景に紐づけた配置の仕組み

ここからは実際に音を配置する仕組みについての紹介がありました。配置の仕組みについてはまとまりごとに「音を配置する」という要素、ロケーションに応じて環境音を切り替えていく「エリアを区切る」という要素、そして場所に応じた「パラメータ制御」という大きく分けて3つの制御があります。

まず「音の配置」について、配置を考える基準として紹介されたのは「音源位置」で判断する方法です。点に近いオブジェクトには点や球の音源を、川なら線や折れ線の音源が、そして滝は面や折れ面の音源が必要となります。しかし、この考え方だけでは「どの範囲にどの程度聴こえるのか」が上手く指定できません。

次に「可聴範囲」を基準とした音源の配置も考慮してみます。この場合は扱いやすいボックス形状から部屋に重ねやすい多角柱、特殊な形状にも対応できる円柱などの音源が必要になると考えられ、こちらも同様に複合的な形状群が想定されます。これだけでも既に「いろいろな“音源の形状”がなければサウンドは上手く置くことはできない」ことが分かります。

形状ごとの内部と可聴範囲

ここまでに、環境音の配置は「複数の素材をまとめた」音源が「さまざまな形状」で配置される必要があることが分かりました。では、その内部と減衰範囲の処理はどのようになっているのでしょうか。今回考えている形状は音源の集合体となっているので、形状の内部では「全方向から音が聴こえてくる」という、効果音の実装ではなかなか考えづらい状況にもなり得ます。

そして、その外側では減衰範囲(可聴範囲)があり、内部に近いほど大きく、遠いほど小さく音源が聴こえるエリアになっています。この可聴範囲の形状は距離や遮蔽のみで決定されるだけでなく、距離ファクターなどを利用して配置機能側で制御できることが求められるもので、木幡氏は「こうした配置が出来る機能でないと、なかなかサウンドをきれいに置くことができない」と語りました。

こうした形状の音源位置はリスナーの位置によって異なり、リスナーが内部に存在する場合はリスナーに重ね、減衰範囲に存在するのなら形状内の最も近い点が音源位置として追従します。そしてリスナーが移動しても自然な連続性ある聴こえ方となるようなパンニング(※)のため、音源が内部に近いほど全方向から聞こえるよう、オーディオミドルウェア機能側での設定が必要になります。
※ 音がどの方向から聞こえるかを割り振ること

可聴範囲(図の外円)にいるリスナーに対しては内部(図の内円)に最も近い位置が音源になっている

内部でさまざまな音素材がなる形状でも、少ないモノラル素材の音だけでは立体感に欠ける表現となってしまいます。内部ではマルチチャンネル素材で、そして離れていくと徐々にパンニングされるようになると木幡氏曰く「嬉しい」表現が可能になります。これに加えて、離れていくにつれてモノラル素材にクロスフェードされる制御や、各チャンネルの音量バランスだけでの調整などのパンニングパターンが存在し、やや応用的な例として各チャンネルの割り当てを動かすことでチャンネルを無駄にせず方位性を表現する手法も紹介されました。

図はチャンネル割り当てを動かしてパンニングしている例のイメージ

続いては「可聴範囲を基準にした形状にする場合、音源位置はどこになるか?」を考えてみます。ボックス形状を先ほどまでの例における内部として考えてみると、周囲に丸い可聴範囲があるのは自然ではなく、むしろボックス形状そのものを可聴範囲とし、周囲6面にそれぞれ「減衰深さ」を指定することで部屋の壁を越えて音が聴こえない設定なども可能になります。

図の緑が濃い部分ほどよく聴こえる範囲になるイメージ

多角柱形状の場合は減衰設定に難しい計算を必要としますが、上手く設定ができれば非常に便利で、複雑な形状の建物にピッタリと貼り付ければ「建物の周囲では音が聴こえず、出入口では少し聴こえて、中に入ると大きく聴こえる」という表現も可能になります。

図の多角柱は「上と右に出入口があるビル」のようなイメージ。出入口にあたる辺は他辺に比べて薄く可聴範囲が広がっていることが分かる

音源飛びを防止し、調整もしやすくなる「形状群」

そして、話題は「形状群の取り扱い」へ。例えば、くの字に曲がった川に沿って折れ線の音源を設定し、「最も近い点を音源とする」ようにした場合、キャラクターがわずかに移動するだけで音源が大きく移動してしまう「音源飛び」が発生する箇所が出現してしまいます。

最もリスナーに近い位置を音源に設定すると、折れ線では僅かな移動で音源が大きく飛んでしまうことも

音源飛びの防止として凸形状ごとに音源位置を算出し、それぞれの音源を独立したものではなく総合的にパンニングすることで違和感のない表現を行います。これは複数のポジションを一つとして音を鳴らすマルチポジション機能の活用、あるいは重みづけ平均を使うことで可能になる仕組みで、音飛びなく形状群を扱えれば形状の自由度が上がるため、木幡氏も「これは落としちゃいけない重要なポイント」と語っていました。

重みづけ平均の例が示されたスライド。内部にいると重みが∞に、範囲外になると重みが0になるような式を設定している

自然な聴こえ方を追求する工夫

続いてはリスナー位置の取り扱いについて。3D作品ではカメラ位置にリスナーを配置するケースが多いですが、付近の環境音を大きく聴かせたい場合などはプレイヤー位置での判定が良い場合もあります。

プレイヤーの近くにはない滝がカメラ付近にあって大きな音が鳴ってしまうケースや、リスナーとなるカメラの回転によって部屋を出入りして聴こえ方が変わってしまう現象など想定外の変化が起こるのを防ぐ手法として、プレイヤー位置判定への切り替えは有効です。ただし、改めて減衰範囲などの補正が必要となるため、仕様検討は難しくなる手法であるとも紹介されました。

配置に関する最後の話題は「応用的な配置機能」。今回は川に使用する例として紹介された折れ線の形状も、川幅が広いところでは内部は太く、狭いところは細くするような形状操作が求められることもあります。他にも「壁の向こうに可聴範囲がはみ出すのを防ぎたい」「部屋の中のさらに特定の場所だけなって欲しい」という場合には形状のInteresect(交差)やSubtract(型抜き)での対応も必要で、自分で形状を実際に配置してみるとこうした欲しい機能は無数に出てくるため、実装を行いながら適度な妥協点を探っていく必要もあると述べられました。

妥協点の探り方については「技術や音に詳しい人、実装に慣れている人などいろいろな人と話してみるべき内容なのかな」と一案を示した木幡氏

エリア区切りとパラメータ制御 

ここからは配置の仕組みの中で「エリアを区切る」の紹介へ。エリアの区切りはロケーションに応じた環境音の切り替えなどがその例で、ゲーム内では「森でも街でもある」という状態にならないよう、常にどこかひとつだけのエリアに属する制御が必要です。形状のある場所では優先度をつけるか、形状が無い場所では「このマップは大半が森なので、デフォルトでは森に属する」というエリア設定での対応が行われます。

また、2つのエリアの境界をキャラクターが往復して移動した際に何度も音が切り替わると不自然であるため、不連続挙動への対応も必要です。一度音を切り替えた後には大きく移動するまで次の切り替わりを抑制・保留する手法や、2つのエリアが重なって影響がクロスフェードする区間を設けるなどの対応が例として紹介されました。

配置に関する最後の制御は「回廊型のマップを進むほど環境音が大きく(小さく)なる」ような、特定の場所だけの演出を可能にする「パラメータ制御」について。こちらは形状で減衰距離に応じたパラメータ制御で応答する場合や、パラメータ制御専用に濃淡がついた形状を新たに作成して対応することもあるとのこと。

また、音の配置ではマップに入った瞬間の判定数の多さによって処理負荷に課題が生じるなどエンジニアリング面での課題にぶつかることもあり、遠方の判定をスキップするなどの工夫も求められます。デバッグに際しては耳だけでの挙動把握は非常に難しいため、判定状態の表示などデバッグ機能を充実させることも作業効率の観点では非常に重要であると紹介されました。

リバーブや遮蔽、室内外判定への活用

ここからはトピックは更なる音響空間表現へと移り、「リバーブ」に関しての解説が行われました。現実空間でのリバーブは、音源からリスナーへと届く全て反射経路を足し合わせた音が聴こえています。しかし、この複雑な現象を正確にシミュレーションするのは非現実的です。リバーブを実装するための対応策として、木幡氏が実際に取り組んだ経験としてレイキャストを利用したリアルタイム判定や事前計算した情報の焼き込みを紹介されましたが、より簡易的な「エリアを区切ってリバーブを鳴らす」ことでも対応が可能になります。

リバーブの判定位置を決めるための手法は音源側とリスナー側の両方の関係性で決まりますが、2者の位置関係を全パターン作成しておくのは複雑かつ負荷が大きい仕組みになってしまいます。そのため現実的にはどちらか一者の場所判定で妥協することになりますが、どちらを元にしても正確性はあまり変わらないため、複数ある音源よりもリスナー側で判定を取った方が「大体のケースでお得」であるとのこと。

音源側だけが響く場所にある場合など特徴的なケースは別途検討する必要があることにも留意が必要

リバーブと同様に、遮蔽や室内外判定を行う場合は、単に見えない音源の音量を下げるという簡易な判定であれば扱いやすいものの、遮蔽をより魅力的な音響空間表現に使用するのは非常に難しいとのこと。「室内に入ると雨風の音が弱くなる」「室内から外へと音楽が漏れ聞こえてきて、室内に入ると大きくなる」という表現なら、今回紹介した3D背景への配置も効果的になっています。

環境音と異なり、音楽の制御には「ゲーム上の意味」による変化が必要で、ゲーム内で街に入った際に地名が表示されるなどのGUI演出があるなら、同時に音楽が変わるような整合性が必要です。

最後は応用的な内容として環境音の自動配置についても紹介されました。配置作業は「自動化したい」という気持ちも生まれるものですが、手動実装が見えてくればこそ自動化など応用的な制御にも着手しやすくなるため、まずは手動での実行が基礎であることも確認されました。

その複雑さ故にゲームエンジンやオーディオミドルウェアでの実装が上手くいかないことも多い「3D背景に紐づいたオーディオ制御」についてさまざまな特徴が紹介された本講演。木幡氏はこうした制御によって成り立っているオーディオを「3D上のサウンドスケープ(音風景)を制作する規模の大きいツール群」であると表現し、あまり簡単に捉えられるものではないことを知って欲しいと述べた上で、この講演が仕組みの構築や必要性の周知に役立てば嬉しいと講演を結びました。

環境音実装の仕組み作り ― 新しい基礎の提案 ― CEDEC2024「Prismaton」公式X
ハル飯田

大阪生まれ大阪育ちのフリーライター。イベントやeスポーツシーンを取材したり懐ゲー回顧記事をコソコソ作ったり、時には大会にキャスターとして出演したりと、ゲーム周りで幅広く活動中。
ゲームとスポーツ観戦を趣味に、日々ゲームをクリアしては「このゲームの何が自分に刺さったんだろう」と考察してはニヤニヤしている。

関連記事

サウンド担当者が開発中タイトルの最新仕様を知るには?『ゼルダの伝説 ティアーズ オブ ザ キングダム』の“フラットなモノ作り”を実現した開発環境【CEDEC2024】
2024.10.04
『ストリートファイター6』CPUが人間のように戦う。プレイ状況によって失敗もする、各キャラらしい戦術で動くAIの作り方【CEDEC2024】
2024.09.25
恐る恐る設定をいじらずに済む、CG制作のための「カメラ講座」。フィルター効果や陥りやすい錯視など、アーティスト向けに光学現象からバンダイナムコスタジオが解説【CEDEC2024】
2024.09.22
Cygamesが「CEDEC2024」の講演資料を公開。『GRANBLUE FANTASY: Relink』開発事例の紹介や、AIを活用した社内リソース検索への取り組みなど全10講演
2024.09.18
ゲーム実況の配信ガイドラインは誰のため?590件の調査から見えてくる狙いと法的効力、作成時の留意点と配信者の利用方法を弁護士の見解を交えて解説【CEDEC2024】
2024.09.10
内製エンジン製『GRANBLUE FANTASY: Relink』のシネマティクスでUnityを活用。没入感を支える技術と映像美のこだわりを反映できるワークフロー【CEDEC2024】
2024.09.09

注目記事ランキング

2024.09.28 - 2024.10.05
VIEW MORE

連載・特集ピックアップ

イベントカレンダー

VIEW MORE

今日の用語

レンダリング(Rendering)
レンダリング コンピューターグラフィックスにおける、各種データ(3Dモデルなど)をプログラムを用いて計算し、画像として表示すること。レンダリングを行うプログラムをレンダラー(Renderer)と呼ぶ。
VIEW MORE

Twitterで最新情報を
チェック!