2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ADX+UE5で3Dサウンド(音響)を実装する(改訂版)

Last updated at Posted at 2020-06-03

はじめに

ADXアンバサダーとして執筆しておりますSigと申します。
この記事では、アンリアルエンジン5とサウンドミドルウェア「ADX for UE」を連携させ、
ゲーム中の3D空間におけるサウンド挙動を細かく設定し再生します。
サウンドオーサリングツール「AtomCraft」で実際の聞こえ方を確認しながら音の調整が可能です。
また、ADX新バージョンに搭載された「Atom Attenuation」アセットを使い、UE5側でサウンドの距離減衰を細かく設定することもできるようになりました。

ゲーム上でプレイヤー(カメラ)の位置が音源から近ければ音は大きく再生され、遠ければ小さく聞こえるようになり、さらに音源のある方向のスピーカーから音が大きく再生されます。
また音源となるオブジェクトが移動した場合音の聞こえ具合が変わり、視覚に頼らずともものが移動したことを伝えることができます。
環境音以外にも、重要な情報を含む会話ボイスの強調やホラーゲームの演出などにも役立ちます。
FPSやTPSなどの索敵が重要なゲームにおいて、プレイヤーに敵の足音から位置を推理させる、などのゲームプレイにもつなげることができるでしょう。

補足ですが、UE5にはデフォルトでもサウンドの距離減衰(Sound Attenuation)機能があります。
インポートしたサウンドに対して手動で設定を変更することで使用することができます。
https://docs.unrealengine.com/ja/Engine/Audio/DistanceModelAttenuation/index.html

当記事ではUE5.2を使用しています。
基本的にブループリントのみでの実装を想定しています。
ADXはインディー向けの「LE版」であれば、無料で使用できます。
https://game.criware.jp/products/adx-le/

なお、ADX2はADXへ名称が変更になりましたが、ツール構成は変更ありません(2がないから古いほう、というわけではありません)。

記事執筆時点のADX for UEのSDKバージョンは「ADX LE UE SDK(2.00.00.00)」です。

前提

ADX for UEの導入や基本的な使い方は以下の記事にあります。必要に応じて参照してください。
ADX for UEの導入で、一歩上のサウンド表現を(導入編)
https://qiita.com/SigRem/items/4250925f6d66a4fd287a
ADX for UEの導入で、一歩上のサウンド表現を(実践編)
https://qiita.com/SigRem/items/c089b71c42e898980a46

やること

  • AtomCraftでキューを作成
  • 3Dサウンドのパラメータ設定
  • UE5にインポート
  • ブループリントなどで再生する

AtomCraftから距離減衰を設定する

AtomCraft側

キューの作成

新規にキューを作成します。タイプはとりあえず「ポリフォニック」にします。
A01.png
キューに音源を追加します。
A02.png
ゲーム中にサウンドの再生位置を移動させて鳴り具合を確認したいので、ループする環境音などが望ましいでしょう。
サウンドをループさせるには、「マテリアルツリー」の該当する音源を選択し、インスペクターで「ループ情報の上書き」をTrueにします。
A03.png

3Dサウンドの設定

キュー内に配置したウェーブフォーム(音源)はデフォルトでは2Dで再生されるようになっているので、3D空間を加味した再生がされるよう設定してあげる必要があります。
キュー内にあるウェーブフォームをクリックして選択します。
A04.png
インスペクターで「ボイス」→「キューのタイプ」を「3Dポジショニング」にします。
A05.png

これで空間内の位置を反映したサウンドになりましたが、テスト再生で確認するには「セッションウィンドウ」を使う必要があります。
ツールバーの「表示」→「セッションウィンドウ」をクリックして呼び出します。
A06.png
セッションウィンドウが開くので、再生リストに作成したキューをドラッグアンドドロップします。
A07.png
「3Dポジショニング」のボタンを押すと、音源を移動して再生できる画面を呼び出せます。
A08.png
再生ボタンを押して確認します。
A09.png
3Dポジショニング画面をドラッグして、再生位置が変わるのを確認します。ヘッドホンなどを使用して聴いてみましょう。
A10.png
数値をスライダーで変更することでも、音源の位置を変えることができます。
A11.png
また、「ターゲット」を「リスナー」にすると音声を聞く側の座標を変えられます。
A12.png

