- UnityAudio、CRI ADX、Wwiseで切り替え可能なオーディオサンプルになります。
- ゲーム側からはオーディオライブラリは意識せずに実行できるよう実装してあります。
- 下記のサンプルを用意しています。
- 基本機能
- BGMフェード再生
- SEの3D再生
- DSPエフェクト
- オーディオスペクトラムの表示 ※UnityAudio、CRI ADXのみ
- インタラクティブミュージック ※CRI ADX、Wwiseのみ
- ブロック遷移による切替
- オーディオ側に設定したイベントによる制御
- ゲームパラメータ値によるサウンド変化
- ビートに合わせたオブジェクトの伸縮
- 基本機能
- Unity
- 2022.3.16f1
- CRI ADX
- CRI Atom Craft LE
- 3.50.06
- CRIWARE Unity Plug-in
- 3.09.01
- CRI Atom Craft LE
- Wwise
- 2023.1.1.8417
- 各シーンは Assets/GameSample/Scenes 配下に格納しています。
フォルダパス | 概要 |
---|---|
Assets/AudioLib | 各オーディオライブラリの処理を実行する処理 |
Assets/GameSample | サンプルゲームに関連する処理 |
MW_CriAtomCraftProject | CriAtomCraftプロジェクト |
MW_WwiseProject | Wwiseプロジェクト |
フォルダパス | 概要 |
---|---|
Assets/AudioLib/UnityAudio | APIを実行する処理 |
Assets/GameSample/Runtime/Audio/UnityAudio | サンプルゲーム固有のオーディオ関連処理 |
Assets/GameSample/Resources/UnityAudio | UnityAudioで実行するためのサウンドデータ |
フォルダパス | 概要 |
---|---|
Assets/AudioLib/CriAdx | APIを実行する処理 |
Assets/GameSample/Runtime/Audio/CriAdx | サンプルゲーム固有のオーディオ関連処理 |
Assets/StreamingAssets/Audio/CriAdx | CriAtomCraftプロジェクトから出力したサウンドデータ |
フォルダパス | 概要 |
---|---|
Assets/AudioLib/Wwise | APIを実行する処理 |
Assets/GameSample/Runtime/Audio/Wwise | サンプルゲーム固有のオーディオ関連処理 |
Assets/StreamingAssets/Audio/Wwise | Wwiseプロジェクトから出力したサウンドデータ |
- パッケージ構成
- Assets/GameSample配下にサンプルシーン関連の処理、
Assets/AudioLib配下に各APIへアクセスするための処理をそれぞれ格納しています。
- Assets/GameSample配下にサンプルシーン関連の処理、
- クラス図
GameSample.Audio
配下でゲーム固有のオーディオ関連の処理を実装し、
各オーディオライブラリへのアクセスはAudioLib
配下の各サービスから行うようにしています。
- ゲーム側からは
ServiceLocator
を通じて、IGameAudioService
、IGameAudioSettings
に対してオーディオ関連の処理を実行しています。// ===== 例: ServiceLocatorへの登録 ===== /// <summary> /// シーンのロード後の初期化処理 /// </summary> [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.AfterSceneLoad)] private static void InitializeAfterSceneLoad() { // サービス登録 #if AUDIO_LIB_UNITY_AUDIO ServiceLocator.Register<IGameAudioSettings>(new GameUnityAudioSettings()); ServiceLocator.Register<IGameAudioService>(new GameUnityAudioService()); #elif AUDIO_LIB_CRI ServiceLocator.Register<IGameAudioSettings>(new GameCriAdxAudioSettings()); ServiceLocator.Register<IGameAudioService>(new GameCriAdxAudioService()); #elif AUDIO_LIB_WWISE ServiceLocator.Register<IGameAudioSettings>(new GameWwiseAudioSettings()); ServiceLocator.Register<IGameAudioService>(new GameWwiseAudioService()); #endif } // ===== 例: オーディオ再生 ===== /// <summary> /// Audioサービス /// </summary> private IGameAudioService GameAudioService => ServiceLocator.Resolve<IGameAudioService>(); private IGameAudioSettings GameAudioSettings => ServiceLocator.Resolve<IGameAudioSettings>(); private void PlayBgm01() { GameAudioService.PlaySoundEvent(GameAudioSettings.SoundEventName_BgmSpaceWould); }