目次

Wwise SDK 2018.1.11
ユーザーミュージック(BGM)やDVRの取り扱い

多くのコンソールでは、ゲームの音楽をユーザー個人のライブラリに所有する音楽に入れ替えることが可能です。この機能は、Wwiseではほぼ自動的に行われます。しかし、いくつかのプラットフォームでは、その実装と動作が異なります。

すべてのプラットフォームで初期設定は同じです: サウンドデザイナーは、ユーザーが所有の音楽を再生し始めた場合にミュートされるバスをタグする必要があります。これは "Mute for Background Music" チェックボックスで指定できます。コード側では、プラットフォームによって追加の詳細が必要になります。

AndroidでのBGM設定詳細

AkPlatformInitSettings の jNativeActivity メンバーを必ず入力してください。Mute/Unmuteアクションは、ユーザがミュージックプレイヤのアプリケーションからゲームに切り替えた時のみに実行されます。つまり、ユーザのミュージックが独自に終了した場合はUnmuteアクションがありません。

iOSでのBGM設定詳細

サウンドエンジンの初期化設定でAudioSessionのMixOtherフラグが設定されている場合は、Mute/Unmuteアクションはユーザがミュージックプレイヤのアプリケーションからゲームに切り替えた時に限り実行されます。つまり、ユーザのミュージックが独自に終了した場合はUnmuteアクションがありません。iOS 8以降でAVAudioSessionCategoryAmbientカテゴリを使用している場合、全てのアプリケーションによるオーディオ中断でゲームミュージックのミュートやアンミュートが実行されます。

DVRが利用できるプラットフォーム(XBox One ならびに PS4) でのBGM。

プラットフォームの中にはDVR機能があり、ゲーマーがそのゲームプレイを録画して、公開できるものがあります。そこで、ゲームオーディオの一部でありユーザーが置き換えることのできるゲーム音楽の著作権について、法的な問題が発生します。ゲームスタジオ側は音楽をゲームに使う権利を有しているものの、いかなる形式であれエンドユーザーが配信する権利はありません。このため、このプラットフォームでは通常ユーザーのBGMの録音を禁止しています。

対策としてCPU負荷が最も低いのは、ゲームの音楽を他と分けてミックスすることです。これは、セカンダリアウトプット機能で行います。

オーサリングツールでのBGM設定詳細

オーサリングツール内で、ミュージックオブジェクトをデフォルトのマスター Audio Bus以外のマスターバスにルーティングする必要があります。多くのプロジェクトでは、新しいマスターバスを作成することから始めます(Master Mixer HierarchyのWork Unitを右クリックして、Add > Child)。デフォルトで、全てのバスがシステム出力にルーティングされます。Audio DeviceのShareSetを変更して、DVR出力にポイントさせます。

全てのプラットフォームがDVRに対応しているわけではないので、注意してください。Register the main listener. それらのプラットフォームでは、オーディオデバイスプロパティをアンリンクさせて、システム出力にポイントさせる必要があります。または、ミュージックオブジェクトの Output Bus プロパティをアンリンクします。

ゲームコードでDVR出力を設定する

ゲームで使用する場合には、DVR出力は手作業で追加する必要があります。 これを行うにはAK::SoundEngine::AddOutput()を使って、オーディオデバイスシェアセットの名前(またはID)と AkOutputSettings のほかのパラメータを送ります。

Note: PS4に関する重要事項 Mute for Background Music機能を使うには、セカンダリアウトプットを AK::SoundEngine::AddOutput()を使って追加します。この出力が使われていない場合は、ユーザー音楽がスタートしたことをPS4システムは通知しません。

例は、 <Wwise installation path>/SDK/samples/IntegrationDemo/DemoPages/DemoBGM.cpp を参照してください。