记录UE4 Play Montage 中的一些坑

本文通过实例解析了Unity引擎中MontagePlay节点的StopAllMontages属性导致的问题。作者在开发ACT战斗框架时遇到角色状态提前重置的bug,通过详细测试发现该属性不仅停止播放蒙太奇,还会触发所有绑定通知的End事件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先说说发现这个坑的由来,本人最近在做一款ACT战斗框架,需要用到人物的状态模式,在动画合适的时候插入动画通知依次来改变人物的状态。播放动画采用的是Montage Play这个节点。于是在某次测试中发现人物当前并没有到达重置状态(需要动作播放完成才会重置)的时候就重置了。最后查找了近半天的时间,最后把问题锁定在Montage Play 这个节点上!
就是这货!!!
在这里插入图片描述
会发现他有一个Stop All Montages的属性,默认是勾上的。从字面意思看是停止播放的蒙太奇以外的蒙太奇。难道紧紧是这样么?
这里我再来理一下,播放蒙太奇其实有三个以上的节点分别是:
Play Montage 该节点只能在事件中调用,因为是有时间的概念,所以不能用在任何无时间观念的地方上,例如函数,宏。
在这里插入图片描述
Play Montage 以及 Play Anim Montage,可以发现两者最主要的差异就是这个Stop All Montages
在这里插入图片描述
我们言归正传,Stop All Montages 紧紧是是取消播放蒙太奇这么简单么?当时我锁定该节点后,便进行了测试,取消了Stop All Montages的勾选,不出所料,问题解决了。因为我的重置状态是在动画蒙太奇用通知设定的。于是猜想Stop All Montages 不紧紧停止了播放蒙太奇,还把蒙太奇中附带的所有通知一并调用了End事件!
接下来便开始实验:
创建一个用于测试的NotifyState
在通知中覆盖Begin和End事件:
在这里插入图片描述在这里插入图片描述
这两个函数的作用就是,通知开始时打印NotifyBegin ,通知结束时打印NotifyEnd

随后在播放的蒙太奇中绑定该通知。
在这里插入图片描述
随后在事件图表中,用以下蓝图进行Dubbger。
在这里插入图片描述
首先取消Stop All Montages进行实验
在这里插入图片描述
可以开出播放的时间时正确的。Notify有被正确打印。

接下来勾选Stop All Montages
在这里插入图片描述
结果就是Stop All Montages 取消播放蒙太奇的同时,会取消被取消蒙太奇中所有的通知!

建议大家以后播放蒙太奇还是多用用Play Anim Montage这个节点,解决这个Bug花费了我太多的精力,并且官方也没有很好的文档。
以下是官方文档对该节点的解释。。。。

看得我想好好问问他们的编写文档的人,这也能叫文档啊????在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值