焦点

什么是焦点?

“焦点”是在3D定位时精细控制倾听点的功能。
通过使用焦点,可以分别控制从声源到倾听者的“距离”和“方向”。

焦点主要用于独立的摄像机和角色的第三人称游戏。
在CRIWARE UE4插件中,倾听者的位置基本上与摄像机的位置同步。
由于根据距离的音量衰减是根据声源与摄像机之间的距离计算,因此即使角色靠近声源,音量也会减小。

ADX_A_53_focuspoint.jpg

您可以通过使用角色的位置作为焦点来解决此问题。

ADX_A_57_focuspoint.jpg

上图为仅基于焦点来计算与声源的“距离”。
由于作为焦点的角色在声源附近,因此音量会变大。

可用途径

主要是TPS游戏等,很多情况下,想要将听到的声音调整为如下。
  • 以声源和角色的位置为基准,应用距离衰减。
  • 但声音传来的方向应该是以摄像机朝向和位置为基准的方向。
如上述一样,调整听到的声音效果后有以下优点。
  • 音量根据与角色的距离变化,用户容易掌握角色与声源的距离。
  • 声源的方位与视角一致,用户容易识别地图上对象的方向。
通过使用焦点,就能解决这样的难题。
此外,焦点还能用于解决以下问题。
  • 应用Occlusion
  • 判断声音是否被墙壁遮蔽,是通过角色和声源的位置关系来进行判断
  • 但声音传来的方向应该是以摄像机朝向和位置为基准的方向

焦点接口

要使用焦点功能有以下两种方法。

  • 使用焦点组件
  • 使用焦点信息和焦点控制函数

请注意,上述两者基本上不能同时使用。

如何使用焦点组件

如上所述,将下面介绍想要以声源和角色的位置为基准应用距离衰减时,如何使用焦点。
在选中角色的状态下,按详细信息窗口中的“添加组件”按钮。
criware_ue4_030_focus_point_press_button_add_component_j.jpg
添加“Atom Listener Focus Point”。
criware_ue4_030_focus_point_add_focus_point_component_j.jpg
只需完成以上操作,就能以角色为基准应用距离衰减,以摄像机位置为基准定位。
此外,还将应用以角色为基准的Occlusion。

焦点的详细规格

除了能实现在“可应用的用途”中介绍的两个用途之外,经过调整后,还能产生其他各种效果。
要充分使用焦点,需要立即其规格。

焦点的机制

预设状态下,摄像机和倾听者处于同一坐标。
criware_ue4_035_focus_point_default_j.png
配置焦点,可以在摄像机与焦点之间的任意位置移动收听点。
criware_ue4_035_focus_point_setting_j.png
例如,在焦点配置收听点后,可以在TPS游戏时根据与角色的位置关系对声源进行衰减。
criware_ue4_035_focus_point_example_j.png

“Atom Listener Focus Point”的参数

“Atom Listener Focus Point”可以设置以下参数。
  • Distance Focus Level
  • Direction Focus Level
(1)关于Distance Focus Level
Distance Focus Level是控制作为计算到声源距离的起点位置的参数。
Distance Focus Level设置为0时,以摄像机为起点计算到声源的距离。
(距摄像机越近的声源听起来音频越大。)
Distance Focus Level设置为1时,以焦点为起点计算到声源的距离。
(距焦点越近的声源听起来音频越大。)
(2)关于Direction Focus Level
Direction Focus Level是控制作为判定声源方向的起点位置的参数。
Direction Focus Level设置为0时,以摄像机为起点计算声源的方向。
(在摄像机右侧的音频从右边听到,在摄像机左侧的音频从左侧听到。)
Distance Focus Level设置为1时,以焦点为起点计算到声源的距离。
(在焦点右侧的音频从右边听到,在焦点左侧的音频从左侧听到。)

如何使用焦点信息和焦点控制函数

您可以将焦点信息直接设置给特定的倾听者,而无需使用焦点组件。
此时,请使用焦点控制函数。
以下将介绍在UAtomStatics中定义的焦点控制函数的一部分。

焦点控制函数 功能
SetListenerFocusPointInfo 获取与特定Player关联的倾听者的焦点信息
SetListenerFocusPointTargetActor 更改倾听者焦点信息中焦点所在Actor。
SetListenerFocusPointDistanceLevel 更改倾听者焦点信息中的Distance Focus Level

以下将介绍传递给上述函数的焦点信息,即FAtomListenerFocusPointInfo类的主要成员。

焦点信息的成员 说明
TargetActor 以Actor为焦点
DistanceLevel Distance Focus Level。距离与焦点的比率
DirectionLevel Direction Focus Level。指定倾听者与焦点之间的定位比

例如,您可以直接指定特定Actor来设置焦点,如下图所示。

criware_ue4_focusopint_bp_funcs.jpg

您还可以将Actor甚至场景组件用作焦点。