0
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?

UE5+ADXで、ボイスや効果音の再生中に背景音量を下げる(ダッキング処理 / 新バージョン対応)

Last updated at Posted at 2022-04-02

はじめに

ADXアンバサダーとして記事を書いておりますSigと申します。
この記事ではアンリアルエンジン5とサウンドミドルウェア「ADX for UE」を連携させ、ゲーム中などにキャラクターのボイスなどを再生する際、BGMやBGSの音量を下げることでプレイヤーを台詞に集中させる実装を紹介します。
また、重要な効果音や台詞の発声時にBGMを一時的にミュートすることで、「必殺技時の暗転」や「謎を解いた際のファンファーレ」などが効果的に演出できるようになるでしょう。

このように「あるサウンドを再生すると同時に他のサウンドの音量を下げる」処理はダッキングと呼ばれています。
ボクシングで上半身を低くする回避テクニック「ダッキング」と同じ語源だそうです。

前提

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

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

ADX for UEの導入や基本的な使い方は以下の記事にあります。必要に応じて参照してください。
ADX for UEの導入で、一歩上のサウンド表現を(導入編)

ADX for UEの導入で、一歩上のサウンド表現を(実践編)

実装

AtomCraftでREACTを設定する

AtomCraftでダッキングを設定するための機能がREACTです。
これは音量以外にも、AISACコントロールの値を変化させる用途でも使用できます。

今回はテスト用に3つのマテリアル(音源)を用意しました。
A01.png

それぞれキャラクターのボイス、BGM、効果音となっています。

カテゴリ、REACTの作成

まずはボイス、BGM、効果音を分類するために「カテゴリ」を作る必要があります。
プロジェクトツリーの「カテゴリ」を右クリックし、「新規オブジェクト」→」「カテゴリグループの作成」を選択します。
A02.png

ゲームのメイン部分で使用するカテゴリグループを想定して「Main」と名付けました。
さらにカテゴリグループ「Main」を右クリックし、「新規オブジェクト」→「カテゴリの作成」で詳細なカテゴリを作っていきます。
A03.png

カテゴリグループ「Main」に3つのカテゴリを作り、それぞれ「BGM」「SE」「Voice」と名付けました。
A04.png

ダッキング処理のためのREACTを作成します。
プロジェクトツリーの「REACT」を右クリックし、「新規オブジェクト」→「REACTの作成」を選択します。
A05.png

分かりやすい名前をつけ、ダブルクリックするとREACTの設定画面が開きました。
A06.png

タイムラインの編集に戻りたいときは、画面下の「タイムライン」タブをクリックします。
A06B.png

ダッキングの設定

ダッキングの設定をしていきます。
まずはこのREACTの用途をメモしておきましょう。
A07.png
ダッキング処理には、実際に変化させるカテゴリを指す「変化カテゴリ」と、そのトリガー(きっかけ)となる「トリガーカテゴリ」が必要です。
今回想定するシチュエーションではボイス再生中にBGMを小さくしたいので、変化カテゴリが「BGM」、トリガーカテゴリが「Voice」と設定します。
A08.png

REACTタイプは「ダッカー」のままで大丈夫です。

音量の遷移を設定していきます。
まずはボイス再生中のBGM音量を「変化レベル値」として「0.40」に設定します。
グラフが変化するので、視覚的に調整しやすいかと思います。
A09.png

「変化時間」「戻り時間」はダッキング状態に遷移する際、通常状態に戻る際にかかる時間です。ミリ秒単位で指定します。
ボイス再生開始時はすぐにBGMの音量を下げ、戻るときはスムーズにすると自然な変化になりそうです。変化時間と戻り時間をそれぞれ「300」「600」としてみました。
ミリ秒単位なので、「300」では0.3秒で遷移することになります。
A10.png

「変化カーブタイプ」「戻りカーブタイプ」で遷移する際のカーブを指定できます。
変化カーブタイプは「高速変化」、戻りカーブタイプは「低速変化」にしてなめらかな谷状のグラフにしました。
グラフの形が画像のようになっていれば大丈夫です。
A11.png

ホールドタイプが「再生中」では、ボイスが再生されている間ダッキングが維持されることになります。
ホールドタイプを「固定時間」にすると、ボイス再生時に指定の時間だけダッキング状態になります。
用途を考えると、今回は「再生中」が適切でしょう。
A12.png

ホールドタイプが固定時間の場合、「ホールド時間」の項目でホールド時間を指定することができます。

キューにカテゴリを設定する

キューを作成し、カテゴリを設定することでダッキングが実現します。
マテリアルに合わせて3つのキューを作りました。

A13.png
単純にマテリアルごとにキューを作りたい場合、該当のキューを複数選択してキューシートへドラッグ&ドロップすれば即座に生成されます。
A13B.png

キューを選択し、インスペクターの「カテゴリ」をクリックします。
A14.png

カテゴリの編集ウィンドウが開くので、該当するものにチェックをつけます。
A15.png

すべてのキューに対して行います。
A16.png

キューシートのビルド

ここまでできたら、キューシートをビルドしてUEに持っていきます。
A17.png
A18.png

UE5でサウンドを再生する

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

ビルドしたacf、acbファイルをコンテンツブラウザ(コンテンツドロワー)上の任意の階層にインポートします。
acfファイルインポート時に出てくるダイアログではどちらも「Yes」を選択します。
B01.png
B02.png
これにより、Atom Configファイルがプロジェクトに自動的に設定されます。
2つのアセットがインポートされました。
B03.png
キューシートアセットをダブルクリックして開き、中に3つのキューが格納されていることを確認します。
B04.png

BGM、ボイスを再生する

まずはBGMを直接配置してしまいましょう。
キューシートを開き、BGMとなるキューをレベルにドラッグ&ドロップして配置します。
B05.png

ボイス再生処理をレベルブループリントに書いてテストします。
レベルブループリントを開きます。
B06.png

Input KeySpawn Sound at Locationを使い、キューの再生用イベントを用意します。
Spawn Sound at Locationノードは同名のものがふたつありますが、Atomカテゴリのノードを使用します(重要)。
B07a.png

B07.png

Spawn Sound at Locationノードのアセットピッカーではまずキューシートを選択し、それからキューを選択します。今回はボイスを再生するアセットを選択します。
B08.png
再生処理ができました。
B09.png
同じように効果音を再生するノードを配置します。
B10.png

ゲームを実行してみましょう。効果音を再生してもBGMの音量は変わりませんが、ボイスを再生するとBGMの音量が抑えられ、キャラクターの音声が聞き取りやすくなるはずです。
また、ボイス再生時には即座にBGMの音量が下がり、ボイスの再生が終了すると段々とBGMの音量が戻ることにも注目してみてください。
これはAtomCraftで設定した「変化時間」「戻り時間」に依存した挙動です。
B08.png
もし効果が分かりづらいなと感じたら、AtomCraftでREACTの「変化レベル値」を下げたり、「変化時間」「戻り時間」を長めに設定してみてください。

ダッキング処理により、重要なキャラクターの演技や謎解きを完遂した際の効果音などを優先して再生することができます。ユーザーに向けて強調したいサウンドを際立たせ、演出の一助にしてみてください。

0
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
0
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?