2
2

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 2025-12-21

はじめに

ADXアンバサダーとして記事を書いておりますSigと申します。
この記事ではUE5とADX for UEを連携させ、ゲーム内のスロー演出に関わるサウンドを実装する方法を紹介します。
アクションゲームのジャスト回避成功時や重い一撃の表現などで発生する、などの例がよく見られるかと思います。

スロー演出は映像だけでも成立しますが、サウンドが付随することで一気に没入感と説得力が増すでしょう。
動画では

  • スロー演出突入時に「ドゥーン↓」という重いスティンガー
  • スロー中に音がくぐもるエフェクト
  • スロー中にループしているサウンド(雰囲気づくり)
  • スローからの復帰時に「シューン↑」という軽いスティンガー + エフェクト解除

といった構成でサウンドが演出されています。

やること

  • サウンドを構成する
  • UEでスロー演出を発生させる
  • スロー開始、終了時にサウンドを再生する
  • スロー中のフィルタエフェクトをかける

また、記事中に「blueprintue」を使用したBPグラフ共有を載せています。コピペするだけで大体の実装ができますので、よろしければご活用ください。

当記事ではUE5.6 及び 「ADX LE UE SDK(2.04.02)」を使用します。
また、基本的にブループリントのみでの実装を行います。
ADX for UEはインディー向けの「LE版」であれば、無料で使用できます。
https://game.criware.jp/products/adx-le/

前提

「ADX for UE LE」を使用します。導入や簡単な使い方は以下の記事にあります。
ADX for UEの導入で、一歩上のサウンド表現を(導入編)

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

スロー演出のサウンドを実装する

AtomCraftでサウンドを構成する

まずはADX for UEで使用するサウンドを用意するために、オーサリングツールである「AtomCraft」でサウンドを構成します。

マテリアルを用意する

まずは音素材を用意し、マテリアルとしてインポートします。
スロ演出のスタート、ループ、エンド素材です。
A01.png

キューを作成する

UEから再生する単位である「キュー」を作ります。
キューシートを選択し、「新規オブジェクト」→「キュー『ポリフォニック』の作成」を選択します。
A02.png
今回スロー演出スタートのサウンドは2つの音素材を合成して作っているので、両方ともキュー内にドラッグ&ドロップして投げ込みます。
A03.png
他のキューも同じようにして作ります。
A04.png
A05.png
スロー中のループサウンドは、マテリアルを選択しインスペクターの「ループ情報の上書き」を「True」、「ループタイプ」を「ループ」に設定しておくことでループ再生されます。
A06.png

キューシートのビルド

他にも細かな設定などが可能ですが、ひとまずこれで一度キューシートをビルドし、UEに持っていきます。
(エフェクトをかける場合、また後でAtomCraftに戻ってきます)
A07.png
A08.png

UEでスロー演出を実装する

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

ビルドしたacbファイル、acfファイルをコンテンツドロワーにドラッグ&ドロップしてインポートします。
その際に表示されるダイアログでは「Yes」を選択します。
これにより、プロジェクトに使用するAtom Configが自動的に設定されます。
B01.png
キューシートとAtomConfigアセットが作られました。
B02.png
念のため、キューシートアセットを開いてキューを再生し、音が正常に鳴るかテストしておくといいでしょう。
B03.png

スロー演出管理用のアクターを作る

