UE4学习笔记12----自制角色控制

1、游戏模式设置

“GameMode”有指定的控制角色,当在世界设置中选择了“GameMode”后便可使用对应的角色。

在“项目设置”中“Map&Mode”中可设置默认游戏模式(当世界设置中为“None”时)

“FunctionalTestGameMode”与“GameMode”类似在当前位置起始并且无角色可控制

打开世界设置可查看当前角色

当“GameMode Override”为None时,为默认角色

在“项目设置”中的“地图&模式”中可查看默认的角色信息

当启动游戏后,窗口会显示信息

  1. 创建游戏模式

(1)需要通过游戏模式中的“Default pawn Class”指向角色蓝图

新建“GameModeBase”与“Character”

(2)设置GameMode

进入新的“Test_GameMode”将“Default Pawn Class”选择为刚创建的“Test_Character”

世界设置中将“GameMode Overried”设置为刚刚设置好的“Test_GameMode”

3、添加操作

在“Project Setting”的“Input”中设置操作。

4、人物设置

进入角色蓝图,添加一个相机命名为“MainCamare”

 

到事件图表中设置前后左右控制键

设置旋转方向,先了解下图

对应上图设置旋转方向

并且设置“MainCamera”勾选上“Use Pawn Control Rotation”

作如下连接

5、导入模型

先导入骨骼模型,再导入动作,并将动作的骨骼目标指向刚刚导入的骨骼模型。

在角色蓝图“Test_Character”的“Mesh”中的骨骼换为导入的骨骼

取消“Test_Character(self)”的下列勾选

然后添加一个弹簧手臂“SpringArm”,把摄像机放入它下面,可使摄像机移动更加平滑,并取消摄像机的“Use Pawn Control Rotation”,勾选“SpringArm”的“Use Pawn Control Rotation”

6、设置动画

点击左侧组件中的“Mesh”,可看见“Animation”需要将为“Anim Class”设置动画蓝图才可使人物播放动画。

右键创建一个动画蓝图“Animatoin Blueprint”

选中需要的骨骼创建一个动画蓝图,在动画蓝图中的右上角有不同选项卡

“Skeleton” 包含了人物骨骼信息

“Mesh” 包含了人物纹理(材质球)的属性

“Animation” 包含了人物当前关卡内符合的动画

“Blueprint”其中动画图表包含了所有的动画操作,动画通过状态机来执行

进入“Blueprint”中的动画图表,右键添加以下节点,命名为“Move”

双击节点后进入编辑,从右侧拖拽动画,设置如下

编译后可看见人物的动作

7、创建动画混合空间

由于“站立”、“走”、“跑”等状态是由于人物速度的不同而产生改变的,因此可以创建一个动画混合空间将他们联系起来,所以创建一个“Blend Space 1D”

双击进入动画混合空间,拖拽右侧动画到下侧形成关键帧,结果如下

点击关键帧在左侧的细节面板改名为“Speed”,按住“Shift”可观察混合空间效果。

 

添加一个新的“add new state machine”节点,将新建的混合空间放入其中,双击进入后,结果如下

在添加一个变量

 

接下来要通过角色的速度控制动画的播放,先获取角色当前速度,在事件图表设置如下节点。

 

 

在角色蓝图里,可在下列组件的细节面板中设置该角色的各种速度

选择角色还无法根据方向正确的转向,还需要在该组件中将“Orient Rotation to Movement”勾选上

8、人物跳跃状态

双击“Move”节点,将跳跃的三段动画拖拽进来并作如下连接

起跳

然后双击走跑混合状态“Test_Idel_walk_Run”和起跳状态”Start”两个节点之间的双箭头进入编辑,添加一个bool变量,作如下连接

腾空

再双击“Start”和“Loop”之间的双箭头进入编辑,右键输入“Ratio”可显示能获得动画播放进度的对应节点

添加一个“Time Remaning(ratio)(ThridPersonJump_Start)”节点,该节点返回值为0时表示动画播放完成,通过返回值判断,当起跳状态播放剩下10%时进入循环状态

落地

进入循环与结束之间的双箭头,当不在空中时就循环结束,所以将“IsInAir”取反

再进入结束跳跃与混合状态的双箭头,作如下连接,实现当结束跳跃动画播放到剩10%时就播放走跑混合动画

如果动画衔接不自然,就更改比较的值

 

进入“Test_Character”添加一个跳跃输入时事件,调用一个Character的Jump函数

 

再到动画蓝图的事件图表中

先获得角色的“Character Movement”组件

再添加角色的状态“Falling”表示角色在下落

 

9、添加动画通告—设置特效

动画通告就是设置在动画播放到某一帧时再播放一个指定的特效或者音效

进入动画蓝图的“Animation”界面,在选好的位置右键,选择“Play Sound”

点击添加的音效,再到细节面板中选择需要的音效即可

 

添加粒子特效

 

添加自定义通道命名为“Shack”,实现人物落地之后出现镜头晃动的效果

然后到动画蓝图的事件图表中添加“Shack”事件,实现需要的效果

创建一个继承“Camera Shack”的蓝图类

进入后再细节面板中可设置持续时间、振幅、频率

 

猜你喜欢

转载自blog.csdn.net/sky130054/article/details/82659262