ChuanXin 发表于 2022-6-7 15:33

Unity Wwise基础使用

概述

Wwise作为音频引擎,由音频人员处理音频资源后导入Unity工程。Wwise提供Unity插件,控制导入资源播放使用。本章记录Wwise在Unity的使用。
一、环境配置

1.1 下载安装Wwise Launcher




1.2 安装Wwise引擎



内网离线安装若中途报错,删除 C:\Program Files (x86)\Audiokinetic\Data\install-table.json后,重新安装。

1.3 安装Unity插件



若手动指定Unity.exe后出现无法识别版本的问题,需要手动解压离线版本,并将解压后的Wwise放到Unity工程下。





加载插件到Unity

1.4 创建Wwise工程



1.5 Unity设置

Editor -> Project Setting -> Wwise Editor


设置完成后打开WIndow -> Wwise Picker,可以看到Unity与Wwise工程连接成功。


其它设置参考:

二、Wwise基础功能

2.1 基础概念


[*]event:Wwise的音效播放通过事件驱动。Wwise可以看做一个状态机,不同事件设置相应的状态。
[*]state、switch:相同的event在不同情况下需要有不同处理方式,state与switch的作用类似,都可以标记event的不同状态。不同点在于资源的制作,switch可以直接切换,state必须指定切换的方式。
[*]bank:Bank是event的集合或者容器,类似于AB包与资源的关系。想要播放声音,必须要加载相应的Bank。
[*]2D & 3D音效:2D音效以恒定的音量播放,3D音效根据3D空间距离动态控制音量。Wwise中的音效播放都需要传场景对象,对于2D音效来说,播放和接收声音是同一个对象。
[*]RTPC:Wwise工程中通过RTPC和特定对象的属性关联,这样就可以通过一个参数精准控制特定属性。常见于特定轨道的音量调整。
2.2 Unity初始化

public void Init()
{
    GameObject global = new GameObject(m_WwiseGlobalPrefabName);
    global.SetActive(false);
    GameObject.DontDestroyOnLoad(global);
    AkInitializer akInitializer = global.AddComponent<AkInitializer>();
    object settingObj = Resources.Load("AkWwiseInitializationSettings");
    if (settingObj != null)
    {
      AkWwiseInitializationSettings settings = settingObj as AkWwiseInitializationSettings;
      akInitializer.InitializationSettings = settings;
      global.SetActive(true);
    }
}
通过AkInitializer组件进行初始化,老版本可能没有InitializationSettings。
2.3 Wwise与Unity播放音效

// 加载Bank
AkBankManager.LoadBank("FirstBank", true, true);

// 通过event播放音效
AkSoundEngine.PostEvent(in_eventID, gameObject, m_CallbackType, finishCallback, null);

// 设置音量
AkSoundEngine.SetGameObjectOutputBusVolume(gameObject, listener, volume);
由于event归属于Bank,必须要先加载Bank才能抛事件。通过AkBankManager或AkBank进行加载。
2.4 清理

AkSoundEngine.ClearBanks();

参考


[*]Unity集成Wwise并进行开发的全流程教程
[*]无法识别Unity版本
[*]Wwise用户文档
页: [1]
查看完整版本: Unity Wwise基础使用