ゲーム内のあらゆる場面でスロー演出を呼び出せるよう、専用のアクターを作っておきます。
システム系のマネージャークラスがあるなら、そちらにこの機能を追加しても良いでしょう。
コンテンツドロワーで右クリックし、「Blueprint Class」を選択。
C01.png
親クラスには「Actor」を指定します。
C02.png
「BP_SlomoManager」と名前をつけました。分かりやすい名前ならなんでも大丈夫です。
C03.png
ダブルクリックして開きます。
イベントグラフにスロー演出の開始、解除用のカスタムイベントを作ります。右クリックし、「Add Custom Event」です。
C04.png
それぞれのカスタムイベントに「StartSlomo」「EndSlomo」と名前をつけました。
そのうち、「StartSlomo」イベントの入力ピンとして「Duration」(持続時間)を追加します。型はFloatです。
C05.png
また、変数を追加します。スロー演出の残り時間を記憶しておくための変数です。
名前を「SlomoRemain」とし、型はFloatです。
C06.png
スロー演出開始時に、Set SlomoRemainで指定されたスローの持続時間を「Slomo Remain」に代入します。
C07.png
Set Custom Time DilationノードやSet Global Time Dilationノードを使い、実際にアクターの動きをスローにします。
前者は特定のアクターのみを、後者はゲーム全体をスローにする場合で使用します。
たとえば、「うまく回避した場合に敵の動きだけをスローにする」などのシチュエーションでは前者を使用するといいでしょう。
C08.png
Set Global Time Dilationノードは演出に使用するのが良さそうです。
C09.png

スロー演出の残り時間をカウントし、必要に応じて解除する処理を追加します。
Event Tickに次のような処理を書きます。
変数「SlomoRemain」の値を見て、スロー演出中であれば残り時間を減算し、0以下になればEndSlomoイベントを呼び出し解除します。
C12.png

この動作をテストするため、簡易な呼び出し処理を書いてみましょう。

レベル上に「BP_SlomoManager」をドラッグ&ドロップして配置します。
C13.png
BP_SlomoManager」を選択したまま、レベルブループリントを開きます。
C14.png
イベントグラフ上で右クリックし、「Create a Reference to BP_Slomomanager」を選択しリファレンスノードを呼び出します。
C15a.png
Input Key 1でキーボードの「1」キーの入力を検知し、「BP_SlomoManager」のStartSlomoイベントを呼び出します。
また、その際Durationでスロー演出の持続時間も指定します。
C15.png

ゲームを再生すると、「1」キーを押すと対象の動きがスローになるはずです。

スロー開始・終了時のサウンドを再生する

スロー開始・解除時にそれぞれ専用のサウンド(キュー)を再生します。
サウンドを再生するにはPlay Sound 2Dノードを使用します。
次の画像のとおり、必ず「Atom」カテゴリにあるものを使用します。「Audio」カテゴリにあるものはUEデフォルトのサウンドベース、サウンドキューを再生するためのものなので、Atomキューには使用できません。
C10.png

それぞれのPlay Sound 2Dノードで再生するキューを指定します。
C11.png

スロー中のループサウンドを再生する

スロー演出中にだけ鳴り続けているループサウンドを再生します。
静寂感やキャラクターの集中を感じさせるようなアンビエントが適しています。
「BP_SlomoManager」にコンポーネントを追加します。
Componentパネルの「+Add」ボタンを押します。
D01.png
「Atom Component」を追加します。これはAtomキューを再生したり、その場で再生し続ける場合などに使用します。
D02.png
Detailsパネルで再生するキューシート、キューを指定します。
D03.png
デフォルトではゲーム開始と同時に再生されるようになっているので、「Auto Activate」のチェックを外して自動再生を無効化します。
D04.png
イベントグラフにAtom ComponentのGetノードを配置します。
D05.png
Fade InFade Outノードを使ってキューをフェードイン、フェードアウトさせます。
D06.png

これでひとまず、スロー演出とそれに伴うサウンド再生処理が完成しました。
次は、スローにすべての音をくぐもらせ、普段と異なる状態、加速感などをサウンド面から演出してみましょう。

スロー中のエフェクトを実装する

エフェクトをAtomCraftで構成する

