Unity | 渡鸦避难所-4 | 镜头跟随角色移动

2023-12-25 12:18:23

1 Cinemachine 简介

在第一人称视角的游戏中,摄像机需要时刻跟随角色移动。除了手动计算摄像机的位置、旋转外,也可以使用 Unity 提供的 Cinemachine 插件来轻松实现摄像机的控制

Cinemachine 是一套用于操作 Unity 相机的模块,解决了跟踪目标、合成、混合和镜头之间剪切的复杂数学和逻辑。它旨在显着减少开发过程中耗时的手动操作和脚本修改的数量。更多信息请参阅文档: 「https://docs.unity3d.com/Packages/com.unity.cinemachine@2.9/manual/index.html」

2 安装并创建虚拟相机

1 安装 Cinemachine

菜单栏中选择 Window > Package Manager,弹出窗口中的 Package 选择 Unity Registry,输入 Cinemachine 关键词,搜索并安装

2 创建虚拟相机对象

在 Hierarchy 中的任意地方右键,创建 Virtual Camera,如果在游戏对象上,路径为:GameObject > Cinemachine > Virtual Camera,如果是空白处,路径为:Cinemachine > Virtual Camera

3 镜头跟随

1 设置跟随目标

为了更好的控制角色,角色模型的锚点通常在脚底,而游戏中希望摄像机捕捉的位置是角色的头部。所以在 PlayerController 中创建一个对象,命名为 Head,调整位置到角色的头部。然后将其拖入到虚拟相机的 Follow 属性中,摄像机就会以阻尼运动的方式跟随 Head,且与目标保持固定距离

2 选择跟随算法

Body 属性指定在场景中移动虚拟摄像机的算法。关于不同算法的详细介绍,请参阅文档:「https://docs.unity3d.com/Packages/com.unity.cinemachine@2.6/manual/CinemachineVirtualCameraBody.html」

游戏中期望镜头像王者和原神一样,角色移动时,相机以固定的角度跟随角色,且与角色保持固定的距离

据此需求,选择 Framing Transposer,此虚拟相机机身算法将相机以固定的屏幕空间关系移动到跟随目标,还可以指定偏移、阻尼和合成规则。Framing Transposer 仅改变相机在空间中的位置,它不会重新定向或以其他方式瞄准相机

Framing Transposer 专为 2D 和正交相机而设计,但它也适用于透视相机和 3D 环境

该算法首先沿相机 Z 轴移动相机,直到跟随目标距相机 XY 平面达到所需距离。然后,它在 XY 平面上移动摄像机,直到跟随目标位于摄像机屏幕上的所需点

注意:Framing Transposer 会忽略 LookAt 目标,仅使用 Follow 目标

更多关于 Framing Transposer 的信息,请参阅文档: 「https://docs.unity3d.com/Packages/com.unity.cinemachine@2.9/manual/CinemachineBodyFramingTransposer.html」

选择 Framing Transposer 后,根据 Aim 属性的提示,将其选择为 Do nothing

3 调整跟随参数

选定虚拟相机的移动算法后,在对应的属性面板中调节相关参数,这里仅更改两个参数:

  • Tracked Object Offset:相对于跟踪对象的偏移

  • Camera Distance:沿相机轴与跟随目标保持的距离

在 Game 视图中可以即时看到调整后的效果,运行后,摄像机就可以时刻捕捉角色的头部位置

文章来源:https://blog.csdn.net/u010799737/article/details/135193260
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。