本文主要是介绍13_ue4进阶末日生存游戏开发[加入左右平移],希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
需求:加入角色左右移动。
创建混合动画,注意这次不是一维的了。
选择小白人自己的骨骼。
重命名为walk_run
将静止放在中心点
将running放在最上方
walking放在两者中间
back放在最下面
向左跑放在最左边
然后放向左走路
同理放向右移动的。
移动绿点,检查动作过度。发现这两个角,过度成了后退奔跑。
所以,这两个点也放后退动画,矫正一下过度
给两个轴命名
设置两个轴的区间为(-1,1)
进入动画蓝图,添加strafe,float类型变量
对前后速度进行归一化,因为最大速度是600,所以➗600
进入这个节点
删掉这个状态机
然后把我们创建的二维混合动画拖进来。(这里不需要创建状态机了,因为没有节点的过度,只有一个混合动画)
连线,并且赋值
修改代码,将动画蓝图里设置speed的代码移动到角色蓝图里面,并在角色蓝图里创建设置strafe的代码。
在角色蓝图写这一段
获取小白人的右方向与速度向量的点积
找到每帧事件,将检测小白人前后速度的代码折叠起来,命名为prevent backward running。
将设置strafe和speed的代码塌陷(折叠),重名为set input
将这个代码与每帧事件相连。
进入set input的代码,添加sequence,并俩连线。
将then3去掉,看着别扭
改成execute
去掉了
将这个模块重命名为set anim var(原来为set input)
在人物冲刺的事件中,因为动画蓝图那边改了,所以不需要sprint变量了,所以相关过程删掉。
还有每帧事件的相关操作都删掉。
编译,测试
前后左右都能正常播放。但是左右无法奔跑。
因为人物冲刺用的向量点积,用的是向前和速度两个向量,所以当向左右走时,结果是-0.001到0.0001这个区间,所以我们要修改判断边界,提高容错率。将>0转换为>-2就可以了。
原理如图所示:
这篇关于13_ue4进阶末日生存游戏开发[加入左右平移]的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!