AtomCraftに戻り、サウンドにかけるエフェクトを構成します。
スロー演出を作ったプロジェクトを開きます。
プロジェクトツリーの「Mixer」を選択します。
画面下部のタブから、ミキサーに切り替えます。
E01.png
新たに「バス」を2つ作ります。空欄で右クリックして「バスの作成」を選択。
E02.png
「BUS1」「BUS2」を作りました。
E03.png
BUS2に「センド」を追加します。
E04.png
「BUS1」をセンド先とするセンドを追加しました。
E05.png
プロジェクトツリーのバスマップを選択し、インスペクターにてバスセンドを次の画像のように設定します。
バス名1に「BUS2」を指定します。
E06.png
これにより、まずサウンドはBUS2から送られ、BUS1とMasterOutの両方に流れることになります。
BUS1にはエフェクトをかけ、BUS2とBUS1の音量を調整することにより、エフェクトのかかっていない音とエフェクトのかかった音のバランスを切り替えることで、ゲーム内でのエフェクト切り替えを実現するわけです。
E07.png
BUS1へのエフェクトを追加します。エフェクトの+ボタンから特定の高さの音をカットし、音をくぐもらせる「バンドパス」を選択します。
E08.png
他にもエフェクトを追加できます。例として「エコー」も追加してみました。
E09.png
BUS1とBUS2の音量の状態を切り替える方法として、「スナップショット」機能があります。
これはミキサーの状態のプリセットを個別で作り、一挙に切り替えるというものです。
「Mixer_0」を選択し、右クリックして「新規オブジェクト」→「スナップショットの作成」を選択します。
E10.png
2つのスナップショットを作ります。
「Snapshot_Default」「Snapshot_Slomo」としました。
E11.png
スナップショットを編集していきます。
ミキサー画面の上部で編集するスナップショットを切り替えます。
E12.png
各バスの下部にあるカメラのボタンから、「スナップショットに追加」を選択してスナップショットにバスの状態を追加します。ひとまずすべてのバスを追加しておきましょう。
E13.png
「Snapshot_Default」「Snapshot_Slomo」について、すべて追加します。
E14.png
プロジェクトツリーではスナップショットに追加されているバスが確認できます。
E15.png
プロジェクトツリーで「Snapshot_Default」の「BUS2」を選択し、ミキサー画面の右側にて「MasterOut」と「BUS1」に送信する音量を設定します。
こちらはエフェクトのかかっている音が不要なので、「MasterOut」への音量はそのままで、「BUS1」への音量はカットします。
E16A.png
逆に「Snapshot_Slomo」側の「BUS2」では、「BUS1」へ全振りします。
E16B.png
エフェクトとスナップショットのテストをするには、セッションウィンドウを使います。
ツールバーの「表示」→「セッションウィンドウ」から呼び出します。
E17.png
セッションウィンドウでスナップショットを切り替えながら、エフェクトのかかり方をテストしてみましょう。
E18.png

調整できたら、再びキューシートをビルドします。

UEでエフェクトを切り替える

UE5のエディタに移り、ビルドしたacbファイル、acfファイルを再インポートします。
ファイルを再びドラッグ&ドロップしてもいいですし、該当するアセットを右クリックして「Reimport」を選択しても可能です。
F01.png
エフェクトを適用するため、サウンドを出力するスピーカーのような役割を持つ「Atom Rack」アセットを新規に作成します。
コンテンツドロワーで右クリックし、「ADX Atom」→「Sound Renderer」→「Atom Rack」です。
F02.png
「Atom Rack」アセットが作られました。名前をつけます。
F03.png
ダブルクリックして開き、今回作ったエフェクトが使えるようAtom ConfigとDsp Bus Settingを指定します。
また、デフォルトで使用したいSnapshotも指定できます。
エフェクトのかかっていない状態である「Snapshot_Default」を選びました。
F03B.png
作成したAtom Rackをこのプロジェクトで使えるよう設定していきます。
ツールバーから「Edit」→「Project Settings」でプロジェクト設定を開きます。
F04.png
「ADX Atom」にある「Master Rack」にAtom Rackアセットを指定します。
F05.png
「BP_SlomoManager」を開きます。
F06a.png
変数を作成します。型は「Atom Rack」です。
F06.png
一度コンパイルし、初期値としてAtom Rackアセットを設定します。
F07.png
この変数を対象としたSet SnapshotノードでSnapshotが切り替えられます。
それぞれのSnapshot名を入れれば実装が完了します。
F08.png

ここまでの「BP_SlomoManager」のグラフはここから取得できます。

2
2
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
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?