UE4-(蓝图)第十八课控制人物跳跃

213 篇文章 587 订阅

与上一节关联

一、状态机设置跳跃状态节点

1.打开动画蓝图Test_Anim,选择动画图表,双击State_Machine进入状态机节点中,右键创建添加三个状态分别命名为:Jump_Start,Jump_Loop,Jump_End,

2.状态连接,根据从站立到起跳,跳的过程,落地,恢复到站立状态,为顺序连接,选择节点左键拖拽连接到下一节点上

创建的状态节点是状态切换,状态节点内部设置动画,两个状态之间的箭头,双击进入是设置上一状态切换到下一状态的条件。

二、对每个状态设置动画

1.选中Jump_Start状态节点,双击打开进入状态节点内部,在右侧资源浏览器中,选择Jump_Start拖拽到蓝图中。将动画连接,选择拖入的动画,在细节中,将循环播放去掉勾选,此选项若勾选,动画循环播放,跳跃值需要播一次即可,

选择State_Machine切换到上一界面

Jump_Loop 设置对应动画,动画循环播放。

Jump_End 设置对应动画,动画不循环播放

2.如果想要跳跃状态进行切换,首先要设置起跳条件,然后判断人物角色是否在悬空状态,如果在就触发Loop,如果不在就触发End。

在动画蓝图的事件图表中进行设置,先获取当前物体运动的组件,创建 Get Movement Component节点,

使用Is Falling 判断物体是否处于悬空状态,将Return Value 的值提升为变量更改名称为IsAir。

 

3.跳跃状态也要实时的去获取,所以蓝图连接如下

四、设置状态机中每个状态切换的条件

1.打开动画图表,点击进入State_Machine状态机节点,点击每个状态连线中间的Documentation,当条件为true的时候才会进入下一状态触发动画。

2.设置起跳状态转换条件,当IsAir为Ture 的时候进入起跳状态将获取变量IsAir节点拖入连接

3.返回State_Machine界面,选择下一个状态转换条件设置面板,设置进入Loop状态,当起跳动作完成后即可进入Loop状态,用Get Relevant Anim Time Remaining(Jump_Start)节点:该节点是判断上一动画剩余时间。当小于0.1秒的时候就可以让状态进入Loop状态。播放对应动画。使用<= 节点

4.返回State_Machine界面,选择下一个状态转换条件设置面板,设置进入落地状态,当IsAir为false的时候就可以播放落地状态。所以获取IsAir变量设置条件,因为变量值为false才可以触发操作,所以要使用Not 节点将值更改。

5.返回State_Machine界面,选择下一个状态转换条件设置面板,设置进入站立状态当落地动画播放剩余时间小于0.1秒时就可以触发站立状态

五、设置完成后编译,编写人物蓝图进行跳跃动作

1.打开Test_Player蓝图,使用空格键 调用Jump 节点 及 Stop Jumping节点,来实现跳跃操作。

2.蓝图连接,编译运行,使用空格就可以操作人物跳跃,走到高处人物悬空落地时也会有跳跃效果。

 

  • 18
    点赞
  • 55
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值