版本
menu_open
Wwise Unity Integration Documentation
Surface Reflector 教程

本教程以下步骤将展示如何在 Unity 中结合 Spatial Audio 使用 Reflect 插件。您需要获取 Reflect 插件授权才能生成 SoundBank,不过仍可在连接到 Wwise 设计工具时试用该插件。

备注:本教程假定您已完成 Spatial Audio 教程准备工作

A. Wwise Project(工程)

我们需要在 Wwise 工程中添加 Auxiliary Bus 并为其应用 Reflect 插件,另外还要导入 Acoustic Texture。

  1. 导入出厂素材来访问 Auxiliary Bus 预设和出厂 Acoustic Texture。
    1. 依次转到 Project > Import Factory Assets...。
    2. 选中 ReflectAcoustic Textures 并按下 OK。
  2. Acoustic Texture 位于 Project Explorer 视图内 ShareSets 选项卡中的 Virtual Acoustics 文件夹中。
    Factory Reflect Acoustic Textures in the Project Explorer ShareSets tab
    1. (可选) 在 Default Work Unit 下的 Virtual Acoustics 文件夹中,可添加自定义 Acoustic Texture。
  3. 添加用于早期反射的 Auxiliary Bus。
    1. 右键单击 Master Audio Bus,然后依次转到 New Child > Presets,并选择 Early Reflection Auxiliary Bus。
  4. 修改 Spatial Audio 教程准备工作 中添加的 Sound SFX
    1. 在 General Settings 选项卡中,在 Early Reflections 方框内添加刚才创建并应用了 Reflect 的 Auxiliary Bus。
      在 Sound Property Editor 的 General Settings 选项卡中指定 Reflect Auxiliary Bus
  5. 保存工程。

B. Unity 工程

您可以使用 AkSurfaceReflector 组件来模拟早期反射。比如,您可以将 Surface Reflector 组件添加到游戏的现有 Mesh。不过,若形状过于复杂,则会向 Spatial Audio API 发送太多三角形,进而拖慢游戏运行速度。在这种情况下,可在 AkSurfaceReflector 组件本身中添加不同的 Mesh(如 Collision Mesh)。另外,您还可以通过创建新的 GameObject 来添加反射表面。在 Wwise Unity Demo Scene 提供的场景中,Surface Reflector 使用了新的对象。因为 Room 是 Cube 形状的,所以我们使用了不带 Mesh 渲染器的 Cube。

  1. 创建 Cube:GameObject > 3D Object > Cube
    1. 移除 Mesh Renderer 组件。
    2. Box Collider 组件中选中 Is Trigger
    3. 添加 AkSurfaceReflector 组件。
      1. 若要使用 MeshFilter 组件中的 Mesh,则 Mesh 参数可保留为 None。若不使用,则可在此添加想要的 Mesh。
      2. Acoustic Textures 数组中,针对每个 Submesh 选择声学材质(Cube 只有一个 Submesh),或保留为 None 以便获得未经滤波的反射声。
      3. Transmission Loss Values 数组中,可为每个 Submesh 的表面设置透射损失值。这些值将被用于对穿过 Mesh 的声音进行滤波。有关更多详细信息,请参阅 D. 透射 章节。
      4. 您可以使用 Enable Diffraction 复选框来启用衍射。有关详细信息,请参阅 E. 将 Room 与 Surface Reflector 关联(已弃用) 章节。
      5. 最后,将 Associated Room 保留设为 None。有关更多详细信息,请参阅 E. 将 Room 与 Surface Reflector 关联(已弃用) 章节。
        AkSurfaceReflector 组件
  2. 在 AkWwiseInitializationSettings 的 Spatial Audio Settings 下设置反射阶数。
    1. Reflection Order 默认设为 1。最高可设为 4。
      Spatial Audio Init Settings
  3. 若要查看场景中绘制的反射路径,请将 AkSpatialAudioDebugDraw 组件添加到发声体。
    1. 勾选所要绘制的反射阶数。
      AkSpatialAudioDebugDraw 组件

C. 验证设置

  1. 在 Wwise Picker (Windows > Wwise Picker) 中:
    1. 生成 SoundBank
      Wwise Picker
  2. 启动游戏并播放其中一个发声体。
    1. 在 Wwise 中连接游戏,并转到 Profiler 布局。Voice Graph 应如下图所示:
      Voice Graph 中显示 Reflect Effect
    2. 在 Voice Graph 中的 Auxiliary Bus 节点下,双击高亮显示的 Wwise Reflect,打开 Reflect Effect Editor。在播放声音时,应会在 Voice Graph 和列表中看到当前的反射声。在 Texture(s) 列下显示两种材质时,表示其为二阶反射。
      1. 在此,可修改这些反射的衰减曲线。
      2. 若未看到任何反射,请确保 Max Distance 与发声体和听者之间的反射距离相比足够大。
        Reflect Effect Editor View
    3. 转到 Game Object Profiler 布局(快捷键 F12)
      1. 确保在 Game Object 3D Viewer Settings 中启用 Diffraction Paths 和 Reflection Image Sources(如尚未启用)。
        在 Game Object 3D Viewer Settings 中配置 Reflect
      2. 在 Game Object 3D Viewer 中,应会看到正在播放的发声体和 Spatial Audio 听者之间的 Surface Reflector 和反射路径。
        Game Object 3D Viewer
备注:若无法在 Game Object 3D Viewer 中看到任何几何构造,则可能需要在 Initialization Settings 中调大 Monitor Queue Pool Size。请参阅 调整 Wwise Initialization Settings 页面。
备注:注意,在建筑表面为 Cube 形状的 Surface Reflector 时,若发声体位于建筑内部而听者位于其外部(反之亦然),则即便该发声体正在播放,也无法获取其反射路径。这是因为建筑开口是反射表面的一部分。为了解决这一问题,可选择只将建筑的 Mesh 用作 Surface Reflector,或者在开口附近设置 Portal。有关 Portal 的详细信息,请参阅 Room 和 Portal 教程
参见

此页面对您是否有帮助?

需要技术支持?

仍有疑问?或者问题?需要更多信息?欢迎联系我们,我们可以提供帮助!

查看我们的“技术支持”页面

介绍一下自己的项目。我们会竭力为您提供帮助。

来注册自己的项目,我们帮您快速入门,不带任何附加条件!

开始 Wwise 之旅