使用UE5.1.1做一个摄像机漫游角色
1.在内容浏览器空白处点击右键选择蓝图类,如下图:

2.选择第二个Pawn,创建一个新的蓝图类,随便取个名字,这里命名为CameraControlpawn,最好前面可以加个BP_,更规范一些


3.双击进入新创建的CameraControlPawn蓝图类,添加浮动pawn移动组件

4.接着添加弹簧臂组件和摄像机组件,其中将弹簧臂长度设置为0,如下图:

5.准备工作完成后,接下来进行增强输入操作设置,如下图,新建一个名为Input的文件夹,用来存放我们添加的数据资产;在该文件夹下再单独创建一个名为Action的文件夹,用来存放我们添加的输入操作数据资产,在Action文件夹下,右键点击空白处添加输入操作,五个即可,可以分别命名为IA_CameraForward,IA_CameraRight,IA_CameraUp,IA_MouseX,IA_MouseY,分别用来控制摄像机前后、左右、上下移动以及摄像机绕y轴和z轴的旋转


6.将值类型都改为Axis1D(浮点)

7.然后右键-输入-输入映射情境,创建一个输入映射数据资产,可以命名为IMC_Camera


8.双击打开IMC_Camera,添加映射,如下:

在这里设定W键向前,S键向后,那么就在S键添加一个否定即可,表示W值为1,S值为-1,之下同理

下面是各个输入操作的设置:



9.进入之前创建的CameraControlPawn类中的事件图表,在事件开始运行时添加输入映射,如下图所示:

在“添加映射上下文”节点处的“Mapping Context”选择之前创建的输入映射数据资产(IMC_Camera),如下图:

10.编写蓝图实现通过鼠标移动来旋转视角的功能,如下图:

11.编写蓝图实现通过键盘WASD按键进行摄像机前后左右移动的功能,如下图:
(Camera变量可直接从左侧组件树里拖出)

12.编写蓝图实现通过键盘EQ按键进行摄像机上下移动的功能,如下图:
方向设置为(0,0,1)即可

13.将CameraControlPawn蓝图类直接拖入场景中,设置自动控制玩家为“玩家0”,然后点击运行

14.运行后会发现摄像机的移动时正常执行的,但无法旋转视角,这是我们之前忘了勾选一个变量,此时进入到我们的CameraControlPawn蓝图类中,点击弹簧臂组件,在右侧细节面板找到“使用Pawn控制旋转”,将其勾选上,表示这个布尔变量的值为真,然后编译保存再运行就可以正常旋转了

15.但此时运行后我们还会发现一个问题,便是摄像机它会穿过场景中的物体,

为了修复它,我们再次进入到CameraControlPawn蓝图类中,为其添加一个box collision组件,如下图:

并将其碰撞预设改为Pawn

然后将Box设置为根即可:

用sphere collision组件应该更好一些,代替box collision
编译保存就可以正常运行了。
16.要想调节摄像机的速度和运动平滑的特性,可以直接改动浮动pawn移动组件中的最大速度、加速器以及减速度即可,一般加速度和减速度比最大速度低就可以让摄像机的移动比较平滑

还可以启用相机延迟和相机旋转延迟让运动更加丝滑

以上就是一个简单的摄像机漫游角色的构建。