UE4-(蓝图)第十六课键盘控制人物移动鼠标控制视角

  • Post author:
  • Post category:其他


一、如果没有第三人称控制场景,在内容浏览面板点击新增按钮选择添加功能或内容包,蓝图功能中选择 ThirdPerson,内容包中选择StarterContent,选择完成后点击添加到项目。分开添加即可。



二、选择ThirdPersonBP文件夹打开Maps文件夹下的ThirdPersonExampleMap场景,将场景中的ThirdPersonCharacter及NetworkPlayerStart删除,也可在世界大纲中删除。


三、新建文件夹用于保存自己创建的蓝图,在文件夹中右键创建蓝图类,或者使用工具栏中的Blueprints创建蓝图类,说明:

常用的有三种蓝图类:1.Actor 此类型不能被操控可以为桌子椅子

2.Pawn:可以被操控的任何物体,但是没有重力效果

3.Character:创建人物角色蓝图类,此类型蓝图类,自带很多关于运动参数组件,并且有重力效果。

创建第三种蓝图类,命名为 Test_Player。


四、1.双击打开新创建的Test_Player蓝图类,在Components面板选择Mesh,细节面板在Mesh选择人物模型骨骼。并调整模型位置



2.添加摇臂,增加中搜索Spring Arm,该物体作用是固定子父物体的距离,也防止穿模。在Spring Arm下创建Camera。设置摇臂细节属性。


重点:

1.Target Arm Length:固定摇臂长度,可以设置摄像机到模型中心点的距离,有碰撞时可以自动伸缩。

2.Use Pawn Control Rotation:勾选后,摇臂将不跟随其父物体(人物模型)进行旋转。(鼠标朝向为正方向)

3.在该蓝图类中,系统默认为目标物体,将跟随PlayerController的旋转进行匹配(键盘朝向为正方向),所以也要将该默认值进行取消,在蓝图类中的类默认值中,细节面板Pawn下将Use Controller Rotation Yaw 取消勾选。

第2.3条中的两个选项只能有一个勾选,才可以实现人物模型旋转的时候,可以看到人物模型的所有角度,如果系统默认(键盘朝向为正方向)没有取消勾选,则人物旋转的时候,相机跟随旋转,永远只能看到人物模型的后背。

3.选择Test_Player,细节面板将PlayerController设置为Player0.

五、在此场景中,系统已经创建好控制人物模型移动及鼠标旋转方法,在蓝图类工具栏->编辑->项目设置->输入/Bindings中查看


点开具体细节,MoveForward 及MoveRight 是控制人物前后、左右移动的自定义事件,该事件是通过按键产生的值进行移动操作产生。以后项目中有可以进行此类操作的都可以自己在这个界面进行自定义事件,方便项目中使用。

6.蓝图类空白处右键创建

MoveForward事件节点及MoveRight事件节点,

Get Control Rotation节点:用来获取当前蓝图控制的角色的旋转值

Get Forward Vector 节点及Get Right Vector节点 :通过获取的角色旋转值转换为Vector3类型获取当前的正方向及右方向。

Add Movement Input节点:沿给定方向控制物体移动(前后,左右,两个方向,所以需要创建两个该节点)World Direction值要与Scale Value的值进行相乘

注意:我们最终要得到沿着相机看到的前方为正前方,使物体移动,所以需要物体始终在x y轴进行移动,z轴不参加移动运算,

所以需要使用break Rotator 及 Make Rotator 节点,将z轴上的值固定

7.蓝图连线

8.将我们创建的蓝图类物体,拖拽到世界大纲中,调整好位置,运行,通过按WSAD控制人物进行运动。

9.运行后发现人物模型在运动时并没有随着方向的不同进行旋转方向。返回到蓝图类中,选择组件面板选择CharacterMovement,细节面板中,找到Character Movement(Rotation Setting)项,将Orient Rotation to Movement勾选,该选项含义为使物体有转身效果。

10.设置鼠标控制相机旋转效果

使用已设置好的 LookUp 节点及 Trun 节点,通过控制人物的yaw偏航角及pitch俯仰角。

11.蓝图连接后,运行鼠标可以旋转相机,就可以键盘控制人物移动



版权声明:本文为lei_7103原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。