游戏蓝图
观察者 Spectator
CARLA 的 Spectator(观察者)是一个用于自由视角浏览模拟世界的角色。该蓝图控制了相机的移动、旋转、视场角(FOV)调整及相关输入响应行为,适用于调试、观察交通场景或记录图像等任务。
实现步骤(Camera Controller)
-
初始化输入绑定
在蓝图中,为“前后左右上下”、Shift
、鼠标右键、滚轮等操作设置事件监听。 -
定义移动逻辑
- 在每个
Tick
事件中,检测按键状态(例如“W”、“A”、“S”、“D”、Shift
); - 根据输入方向,计算相机当前位置的偏移量;
-
调整速度,支持按加速键提升移动速率。
-
处理鼠标控制
- 鼠标按下右键开启自由视角旋转模式;
- 捕获鼠标移动事件,按比例调整相机的
Pitch
(仰角)和Yaw
(偏航)角度; -
鼠标滚轮事件调整视场角(FOV),实现缩放。
-
截图功能实现
- 在按下
F12
时,调用图库或截图函数; - 捕获当前画面,将图像保存到预定义路径;
-
可配置分辨率参数。
-
辅助功能扩展
- 实现快捷键切换不同摄像头视角(如驾驶模拟中的主视角、鸟瞰视角);
- 设计位置记录和回放功能,用于自动巡航和演示;
-
结合VR设备,支持头部追踪实现沉浸式观察。
-
调试及优化
- 在蓝图中逐步测试每个输入响应逻辑;
- 调节数值参数(如移动速度、旋转敏感度、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 设备或头戴追踪器,实现更自然的观察体验。