バージョン

menu_open

BGMのミキシングと、DVRの例

著作権のある音楽の録音は、一般的にPS4、PS5、Xbox One、Xbox Series XのDVR機能で禁止されています。これらのプラットフォームでは、音楽だけを管理するための、特別なバーチャルデバイスを提供し、その録音を回避しています。Wwiseでも、音楽だけを違う階層で別にミキシングすることになります。インテグレーションのデモプロジェクトで、これを実装してみました。NonRecordable_Bus、RecordableMusic、NonRecordableMusicの設定を確認できます。コードの観点からは、DemoBGM.cppを見てください。

以下の通り、NonRecordableMusicは、Non Recordable Busへとルーティングされ、ここから信号がDVR_Bypassアウトプットにアウトプットされます。

図5 音をNonRecordable_Busにルーティング

音をNonRecordable_Busにルーティング

図6 Bus Audio Deviceに、DVR_Bypassを設定

Bus Audio Deviceに、DVR_Bypassを設定

コード的には、これを実装するための作業はそれほどありません。アウトプットを初期化するために、ゲームがAudio Deviceシェアセットの名前を使い、 AK::SoundEngine::AddOutput() をコールする必要があります。

Wwise Advanced Profilerを使うと、各サウンドが別々のバスや別々のアウトプットに行くのが分かります。これが、対応しているプラットフォーム上の通常の流れです。(中間のバスミュージックは、省略しています。)

図7 2つのマスターバスのミキシングが、別々のアウトプットへ

2つのマスターバスのミキシングが、別々のアウトプットへ

ハートウェアアウトプット不足の対処

DVR機能は、ほかの対応プラットフォームには存在しないので、何か違う処理が必要です。その場合、当然ゲーム中に音楽を失いたくないので、正しくルーティングするようにします。対処するには、Audio Deviceプロパティをアンリンクするだけです。マスターバスのプロパティエディタで、Audio Deviceプロパティをアンリンクすることもできます。以下の例では、Non Recordable Busのアウトプットを通常のシステムアウトプットにしました。ただし対応しているプラットフォームでは、DVR_Bypassにいくので、リンクアイコンが半分、オレンジ色です。以上を、インテグレーションデモプロジェクトで設定しました。この場合、コードでアウトプットを初期化するためのAK::SoundEngine::AddOutputをコールする必要はなく、それはシステムのアウトプットが起動時に必ず初期化されるからです。

図8 Audio DeviceのアウトプットをSystemに設定

Audio DeviceのアウトプットをSystemに設定

両方のサウンドを再生すると、2つのソースのシグナルが別々のバスを通り、最終的に同じシステムアウトプットでミキシングされるのが分かります。

図9 デバイスに2つのマスターバスがミキシング

デバイスに2つのマスターバスがミキシング


このページはお役に立ちましたか?

サポートは必要ですか?

ご質問や問題、ご不明点はございますか?お気軽にお問い合わせください。

サポートページをご確認ください

あなたのプロジェクトについて教えてください。ご不明な点はありませんか。

プロジェクトを登録していただくことで、ご利用開始のサポートをいたします。

Wwiseからはじめよう