Skip to content

plasmo310/unity-multi-audio-sample

Repository files navigation

unity-multi-audio-sample

  • 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
  • Wwise
    • 2023.1.1.8417

シーン構成

  • 各シーンは Assets/GameSample/Scenes 配下に格納しています。
    • Tools/Switch AudioLibより使用するライブラリを切り替えて実行してください。
      • ※選択されたライブラリに応じて、下記Defineを切り替えるよう実装しています。
        AUDIO_LIB_UNITY_AUDIO
        AUDIO_LIB_CRI
        AUDIO_LIB_WWISE
        
Scene名 概要 UnityAudio CRI ADX2 Wwise
SoundTest.unity 基本機能のサンプル集
・BGMクロスフェード
・SEの3D再生
・DSPエフェクト

・カテゴリによる音量設定画面
Spectrum.unity オーディオスペクトラムの実装サンプル
周波数データを取得して表示する
・LineRendererによる描画

・3DCubeによる描画
×
Interactive.unity インタラクティブミュージックのサンプル
プレイヤーの動きに合わせてBGMを変化させる
・ブロック遷移による切替
・オーディオ側に設定したイベントによる制御
・ゲームパラメータ値によるサウンド変化
・ビートに合わせたオブジェクトの伸縮

×

フォルダ構成

全体構成
フォルダパス 概要
Assets/AudioLib 各オーディオライブラリの処理を実行する処理
Assets/GameSample サンプルゲームに関連する処理
MW_CriAtomCraftProject CriAtomCraftプロジェクト
MW_WwiseProject Wwiseプロジェクト
UnityAudio関連
フォルダパス 概要
Assets/AudioLib/UnityAudio APIを実行する処理
Assets/GameSample/Runtime/Audio/UnityAudio サンプルゲーム固有のオーディオ関連処理
Assets/GameSample/Resources/UnityAudio UnityAudioで実行するためのサウンドデータ
CRI ADX関連
フォルダパス 概要
Assets/AudioLib/CriAdx APIを実行する処理
Assets/GameSample/Runtime/Audio/CriAdx サンプルゲーム固有のオーディオ関連処理
Assets/StreamingAssets/Audio/CriAdx CriAtomCraftプロジェクトから出力したサウンドデータ
Wwise関連
フォルダパス 概要
Assets/AudioLib/Wwise APIを実行する処理
Assets/GameSample/Runtime/Audio/Wwise サンプルゲーム固有のオーディオ関連処理
Assets/StreamingAssets/Audio/Wwise Wwiseプロジェクトから出力したサウンドデータ

オーディオ関連処理の設計について

  • パッケージ構成
    • Assets/GameSample配下にサンプルシーン関連の処理、
      Assets/AudioLib配下に各APIへアクセスするための処理をそれぞれ格納しています。
  • クラス図
    • GameSample.Audio配下でゲーム固有のオーディオ関連の処理を実装し、
      各オーディオライブラリへのアクセスはAudioLib配下の各サービスから行うようにしています。
    • ゲーム側からはServiceLocatorを通じて、IGameAudioServiceIGameAudioSettingsに対してオーディオ関連の処理を実行しています。
      // ===== 例: 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);
              }
      

About

UnityAudio, CRI ADX, Wwiseで切り替え可能なオーディオサンプル

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages