为便于快速精准地放置 AkAcousticPortal 和 AkSpatialAudioVolume,Wwise Unreal Integration 现在允许检测场景周围的 Static Mesh Geometry,并确定场景内 Portal 和 Volume 的适宜尺寸和位置。用户可将 Fit to Geometry 用于各种常见的房间、窗户和地板形状。本节将简要阐述如何使用 Fit To Geometry 来放置 AkAcousticPortal 和 AkSpatialAudioVolume。
|
注記: 为确保能够正常使用 Fit To Geometry,须在 Viewport Options 中启用 Realtime。
在 Viewport Options 中启用 Realtime
|
Fit To Geometry 前提要求
- 在 Wwise Integration Settings 中,选择所需默认碰撞通道。Fit To Geometry 功能使用 Unreal Engine 执行射线追踪,这些射线必须能与周围的 Static Mesh Geometry 相交。因此,碰撞通道必须与 AkAcousticPortal 和 AkSpatialAudioVolume 所在 Static Mesh 的碰撞参数对应。
- 在必要时,各个 AkAcousticPortal 和 AkSpatialAudioVolume 可覆盖默认碰撞通道,转而选用其他碰撞通道。AkAcousticPortal 和 AkSpatialAudioVolume 所对应的 Details 面板中均可找到此设置。
- 若在 AkSurfaceReflectorSet 上使用声学材料模拟早期反射,请务必在 Wwise Integration Settings 内设置所需映射。有关详细信息,请参阅 将 Acoustic Texture 自动指派给 AkSpatialAudioVolume 章节。
|
注記: Fit To Geometry 功能仅可用于 Level Editor 视口内的 "AkAcousticPortal" 和 "AkSpatialAudioVolume" Actor。其既不可用在 Blueprint Editor 视口内,也不可用在构成上述 Actor 的各个组件(AkPortalComponent、AkSurfaceReflectorSet、AkRoomComponent 和 AkLateReverb)上。 |
使用 Fit To Geometry 放置 AkSpatialAudioVolume
- 最初会在 AkSpatialAudioVolume 所对应的 Details 面板中启用相应选项后执行 Fit To Geometry 操作。随后,每次使用 Transform 小组件将 Volume 变换到新的位置都会执行 Fit To Geometry 操作。
- 在拖动 Transform 小组件时,会显示黄色预览框线以指示 AkSpatialAudioVolume 与游戏世界中特定位置的贴合状况。您可以拖动 Volume 直至达到想要的贴合效果,然后松开鼠标来更新 AkSpatialAudioVolume 的 Brush Volume。注意,在执行 Fit To Geometry 操作后,"AkSpatialAudioVolume" Actor 的变换保持不变,而只修改子级 Brush 组件。
- Fit To Geometry 操作通过追踪从 Actor 的原点以球状形式向外散发的若干条射线来探测墙壁。这些射线的碰撞点会显示为绿色(忽略碰撞时显示为红色)。藉此,可记录射线碰撞位置来检查所生成的形状,以确保使用了正确的碰撞通道,并将正确的 Acoustic Texture 指派给了所生成的表面。
- 支持的形状共有三种;可在 AkSpatialAudioVolume 的 Details 面板中选择形状类型。
-
Oriented Box – 朝向任意的箱形 Room。系统会在 Fit To Geometry 操作过程中自动确定箱体的朝向。同时,通过查找能将所有绿色碰撞点涵盖在内的最小箱体(按容量计)来计算形状。
-
Aligned Box – 朝向固定的箱形 Room。箱体的朝向由用户指定。您可以使用 Transform 小组件旋转 "AkSpatialAudioVolume" Actor 来更改其朝向。Aligned Box 适合用于调节 Volume 以使其与可能包含多个障碍物的箱形区域相称(若使用 Oriented Box 形状,则无法精确对齐),或者调节箱体以使其与墙壁之间或窄道之内的室外区域相称。
- 在有些情况下(比如所有碰撞点位于同一平面),一组给定的追踪射线会生成体积为零的 AkSpatialAudioVolume。这时将把箱体的框线显示为红色,并且不会更新形状。同时,在屏幕左下方显示错误消息。若要解决此问题,请将 AkSpatialAudioVolume 移到新的位置并重试。
-
Convex Polyhedron – 完全封闭的凸多面体形 Room。这种形状最为复杂,放置时容易产生偏差。不过,在调节 Volume 以使其与不含平行墙壁的 Room 或非箱形 Room 相称时会比较省力。注意,Room 必须为凸形且完全封闭。也就是说,其不能包含带有开口的墙壁、天花板等等。
- 在有些情况下,无法从来自特定位置的追踪射线找到封闭的凸形形状。这时会将形状的框线显示为红色,并且不会更新形状。同时,在屏幕左下方显示错误消息。若要解决此问题,请将 AkSpatialAudioVolume 移到新的位置并重试。
- 可使用 AkSpatialAudioVolume 所对应 Details 面板中的滑杆来过滤射线投射碰撞点。
- 这些射线在内部按长度排序。由滑杆决定当中最短碰撞射线所占的百分比。
- 比如,若将滑杆设为 0.75,则使用 75% 的最短射线来应用放置操作,而忽略 25% 的最长射线。
- 留下的碰撞射线显示为绿色,滤掉的碰撞射线显示为红色。
- 在有部分射线通过窗户或房门逸出而使得其碰撞点产生错误结果时,可通过过滤碰撞点很好地加以解决。
- 在使用 Aligned Box 形状时,碰撞点过滤功能最为有用。因为在减少碰撞射线时不会导致朝向定位错误(Aligned Box 的朝向是固定的),而且任何形状都可应用射线过滤。
将 Acoustic Texture 自动指派给 AkSpatialAudioVolume
- 系统会依据 Fit To Geometry 所执行射线追踪的碰撞结果和 Wwise Integration Settings 中定义的声学材料映射,将 Acoustic Texture 自动指派给 AkSpatialAudioVolume 的表面。
- Unreal Engine 中的射线追踪结果会生成 Physical Material。藉此,可利用 Project Settings 中设置的映射来将每种 Physical Material 映射至 Acoustic Texture。
- 一般会将一条以上的碰撞射线投射到所生成的 AkSpatialAudioVolume 表面上,而且每条碰撞射线都可能会返回一种不同的 Physical Material。这时会选择将具有最多碰撞射线的 Physical Material 映射到 Acoustic Texture。
- 部分射线可能会碰到不合要求的表面,而其并不能代表所生成 AkSpatialAudioVolume 表面的声学属性。比如,石膏板表面的有些地方可能会有木质镶边,但从整体来说石膏板比木材更能代表墙壁的声学特性。在大部分情况下,都有足够的碰撞点可供指派给表面积较大的 Acoustic Texture。若非如此,请略微变换一下 AkSpatialAudioVolume 来稍稍移动碰撞点。倘若仍然无法获得想要的效果,可在 AkSurfaceReflectorSet 所对应的 Details 面板中手动指派 Acoustic Texture。
- 在使用 Fit To Geometry 放置 AkSpatialAudioVolume 前,需在 Wwise Integration Settings 中根据需要合理创建 Physical Material 和 Acoustic Texture 之间的映射。若在放置 AkSpatialAudioVolume 后更改材料映射,则不会更新其声学材料。
|
注記: 因为 Fit To Geometry 必须使用 Unreal Engine 的 Complex Collision 来查找构成 Static Mesh 的各个三角形,所以无法检索已经指派给 Static Mesh Actor 的 Phys Material Override 属性的 Physical Material。该属性只应用于 Simple Collision,而不会映射至声学材料。 |
使用 Fit To Geometry 放置 AkAcousticPortal
- 跟 AkSpatialAudioVolume 一样,最初会在 AkAcousticPortal 所对应的 Details 面板中启用相应选项后执行 Fit To Geometry 操作。随后,每次使用 Transform 小组件将该 Actor 变换到新的位置都会执行 Fit To Geometry 操作。
- 在拖动 Transform 小组件时,会显示黄色预览框线以指示 AkAcousticPortal 与游戏世界中特定位置的贴合状况。您可以拖动 Actor 直至达到想要的贴合效果,然后松开鼠标来更新 AkAcousticPortal。
- Fit To Geometry 操作通过追踪从 Actor 的原点以球状形式向外散发的若干条射线来探测窗户和门廊。在找到潜在的窗户或门廊时,会沿着表面法线方向发射二次射线,来检测窗户或门框的另一端。
- 只有在开口具有明显边框且垂面朝内时才能检测到 Portal。
在左侧示例中,AkAcousticPortal 可检测到开口;在右侧示例中,无法检测到开口,因为 Mesh 太薄了。
- 使用 Details 面板内的 Detection Radius 属性来限制所检测开口的大小。通常来说,该值要大于所要检测的开口大小,同时又小于整个 Room 的尺寸。
- 对于大部分采用厘米作为单位且窗户和房门开口大小适中的 Unreal 工程,500 的默认值即可满足需要。当然,您也可以根据具体情况来调节该值以贴合 Static Mesh 的尺寸。
- 若 Detection Radius 小于开口大小,则将无法找到 Portal。
- 若 Detection Radius 太大,则可能会检测到宽度跨越整个 Room 的错误 Portal。
- Portal 不能带有与 Fit To Geometry 追踪射线碰撞的实体房门或窗户(由 Collision Channel 属性决定)。否则,将无法检测到开口。若开口带有窗户或房门,请使用不同的碰撞设定,或按下 H 来隐藏窗户/房门,以便忽略 Mesh。
Fit To Geometry 使用技巧
- 要想在关卡中快速填充 "AkAcousticPortal" 和 "AkSpatialAudioVolume" Actor,一般只需在相应 Actor 上启用 Fit To Geometry,然后在按住 Alt 的同时拖动 Actor 的 Translation 小组件,以此复制 Actor 并将其放置到关卡中的新位置。
- 若某些 Static Mesh Actor(如家具、道具、灯具等)妨碍了 Fit To Geometry 所执行的射线追踪并导致产生错误的结果,可通过按下 H 来隐藏这些 Actor,以便 Fit To Geometry 射线追踪将之忽略。