UE4でマイクやミキサーの音を取得する方法

UnrealEngine

こんにちは。
UE4でマイクやミキサーの音を拾う方法が調べてもあまり情報が無くて困ったので、書き残しておこうと思います。誰かのお役に立てれば幸いです。
UE4バージョンは4.25.3です。

やりたいこと

デスクトップで再生されている音を取得して、インタラクティブ感を出したい。

Audio Captureコンポーネントで音量を取得する

UE4では「AudioCaputre」というコンポーネントを使えばマイクの音をキャプチャできるみたいです。なので、これを使って音を取得するのが簡単そうです。

ブループリントを作成する

ブループリントでActorを新規作成して、
コンポーネントに「Audio Capture」を追加します。

ブループリントを作成してAudioCaptureコンポーネントを追加。

これだけで既にWindowsで設定している録音デバイスから音を取得する準備は完了しています。

イベントをグラフに追加する

AudioCaptureコンポーネントには「On Audio Envelope Value」という、
音量が変化する?瞬間に呼び出されるイベントがあるみたいです。

追加した「AudioCapture」コンポーネントを選択すると、
詳細パネルに「On Audio Envelope Value」というイベントがあるので
「+」をクリックして追加します。

赤線の「On Audio Envelope value」イベントを追加

このイベントノードから出ている「Envelope Value」というやつが、音量のようです。
なのでこいつを引っ張れば録音デバイスから音量を取得できます。

「Envelope Value」を確認するためのノード

大体は完成しているのですが、このまま再生すると、録音デバイスから取得した音がゲーム内で再生されてしまうので「Output to Bus Only」にチェックを入れておきます。
ついでに「Auto Activate」にもチェックを入れて、プレイ直後に自動的に有効化されるようにしておきます。

音量の取得ができた

録音デバイスはステレオミキサーに設定しています。

AudioComponentを使ってスペクトル解析もしたい

ちなみにスペクトル解析までしたい場合は、
AudioCaptureコンポーネントの「Out put Bus Only」のチェックを外して
Sound Submixを新規作成で設定します。

次に、設定したSound Submixをダブルクリックで編集画面を開いて、
「Output Volume」を0にします。

あとはスペクトル解析ノードに作成したSound Submixを設定します。
これでできる…はず!

コメント

タイトルとURLをコピーしました