什么是焦点?
- “焦点”是在3D定位时精细控制倾听点的功能。
通过使用焦点,可以分别控制从声源到倾听者的“距离”和“方向”。
焦点主要用于独立的摄像机和角色的第三人称游戏。
在CRIWARE UE4插件中,倾听者的位置基本上与摄像机的位置同步。
由于根据距离的音量衰减是根据声源与摄像机之间的距离计算,因此即使角色靠近声源,音量也会减小。
您可以通过使用角色的位置作为焦点来解决此问题。
上图为仅基于焦点来计算与声源的“距离”。
由于作为焦点的角色在声源附近,因此音量会变大。
可用途径
- 主要是TPS游戏等,很多情况下,想要将听到的声音调整为如下。
- 以声源和角色的位置为基准,应用距离衰减。
- 但声音传来的方向应该是以摄像机朝向和位置为基准的方向。
- 如上述一样,调整听到的声音效果后有以下优点。
- 音量根据与角色的距离变化,用户容易掌握角色与声源的距离。
- 声源的方位与视角一致,用户容易识别地图上对象的方向。
- 通过使用焦点,就能解决这样的难题。
- 此外,焦点还能用于解决以下问题。
- 应用Occlusion
- 判断声音是否被墙壁遮蔽,是通过角色和声源的位置关系来进行判断
- 但声音传来的方向应该是以摄像机朝向和位置为基准的方向
焦点接口
要使用焦点功能有以下两种方法。
请注意,上述两者基本上不能同时使用。
如何使用焦点组件
- 如上所述,将下面介绍想要以声源和角色的位置为基准应用距离衰减时,如何使用焦点。
- 在选中角色的状态下,按详细信息窗口中的“添加组件”按钮。
- 添加“Atom Listener Focus Point”。
- 只需完成以上操作,就能以角色为基准应用距离衰减,以摄像机位置为基准定位。
此外,还将应用以角色为基准的Occlusion。
焦点的详细规格
- 除了能实现在“可应用的用途”中介绍的两个用途之外,经过调整后,还能产生其他各种效果。
要充分使用焦点,需要立即其规格。
焦点的机制
- 预设状态下,摄像机和倾听者处于同一坐标。
-
- 配置焦点,可以在摄像机与焦点之间的任意位置移动收听点。
-
- 例如,在焦点配置收听点后,可以在TPS游戏时根据与角色的位置关系对声源进行衰减。
-
“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来设置焦点,如下图所示。
您还可以将Actor甚至场景组件用作焦点。