相机 FOV 平滑过渡(虚幻引擎)
核心概念
Get World Delta Seconds
获取上一帧到下一帧的间隔时间(帧间隔),用于保证不同帧率下过渡速度一致。
Camera Field of View(FOV)
相机视场角,即游戏中常见的 FOV,控制视野广度。开镜时缩小 FOV 实现"望远"效果。
FInterp To(浮点插值)
让浮点数从「当前值」以先快后慢、自然减速的方式平滑趋近目标值。
| 引脚 | 含义 |
|---|---|
| Current | 当前值 |
| Target | 目标值 |
| Delta Time | 帧间隔(连接 Get World Delta Seconds) |
| Interp Speed | 插值速度,越大越快 |
工作原理:指数衰减插值,每帧移动距离 = (目标值 - 当前值) × 速度 × 帧间隔。离目标越远越快,越近越慢。
与 Lerp 的区别:
| 对比项 | FInterp To | Lerp |
|---|---|---|
| 过渡曲线 | 先快后慢,自然缓动 | 匀速直线 |
| 控制方式 | 只需设速度,自动计算 | 需手动控制 Alpha |
| 帧率适配 | 自带 Delta Time | 需自己处理 |
同族节点:VInterp To(向量)、RInterp To(旋转)、TInterp To(变换)
FOV 平滑过渡逻辑
整体功能
绑定增强输入 IA_Aim(鼠标右键):
- 按住:FOV 向 75(瞄准视野)平滑过渡
- 松开:FOV 向 DefaultFOV(默认视野)平滑过渡
开镜分支(Triggered)
按住期间持续触发,每次调用 FInterp To 返回微小增量,相当于循环效果:
- 清除退镜计时器(避免两个方向插值冲突)
- FInterp To 计算:当前 FOV → 75.0,速度 8.0
- Set Field Of View 应用结果
按住期间 Triggered 持续触发 → FInterp To 持续返回微小增量 → 达到循环效果
退镜分支(Completed)
松开是一瞬间的,需要用 Set Timer by Event 循环触发:
- 启动循环计时器:绑定
OutFOV事件,间隔 = Get World Delta Seconds,勾选 Looping OutFOV事件每帧执行:- FInterp To:当前 FOV → DefaultFOV
- Set Field Of View 应用
- Nearly Equal 判断是否接近目标(误差 0.1)
- 如果接近 → 清除计时器,停止循环

Set Timer by Event 的设计目的
- 按需执行:只在过渡过程中启动,结束后关闭,平时不占帧开销
- 生命周期独立:有独立句柄,可随时暂停/清除/重启
- 执行频率可自定义:可设为 0.02 秒(50次/秒)降低 CPU 消耗
- 逻辑解耦:封装在独立事件中,结构清晰
使用注意事项
- 必须每帧调用:FInterp To 是单帧计算,只调一次无过渡效果
- 务必连接 Delta Time:否则帧率影响过渡速度
- 理论上不会精确等于目标值:需加阈值判断(Nearly Equal)直接赋值