本教程以下步骤将展示如何在 Unity 中结合 Spatial Audio 使用 Reflect 插件。您需要获取 Reflect 插件授权才能生成 SoundBank,不过仍可在连接到 Wwise 设计工具时试用该插件。
A. Wwise Project(工程)
我们需要在 Wwise 工程中添加 Auxiliary Bus 并为其应用 Reflect 插件,另外还要导入 Acoustic Texture。
- 导入出厂素材来访问 Auxiliary Bus 预设和出厂 Acoustic Texture。
- 依次转到 Project > Import Factory Assets...。
- 选中 Reflect 和 Acoustic Textures 并按下 OK。
- Acoustic Texture 位于 Project Explorer 视图内 ShareSets 选项卡中的 Virtual Acoustics 文件夹中。
Factory Reflect Acoustic Textures in the Project Explorer ShareSets tab
- (可选) 在 Default Work Unit 下的 Virtual Acoustics 文件夹中,可添加自定义 Acoustic Texture。
- 添加用于早期反射的 Auxiliary Bus。
- 右键单击 Master Audio Bus,然后依次转到 New Child > Presets,并选择 Early Reflection Auxiliary Bus。
- 修改 Spatial Audio 教程准备工作 中添加的 Sound SFX
- 在 General Settings 选项卡中,在 Early Reflections 方框内添加刚才创建并应用了 Reflect 的 Auxiliary Bus。
在 Sound Property Editor 的 General Settings 选项卡中指定 Reflect Auxiliary Bus
- 保存工程。
B. Unity 工程
您可以使用 AkSurfaceReflector 组件来模拟早期反射。比如,您可以将 Surface Reflector 组件添加到游戏的现有 Mesh。不过,若形状过于复杂,则会向 Spatial Audio API 发送太多三角形,进而拖慢游戏运行速度。在这种情况下,可在 AkSurfaceReflector 组件本身中添加不同的 Mesh(如 Collision Mesh)。另外,您还可以通过创建新的 GameObject 来添加反射表面。在 Wwise Unity Demo Scene 提供的场景中,Surface Reflector 使用了新的对象。因为 Room 是 Cube 形状的,所以我们使用了不带 Mesh 渲染器的 Cube。
- 创建 Cube:GameObject > 3D Object > Cube
- 移除 Mesh Renderer 组件。
- 在 Box Collider 组件中选中 Is Trigger。
- 添加 AkSurfaceReflector 组件。
- 若要使用 MeshFilter 组件中的 Mesh,则 Mesh 参数可保留为 None。若不使用,则可在此添加想要的 Mesh。
- 在 Acoustic Textures 数组中,针对每个 Submesh 选择声学材质(Cube 只有一个 Submesh),或保留为 None 以便获得未经滤波的反射声。
- 在 Transmission Loss Values 数组中,可为每个 Submesh 的表面设置透射损失值。这些值将被用于对穿过 Mesh 的声音进行滤波。有关更多详细信息,请参阅 D. 透射 章节。
- 您可以使用 Enable Diffraction 复选框来启用衍射。有关详细信息,请参阅 E. 将 Room 与 Surface Reflector 关联(已弃用) 章节。
- 最后,将 Associated Room 保留设为 None。有关更多详细信息,请参阅 E. 将 Room 与 Surface Reflector 关联(已弃用) 章节。
AkSurfaceReflector 组件
- 在 AkWwiseInitializationSettings 的 Spatial Audio Settings 下设置反射阶数。
- Reflection Order 默认设为 1。最高可设为 4。
Spatial Audio Init Settings
- 若要查看场景中绘制的反射路径,请将 AkSpatialAudioDebugDraw 组件添加到发声体。
- 勾选所要绘制的反射阶数。
AkSpatialAudioDebugDraw 组件
C. 验证设置
- 在 Wwise Picker (Windows > Wwise Picker) 中:
- 生成 SoundBank
Wwise Picker
- 启动游戏并播放其中一个发声体。
- 在 Wwise 中连接游戏,并转到 Profiler 布局。Voice Graph 应如下图所示:
Voice Graph 中显示 Reflect Effect
- 在 Voice Graph 中的 Auxiliary Bus 节点下,双击高亮显示的 Wwise Reflect,打开 Reflect Effect Editor。在播放声音时,应会在 Voice Graph 和列表中看到当前的反射声。在 Texture(s) 列下显示两种材质时,表示其为二阶反射。
- 在此,可修改这些反射的衰减曲线。
- 若未看到任何反射,请确保 Max Distance 与发声体和听者之间的反射距离相比足够大。
Reflect Effect Editor View
- 转到 Game Object Profiler 布局(快捷键 F12)
- 确保在 Game Object 3D Viewer Settings 中启用 Diffraction Paths 和 Reflection Image Sources(如尚未启用)。
在 Game Object 3D Viewer Settings 中配置 Reflect
- 在 Game Object 3D Viewer 中,应会看到正在播放的发声体和 Spatial Audio 听者之间的 Surface Reflector 和反射路径。
Game Object 3D Viewer
info | 备注: | 注意,在建筑表面为 Cube 形状的 Surface Reflector 时,若发声体位于建筑内部而听者位于其外部(反之亦然),则即便该发声体正在播放,也无法获取其反射路径。这是因为建筑开口是反射表面的一部分。为了解决这一问题,可选择只将建筑的 Mesh 用作 Surface Reflector,或者在开口附近设置 Portal。有关 Portal 的详细信息,请参阅 Room 和 Portal 教程 。 |
- 参见
-