游戏蓝图

观察者 Spectator

CARLA 的 Spectator(观察者)是一个用于自由视角浏览模拟世界的角色。该蓝图控制了相机的移动、旋转、视场角(FOV)调整及相关输入响应行为,适用于调试、观察交通场景或记录图像等任务。

实现步骤(Camera Controller)

  1. 初始化输入绑定
    在蓝图中,为“前后左右上下”、Shift、鼠标右键、滚轮等操作设置事件监听。

  2. 定义移动逻辑

  3. 在每个 Tick 事件中,检测按键状态(例如“W”、“A”、“S”、“D”、Shift);
  4. 根据输入方向,计算相机当前位置的偏移量;
  5. 调整速度,支持按加速键提升移动速率。

  6. 处理鼠标控制

  7. 鼠标按下右键开启自由视角旋转模式;
  8. 捕获鼠标移动事件,按比例调整相机的 Pitch(仰角)和 Yaw(偏航)角度;
  9. 鼠标滚轮事件调整视场角(FOV),实现缩放。

  10. 截图功能实现

  11. 在按下F12时,调用图库或截图函数;
  12. 捕获当前画面,将图像保存到预定义路径;
  13. 可配置分辨率参数。

  14. 辅助功能扩展

  15. 实现快捷键切换不同摄像头视角(如驾驶模拟中的主视角、鸟瞰视角);
  16. 设计位置记录和回放功能,用于自动巡航和演示;
  17. 结合VR设备,支持头部追踪实现沉浸式观察。

  18. 调试及优化

  19. 在蓝图中逐步测试每个输入响应逻辑;
  20. 调节数值参数(如移动速度、旋转敏感度、FOV变化速率)达到理想体验。

核心事件和输入响应

事件Tick:

功能:在每一帧中持续调用,用于处理视角更新和速度调整。

具体行为: * 检测输入按键状态,决定相机的移动方向(前/后、左/右、上/下); * 根据按下的加速键(如Shift)动态调整移动速度; * 处理鼠标输入用于控制相机俯仰与偏航,实现视角旋转; * 动态调节相机的视场角(FOV),通常配合鼠标滚轮。

左Shift(Left Shift) :

按下时 * 增加相机移动速度,实现快速位移; * 设置加速度状态标志,用于 Tick 事件中提升移动速率。

松开时 * 恢复默认移动速度 * 重复加速标志

鼠标右键(Z键)

按下时 * 启用自由视角旋转模式; * 鼠标移动将控制相机的方向(pitch 和 yaw)。

松开时 * 禁用自由视角旋转; * 保持当前视角方向。

鼠标中键

按下时 * 通常用于切换某些辅助功能,例如启用 HUD(若与 HUD 系统挂钩); * 可用于重置 FOV / 镜头状态

松开时 * 执行收尾或复原操作。

F12

功能:截图当前画面并保存至本地。

行为描述 * 捕获当前游戏窗口图像; * 将图像保存到路径(保存当前界面的截图到Unreal\CarlaUE4\Saved\Screenshots\Windows目录中); * 默认分辨率为 1920 x 1080,可以通过控制台命令覆盖设置;

应用场景 * 数据采集:记录场景图像用于训练或验证; * 调试场景:生成高分辨率图像排查可视化问题; * 演示素材:生成文档或展示用截图。

其他可扩展功能

  • 滚轮缩放 FOV:允许用户通过滚轮缩放视角,模仿“望远镜”功能;
  • Tab 切换不同摄像头视角:在预设观测点或多个车辆间快速切换;
  • 可配置快捷键:将按键映射集中到数据表或配置文件中,便于重定义;
  • 位置记录/回放:允许记录当前摄像机轨迹并进行回放操作(适用于自动巡航场景演示);
  • 头部跟踪集成:接入 VR 设备或头戴追踪器,实现更自然的观察体验。