在UE中使用CameraShake,主要是为了通过屏幕震动增强玩家的沉浸感和对游戏事件的感知,让操作反馈更真实、更具冲击力。在游戏中的角色被炮弹击中,被击飞,可以通过CameraShake来提升体验。
创建CameraShake
我们创建一个蓝图类,选择摄像机晃动基础

单一实例,勾选后,只会存在一个实例,不会出现多个相同的震动叠加的效果


Perlin 噪点摄像机晃动模式(最常用)使用 Perlin Noise(连续随机噪声)每一帧是平滑变化的,没有明显周期 适合:枪、爆炸、受击
合成摄像机晃动模式(工程级利器)把多个 Camera Shake 组合在一起,像 Layer / Stack,适合:第一 / 第三人称主摄像机,大型项目
序列摄像机晃动模式(演出专用)使用 Camera Animation Sequence 本质就是:播放一段预先做好的摄像机动画 适合:Boss / 过场 / 地震
波振荡器摄像机晃动模式(老派,但很"准")周期性非常明显"一上一下、一左一右"有节奏感 适合:呼吸晃动,心跳等
如果做战斗相机震动,推荐使用Perlin 噪点摄像机晃动模式,接下来,我们查看对应的配置项

Location,Rotation和FOV都包含振幅和频率,振幅就是幅度范围的意思相当于强度,频率就是抖动的速度
位置可以理解为相机的位置偏移,Rotation可以理解为相机的摇头,FOV相当于视角的变动
Timing是震动的生命周期
应用相机震动

我们需要上面的节点来调用即可实现相机震动效果
Epicenter相当于震源中心
Inner Radius 如果相机和震源中心的距离小于内半径,将会体验完整版本的震动效果
Outer Radius 如果相机和震源中心的距离大于外半径,将不会触发震动效果
Falloff 如果相机和震源中心的距离在内半径和外半径的中间区域,那么将根据设置的衰减值体验到一个减弱版本的震动效果
Orient Shake Towards Epicenter(朝向震源)不勾选,抖动方向由Shake定义,如果勾选,摄像机的抖动方向会指向 Epicenter,适合冲击波,爆炸等效果。
在蒙太奇里添加相机震动
如果你想在蒙太奇里添加震动效果,如何添加呢,我们需要通过动画通知实现。
先创建一个动画通知

重载已接收通知事件

在接收通知里,我们调用播放相机震动的节点,为了增加通用性,我们将参数都设置为变量,并公开

在动画蒙太奇里,我们像加其它通知一样,将当前通知添加

选中后,在右侧就可以配置对应的参数