3Dサウンドを調整する

3D空間上での聞こえ方を調整するには、インスペクターの「パン[3D]」をクリックします。
A13.png
様々な設定項目がありますが、距離減衰の設定が分かりやすいでしょう。
A14.png
最小を上げると減衰開始距離までが長くなり、少し離れていても最大音量で聞こえるようになります。
逆に最大を下げると完全に減衰する距離が近くなり、遠くで音が聞こえにくくなります。
A15.png
(画像はUE4でキャプチャした画像を元に作成したものですが、考え方は変わりません)

設定が終わったら、キューシートをビルドしてエクスポートします。

UE5での再生

キューシートのインポート

AtomCraftでビルドしたacf、acbファイルをUE5にインポートします。
コンテンツブラウザ(コンテンツドロワー)上へファイルをドラッグ&ドロップします。

ダイアログに対しては「Yes」を選択します。
A01.png
A02.png
コンテンツブラウザ上にアセットとして登録されます。
A03.png
キューはAtom Cue Sheetアセットの内部に格納されています。ダブルクリックで開くと確認できます。
A04.png

レベルに配置する

まずは確認のために、Atom Cueを直接レベルに置いてみます。
コンテンツブラウザからドラッグアンドドロップします。
B01.png

Playボタンを押してゲームを再生します。

現状ではプレイヤーが移動しても、距離によって聞こえ方が変化しないかと思います。

「Atom Attenuation」アセットによる距離減衰

Atom Attenuation」アセットを使用して、サウンドに距離減衰を与えてみましょう。
コンテンツブラウザで右クリックし、「ADX Atom」→「Spatialization」→「Atom Attenuation」を選択します。
B02.png
新規に「Atom Attenuation」アセットが作成されました。
B03.png

ダブルクリックして開くと、様々な数値を編集してサウンドの減衰距離などを指定できるようになっています。
B04.png
レベルに配置したキューのDetailsパネルにて、「Attenuation Settings」に作成した「Atom Attenuation」アセットを指定します。
B05.png

これでプレイヤーキャラを移動させると、距離減衰が反映されるように聞こえるようになったはずです。
サウンドの位置を確認したい場合は、コンソールコマンド「atom.3dVisualize.Active Sounds 1」と入力すると表示されるようになります。
コンソールコマンド「atom.3dVisualize.Active Sounds 0」で表示を無効化します。
B06.png
「F8」キーを押すと、Play in Editor中にもサウンドを選択して、位置を動かすことができます。
B07.png
これによってプレイヤーキャラとサウンドの位置関係が変わっても、同じように距離減衰がはたらくことが確認できるでしょう。

さらに、キューシート内のキューアセットに直接「Atom Attenuation」アセットを指定することもできます。
これにより、このキューでは常に同じ距離減衰設定を使うことも可能です。
プレイヤーのアクションなど、よく使用される効果音にはこの手法で減衰を設定しておくと便利かもしれません。

「Override Attenuation」による距離減衰

「Atom Attenuation」アセットを用意しなくても、サウンドごとに個別に距離減衰を設定することも可能です。
レベル上に配置したキューのDetailsパネルから、「Override Attenuation」にチェックを入れます。
C01.png
このキューだけの距離減衰設定をする項目が現れます。
一箇所だけ特殊な減衰を演出したい場合はこの手法を使い、通常のサウンドに対しては「Atom Attenuation」アセットを使用して減衰設定を使いまわしていくといいでしょう。
C02.png

補足:キャラクターのアニメーションにサウンドを埋め込む

足音など、キャラクターのアニメーション内で任意のタイミングに合わせてサウンドを再生することもできます。
コンテンツブラウザでアニメーションを開きます。
D01.png
D02.png

「Notifies」内の任意のトラックで右クリックし、「PlayAtomCue」を選択すると、そのタイミングにAtom Cueが配置されます。
D03.png
配置したAtom Cueを選択した状態で、Detailsパネルで再生する音の指定などが行なえます。
D04.png

編集したアニメーションをレベル上にドラッグアンドドロップして配置します。
D05.png

この状態でゲームを再生して、配置されたキャラクターの周りを移動すると、音の位置やタイミングが反映されているのが確認できます。
D06.png
もちろん、プレイヤーのアニメーションにもサウンドの埋め込みが適用されます。
D07.png

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?