【Project Acoustics 連載記事:第4回】Acousticsを使ってADXの可能性を検証してみた

新人の長谷川です。

ここまで3回に分けて扱ってきた「Project Acoustics(以下、Acoustics)」ですが、
弊社の製品である「CRI ADX (以下、ADX)」の既存APIで動かせないかと検証してみました。

といっても、既存のAPIで動かせるのかを知りたいってだけの動機ですが汗。

本題に入る前に、これまで3回に分けて Acoustics についてのリンクを張っておきますね。ぜひご覧ください。
第一回:空間音響のためのキラーエンジンProject Acousticsに触れる!!
第二回:Acoustics Sampleを動かしてみる
第三回:Project Acousticsを使ったプロジェクトを一から作ってみた

Acoustics を ADX で動かしてみた

まずは百聞は一見に如かずということで、ADX上でAcoustics を動かしたデモ動画を撮ってみました。

今回使用したCRIWARE Pluginについて

実は年内リリース予定の新しいプラグイン「CRIWARE Unreal Engine Plugin V2」を使っています。
このプラグインは、より柔軟性の高いオーディオ表現を簡単に実現できるようにした大型アップデートです。

この記事でADXの連携だけではなくV2プラグインの魅力が伝えられればと持っています。
詳しくはこの記事の最後にまとめていますから、ぜひ見てくださいね。

ADXでの実装

Acoustics専用のACFファイルを作る

まず、Acoustics 専用のACFファイルを作成します。
ACFファイルには、下記6つのIRリバーブを用意します。
・Short Indoor Reverb
・Medium Indoor Reverb
・Long Indoor Reverb
・Short Outdoor Reverb
・Medium Outdoor Reverb
・Long Outdoor Reverb
IRリバーブは音響特性としてwavファイルが必要です。
この音声は拍手のような一瞬の音(インパルス)を発したときの反響(インパルス応答:IR)を録ったものになります。
そのため、反響の表現に大きな影響を与えます。
この記事ではAcousticsプラグインに同梱されているインパルス応答を録音したwavファイルを利用しています。

AtomCraftで設定する

●IRリバーブエフェクトを適用したBusの追加

今回は「DSPBusSetting」を Acoustics 用に設定していきます。
「DSPBusSetting」をダブルクリックすると「MasterOut」のみがあります(「MasterOut」:最終的にスピーカーなどから出る音を出力するBus)
ここに、上述のIRリバーブエフェクトを適用したBus6つを追加します。

画面上の何もないところで右クリックをすると「DSPバスの追加」が表示されるので、これをクリックします。


「バスを追加」のダイアログが表示されるので、名前を指定して「追加」をクリックします。


今回は6つのBusについて、下の画像のように名前をそれぞれ付けました。
・ ShortIndoorReverb
・ MediumIndoorReverb
・ ShortIndoorReverb
・ LongOutdoorReverb
・ MediumOutdoorReverb
・ LongOutdoorReverb

これで、6つのBusのSendLevel(音量みたいなもの)をAcousticsがコントロールをしてリアリティのある音を表現できるようになります。

●音声波形の設定

追加されたBusの右上に赤枠の「+」ボタンをクリックし、「Atom Sound Renderer(ASR)」->「IRリバーブ」を選択します。

「IRリバーブ」が項目として現れるので、赤枠の部分をダブルクリックをします。

音響を設定する画面が表示されるので、音の響き方を音声波形として設定を行います。
下側の「Dry」「Wet」「ReverbGain」はそれぞれ元の音、エフェクトをかけた音、リバーブの強さになります。

音の響き方を指定する音声波形は赤枠の「IR」ボタンをクリックすることで一覧を見ることができます。

左上の「+」ボタンで音の響き方を表す音声波形(インパルス応答)を選択するエクスプローラーのファイル選択ウィンドウが出るので波形ファイルを選択してください。

すると、一覧に波形が追加されるのでクリックをし、ウィンドウを閉じます。

中央に選択した波形が表示され、この波形をもとにリバーブをかけることができるようになりました。

「CRIWARE Unreal Engine Plugin V2」を使ったAcousticsの適用方法

 

●音源のアクターの用意

レベル上にAtomComonentを持つアクタを配置します。
今回は音源の位置がプレイ中に見えるようにSphere(球)を配置しています。

●Attenuationの設定

