UE编辑器相机窗口运行时相机fov 大小不一致
问题:相机要显示全屏,显示的窗口两侧不能有黑框,会在相机上取消Constrain Aspect Ratio (取消宽高比限制),相机会根据宽高比约束去改变运行时的fov 大小
- 引擎底下BaseEngine.ini 有配置AspectRatioAxisContranit = AspectRatio_MaintainYFov 默认按Y 轴不变,X轴按视口宽高比进行拉伸
- 在编辑器的设置 Level Editor | viewports| Aspect Ratio Axis Contranit 中默认相机Fov轴 是AspectRatio_MaintainXFov
- 修改两个配置相机约束轴一样视口内容就一样了
运行时还可以在相机组件上重载相机约束
camera component 上有 AspectRatioAxisContranit = AspectRatio_MaintainYFov
其他:
相机组件上可能会用到的参数
Fov:调整视口大小的(近景fov15-20 远景90 多, 具体看场景),切换相机靠近的时候可以动态调整fov 效果更好些(ue 的 cropout 示例里面有fov 动态调整)
constrain Aspect Ratio: 限制窗口宽高比(不拉伸)
AspectRatioAxisContranit:限制拉伸对应的不变的轴向
override AspectRatioAxisContranit : 使AspectRatioAxisContranit生效
后处理上可以开focal distance 对相机进行聚焦
Spring Arm Component(弹簧臂):
- Enable Camera Lag 用于相机位置平滑
- Enable Camera Rotation Lag 用于相机旋转平滑
- Draw Debug Lag Markers 输出当前相机中心和目标中心
- DoCollisionTest 相机碰撞的时候自动抬高相机
PlayerController->SetViewTargetWithBlend 可以切换相机混合(支持平滑)
可以重载 UCameraModifer 的ModifyCamera 修改视口fov 起点位置(UCameraModifer_CameraShake 实现振动 )
PlayerCameraManager->StartCameraShake(…
PlayerCameraManager->AddNewCameraModifier(…
实现相机变黑和显示
PlayerCameraManager->StartCameraFade