在C++学习篇中有介绍如何使用UE4C++去处理角色的基础移动,那么本篇介绍使用蓝图去处理角色的基础移动。
1、创建Character类;
添加一个SpringArmComponent组件,在其下方添加一个CameraComponent组件能够看到角色,SpringArmComponent的添加是为了更加顺滑的处理角色和场景之间有遮挡时,该如何处理。
2.项目配置中处理输入,轴绑定和按键绑定;
什么是轴绑定和按键绑定?
轴绑定:可认定为连续输入,会逐帧报告自身的值,即使在未进行移动时,比如手柄上的摇杆、鼠标的X,Y方向滑动,通常处理角色的行走和上下左右查看等。
按键绑定:绑定某个按键,在按键按下或者松开时进行事件的处理,比如射击、跳跃等。
在处理角色移动里面,我这里处理了角色的移动,四处查看,跳跃,蹲下,射击,开镜等操作。
移动:
对于角色移动有两种方式,一种是角色可以面向角色移动时的方向,一种是使用控制器(PC是鼠标X,Y轴滑动改变角色面朝方向),需要处理的参数就是:
在SpringArm中勾选使用Pawn控制旋转并且下面继承的Pitch、Yaw、Roll全部默认勾选。
上面两种方式的决定性参数是:
比如射击游戏一开始我们没有拿枪,角色就一直面朝移动方向,就把UseControllerRotationYaw设置为false,把OrientRotationToMovement设置为true;
后来我们拿到枪之后,就一直朝着瞄准方向,此时就把UseControllerRotationYaw设置为true,把OrientRotationToMovement设置为false;
四处查看:
跳跃:
蹲下:
开镜:
其中蹲下、跳跃、开镜等都加了一个bool值作为动画蓝图的角色状态值,去处理不同状态下角色应该播放什么动画。
开镜的处理只是通过处理SpringArm的TargetArmLength去加长或者缩短。