###本文章所有实例均在一个工程里(包括此分类下标题打了*的所有文章)
首先先弄好人物模型,并创建好角色的蓝图类
1. 实现移动
1.在编辑-项目设置-引擎-输入里添加下列内容(操作映射是指按下后执行某个事件,轴映射是指按下后返回某个值):
2.在角色蓝图中,创建一个事件蓝图:移动,编写一下蓝图来实现移动:
2.实现视角移动
3.实现跑步和跳跃
1.在项目设置-输入里加入操作映射:
2.实现跑步:(改之前要在组件栏里点角色移动,在详细里更改人物最大行走速度):
3.实现跳跃:
4.动画实现
1.新建一个动画蓝图,上面选Animlnstance,下面选择角色的骨骼
2.需要用到一下四个节点:
该节点可以将动画分层,即动画上半身播放Base Pose连接的动画,下半身播放Blend Poses 0连接的动画(需要设置在那里分层):
按照如图的设置,骨骼名称那里就是从哪里分层,一半都是从腰部(要把下面的两个勾打上)
IK:即可逆运动(一般情况下是胳膊带着手运动,但是这个节点就让它用手带着胳膊运动,类似于子节点带着父节点动)
例子:左手(在IK骨骼上)模仿右手(在执行器目标里,要把执行器空间位置换成骨骼空间)
3.动画实现的蓝图例子:
解释(从上往下,从左往右):这里先每次播放动画的时候获取一下角色的速度为了给动画蓝图判断用,下面的是实现角色弯腰的部分
解释(从上往下,从左往右):这里显示判断角色的最大速度是不是大于205,如果是大于的就播放跑步的动画(这里的跑步动画我是把移动的动画给倍速播放了),如果不是,那么角色要么就是在走路状态,要么就是待机状态,最后判断一下到底是哪个状态再输出
*这里还可以用状态机来实现,会比直接判断简单一点
一些优化:
优化:视角限制
首先要判断一下角色当前视角,如果视角是大于0那么视角就在向下移动,不是就是在向上移动,此时就可以直接执行视角移动的代码(视角移动是相反的,即向上是负,向下是正),如果视角是在向下移动,那么获取一下相机旋转的Y轴,如果它大于-70就说明还没有到限制位置,此时执行视角移动的代码,如果小于-70就说明视角此时就到了我们设定的限制了,就不执行代码,视角就不会移动
本文是对bilibili教程视频的总结
以上如有错误或不清晰的地方欢迎指正!