UE4示例项目学习:用Blueprint来创建一个可操作角色(二) 动画蒙太奇篇(Animation Montage)

学习UE4视频的时候动画蒙太奇没怎么看懂,当然视频是4.7的版本,本人用的是4.11也是一个原因,找了一篇写的很详细的帖子豁然开朗,这么好的文章禁不住转载,感谢原创博主。

博主原创地址:https://blog.csdn.net/u012801153/article/details/78477425

 

 由于人物在跑步的时候上下半身都会动作,而攻击的时候也是一样,所以我们需要选定动画是如何混合的,这里就要用到我们的AnimationMontage了.废话不多说.开始写文章.

 

1.新建AnimationMontage文件

内容管理器->右键->动画->动画蒙太奇,

 

2.设置AnimationMontaget文件

 

 

我们出拳的逻辑应该是这样的.如果我一直按着按钮的话,那么就左右连续出拳,如果说我某一个时刻松开了按钮,那么出完当前的这一拳以后我就应该要收拳,并回到待机状态.

如果说最后出的是出拳1,那么久应该播放出拳1的收拳动作,如果播放的是出拳2,那么久应该播放出拳2的出拳动作.上面所说的IsStillPunching1,IsStillPunching2时间其实就是为了帮助这一块而使用的.这两个事件分别是在出拳1和出拳2动作快结束的时候抛出的.当我们抛出这个事件以后,其他模块就会捕获这个事件,这个时候,其他模块就要去检查玩家是否还按着按钮希望继续进行攻击,如果没有的话,就应该开始收拳了,否则就继续出拳.

关于检测出拳的部分接下来讲

 

3.修改输入和输入的响应事件,同时在MyCharacter_BP中对于按键进行响应

修改输入在上一篇文章中写了,就是在项目设置那里进行的输入操作,还有对应什么样的事件的设置.

在这里我们要修改一下角色的蓝图类,添加以下部分

我们在该蓝图中添加了一个IsPunching变量,便是当前有没有按住按钮,要进行攻击.按下的时候是TRUE,松开了就是FALSE,只要我们再把捕获的事件和这个变量一起使用,就可以知道我们到底要怎么出拳收拳啦.

 

4.修改MyAnimation_BP文件.

由于图片太大,超过一个屏幕了,我们就只截取了添加的部分.

 

到这里为止,我们应该就能让角色在场景中攻击了,按下绑定的按键,那么人物就会开始攻击了,松开后会恢复,但是这里面就有个问题,我如果一边跑一边攻击,那么我的人物不会播放跑的动作,他完全被攻击的动作覆盖了.这明显是不符合我们要求的.那么为了能让我们的人物能边跑边攻击,我们需要添加Slot,并将该Montage文件的动作仅作用于该Slot,这样子就可以实现动作的混合了.

 

5.在AnimationMontage中新建Slot,修改MyAnimation_BP中的动画图表

到这里为止,我们的AnimMontage就算是全部完成了.这个示例项目也差不多可以告一段落了.下面稍微总结一下整个Montage混合的一个流程

首先,我们当前是否想攻击取决于我是否按了按键,如果按了,那么为true,否则为false.我们将这一个变量通过MyCharacter_BP中的蓝图来记录下来(在项目设置的输入中设定好绑定关系).

由于我们设定了动作之间的循环关系,所以如果我一直反复按着按钮的话,那么我是会一直出拳的.如果我松开按钮,那么这个时候需要判断我当前出拳出的是哪一拳,从而决定怎么播放收拳的动作.

决定是否继续进行攻击的事件由AnimMontage中的通知来发出,当我们收到了这个事件以后,再根据玩家是否按键,来决定要不要继续攻击.到这里为止,我们的攻击流程就结束了.然后是动作的混合部分,由于我们需要让上半身和下半身播放不同的动作,所以我们要用动作混合.混合的方式是整体使用原有姿势,但是在攻击的时候上半身使用攻击姿势.设定的话按照上文中所说就可以啦.整个Montage的思路就是这样了.

 

整个教程学习下来,看官方视频花了2天,写两篇博文加上再次理解用了1天.其实不论是看什么教程,如果不进行总结,跟着教程走一遍就完了,那么最后能剩下来的东西真的不多.这份教程肯定还有很多不足的地方,如果有什么不足的,欢迎大家指出(如果有人看的话哈哈...)最后再推荐一下官网的视频,如果你看这篇教程看不懂,那么你去官网视频看一下,你就什么都清楚了哦~

  • 4
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值