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?

More than 1 year has passed since last update.

UE4+ADXで、特定の音をトリガーとするAISACコントロールを行う

Last updated at Posted at 2022-08-10

はじめに

アンリアルエンジン4とサウンドミドルウェア「ADX for UE4」を使いて、特定の効果音が再生されるのをトリガーとして、他の効果音のAISACコントロールを行う方法です。

たとえば「大きな爆発音が再生されると、プレイヤーの聴覚が一時的に異常をきたし他の音がくぐもる」「焚き火に燃料を投げ入れると、一瞬だけ火の音に勢いがつく」などの演出が想定できます。

この機能はAISACモジュレーショントリガー(AISAC Mod Trigger)と呼ばれるもので、キュー再生時・停止時に影響される側のキューのAISACコントロールを操作することができます。
AtomCraftで設定してしまえばADX側で自動的に行われる処理で、プログラム側で特別な処理を組む必要がありません。

前提

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

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

記事執筆時点のADX for UE4のSDKバージョンはv1_29です。

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

実装

AtomCraftでREACTを設定する

まずはAtomCraftでキューにREACT機能を設定していきます。
当機能ではUE側で行うことは少ないので、この工程が要となります。

マテリアルの用意

効果音素材となるマテリアルを用意します。
サンプルのシチュエーションとして「川の近くで爆発が起こり、一時的に川の音がくぐもり聞こえづらくなる」というものを想定します。
今回は爆発音をふたつのSEで構成しているので、マテリアルを3つ用意しました。
A01.png
川の音はループするよう、マテリアルを選択してインスペクターでループ情報の上書きを「True」にしておきます。
A01b.png

キューの作成

効果音からキューを作成します。
キューシートを選択し、右クリックして「新規オブジェクト」→「キュー『ポリフォニック』の作成」を選びます。
A02.png
必要なマテリアルをドラッグアンドドロップしキューを構成します。
A03.png
川の音用のキューも同様に作成します。
A04.png

AISACコントロールを作成する

川の音に対しAISACを作成します。
トラックリストの空欄で右クリックし、「新規オブジェクト」→「AISACの作成」を選択します。
A05.png
AISACグラフタイプを「バンドパス - Cof高域」とし、パラメータに応じて音がくぐもるようにします。
A06.png
グラフを任意の形に設定します。
注意点として、グラフの始めと終わりでパラメータが同一となるようにしてください。ずれが生じると、AISACコントロール終了後もサウンドに変化が起こったままになってしまいます。
また、次の画像のようにコントロールタイプを「オートモジュレーション」、タイプを「ワンショット」、トリガタイプを「キー」とします。
A07.png

サウンドがどのように変化するか確認したい場合、トリガタイプを一時的に「再生」としてみてください。
テスト再生することでサウンドに変化が起こります。
テスト後は忘れずにトリガタイプを「キー」に戻しておきます。
A08.png

AISACモジュレーショントリガーを設定する

REACTの設定をしていきます。
まずは影響されるサウンドとトリガーとなるサウンドの分別のため、カテゴリを設定します。
プロジェクトツリーのカテゴリグループを右クリックし、「新規オブジェクト」→「カテゴリの作成」を選択します。
A09.png
カテゴリをふたつ作り、それぞれに名前をつけておきます。影響される側は「Category_SE_Rec」、トリガー側のカテゴリ名は「Category_SE_Trigger」としました。
A10.png
今度はプロジェクトツリーのREACTを右クリックし、「新規オブジェクト」→「REACTの作成」を選びます。
A11.png
作成したREACTに適当な名前をつけます。
A12.png
名前をつけたREACTを選択し、インスペクターでパラメータを設定します。
「変化カテゴリ」に影響されるカテゴリを、「トリガーカテゴリ」にトリガーとなるカテゴリを指定します。
REACTタイプを「AISAC Modトリガー」に変更します。
また、ここで任意のモジュレーションキーを設定することで複数のモジュレーショントリガーを扱うことが可能です。
A13.png

キューシートのビルド

ここまでできたらキューシートをビルドします。
A14.png
A15.png

UEで効果音を再生しテストする

UEに移り、サウンドを再生してどう変化するか確かめてみましょう。

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

まずはビルドしたacfファイル、acbファイルをインポートします。
B01.png
B02.png
ツールバーの「Edit」→「Project Settings」からプロジェクト設定を開きます。
B03.png
「CriWare」タブにて、Atom Configの項目にインポートしたacfファイルを指定します。
B04.png
ここまで設定できたら、一度エディタを再起動することをおすすめします。
そのまま進行すると正常にREACTによる変化が起こらない場合があります。

効果音を再生する

コンテンツブラウザからレベル上に川の音となるキューをドラッグアンドドロップして配置します。
B05.png
レベルブループリントを開きます。
B06.png
テスト用の処理は簡単なものです。
Input Keyでキーが押されたことを感知し、Play Sound at Locationで爆発音のキューを再生します。
テスト用なので爆発音のボリュームをごくごく小さくとどめたほうが分かりやすいかもしれません。
また、Play Sound at LocationノードはADXにより追加された、Atomカテゴリにあるノードを使用してください(同名のノードがふたつあります)。
B07.png

ゲームを再生しRキーを押すことで爆発音が鳴り、それをトリガーとして川の音がくぐもるような変化が起きるはずです。

補足

紹介した方法では対象となるサウンドすべてにAISACコントロールを設定する必要がありますが、「グローバルAISAC」機能を使えばすべてのキューから参照できるAISACコントロールを適用することができます。
グローバルAISACの公式ヘルプ
https://game.criware.jp/manual/adx2_tool/latest/criatom_tools_atomcraft_global_aisac.html

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?