こんにちは。
UE4でマイクやミキサーの音を拾う方法が調べてもあまり情報が無くて困ったので、書き残しておこうと思います。誰かのお役に立てれば幸いです。
UE4バージョンは4.25.3です。
やりたいこと
デスクトップで再生されている音を取得して、インタラクティブ感を出したい。
Audio Captureコンポーネントで音量を取得する
UE4では「AudioCaputre」というコンポーネントを使えばマイクの音をキャプチャできるみたいです。なので、これを使って音を取得するのが簡単そうです。
ブループリントを作成する
ブループリントでActorを新規作成して、
コンポーネントに「Audio Capture」を追加します。

これだけで既にWindowsで設定している録音デバイスから音を取得する準備は完了しています。
イベントをグラフに追加する
AudioCaptureコンポーネントには「On Audio Envelope Value」という、
音量が変化する?瞬間に呼び出されるイベントがあるみたいです。
追加した「AudioCapture」コンポーネントを選択すると、
詳細パネルに「On Audio 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を設定します。
これでできる…はず!

コメント