Attenuationの設定をするために「AtomAttenuation」アセットを作ります。
現在リリースされているCRIWARE Plugin V1でも「Attenuation」機能はありましたが、UE標準のアセットを使って設定していました。
今回、新たに追加された「AtomAttenuation」アセットでは設定項目を洗練し、さらに独自のADXのBusへ直接音声を送る機能もついています。

詳細設定からAcousticsの計算を適用するための「SourceDataOverride」を指定します。
今回のようにIRリバーブのかかり方の度合いを調整したいなど音声に対して独自の処理をさせることができます。
Acousticsではこの機能を使ってリバーブの制御を行っています。

最後にAtomComponentの「Attenuation Settings」の項目に設定した「Atom Attenuation」アセットを指定すれば完成です。

●SourceDataOverrideの設定

リバーブのかかり具合はAcousticsで計算されますが、いくつかのパラメータを設定することである程度制御できます。
各種パラメータの詳細は「
【Project Acoustics 連載記事:第2回】Acoustics Sampleを動かしてみる」で説明してるのでぜひ見てくださいね。

 

以上でAcoustics を ADX の API で動くようになりました。
これでADXで扱っている数多くのエフェクトを適用しつつAcousticsも利用できるハイブリットなものができました!!
まだリリースはされていませんが、より便利なことができるプラグインになっているので、リリースを楽しみに待ってもらえるとうれしいです。

ここまでのまとめ

今回、AcousticsにADXを組み込んでみるという挑戦をしてみました。
以上長い間、4回に分けて書いた記事ですがお付き合いありがとうございます。
また、新しく発見したことなどあれば随時書いてきますね!!

あと、↓にV2プラグインの大きな特徴を書いているので、
ぜひ読んでみてください!m(__)m

UE5特化のCriWare UnrealEngine Plugin V2

1. Cueアセットの処理上の問題改善

さて、現行のプラグインを使っている方からすれば、
Cueアセットが大量発生している現状に頭を悩ませているかと思います。
同感です。

そこで、そんな方に朗報です。

実はV2プラグインからCueアセットのuassetファイルはなくなりました!!!

社内ではuassetファイルが存在しないアセットのことを疑似アセットと呼んでいます。
実はCueアセットがなくなったわけではなく、CueSheetアセットの中に内包されています。
画像はCueSheetアセットの詳細を開いたときのウィンドウになります。

また、声を大にして言いたいのですが、
インポート時間が劇的に改善されました。
試しに1つのCueSheetに約1万のCueを入れたACBファイルをインポートして実験してみました。
その結果、現行のプラグイン(V1)では約2分3秒かかっていたのに対し、V2では15秒程度でした。
この項目だけですでに魅力的ですよね?

2. アセットベースの設計

Bus、DspBusSetting、カテゴリなどがアセット化しました。
アセット化することで様々な情報を簡単に閲覧、編集が可能になりました。
特にACFファイルの情報がUEエディタ上で確認できるのは非常に便利です。
個人的には情報を見たいがためにAtomCraftを開くという作業がなくなったので快適です。

3. 動的に変更できるパラメータの種類が増加

様々な情報をアセット化したことでBlueprint上で変数として扱えるようになりました。
つまり、Blueprintから様々な情報を取得、変更が可能になります。
(もちろんC++でも可能です)

今回のADX連携はまさにこの恩恵を受けています。
実はV1でも実装が可能か検証しましたが、
断然、V2のほうが実装しやすかったです。

プログラマー寄りの話になってしまいますが、
特にC++で実装する際のコード量が減った点が大きかったです。
新人の僕でさえ簡単に実装できたのですから、
V1の熟練ユーザーであればもっとその恩恵を感じれるのかなと思います。

最後に

今回の記事で紹介したADX連携は大きなインパクトがあったのではないでしょうか!
楽しんでいただけましたら幸いです。長い間、お待たせしてしまってすみません。

しかし、お待たせしてしまった分だけ内容が濃くなったのかなと思っています。
特にこれまで告知していなかった新プラグインV2の紹介は驚いたことでしょう。

この記事を読んで、少しでもV2を使ってみたいと思っていただけたらとてもうれしいです。

もちろん当分の間はV1も更新しますから安心してくださいね。

ということで、V2プラグインのリリースをぜひお楽しみに!!
あと、気になる点があればコメントもお願いします!!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です