如何解决在动画剪辑循环中检测特定点[怪物攻击动画]
我正在使用AnimationMixer为我的怪物播放三个AnimationClip:空闲,行走和攻击。 当Monster攻击我的玩家时,我想造成伤害并做一些诸如对打击的反应之类的事情。 为此,我需要检测“攻击”动画处于伸出怪物手并进行打击的时间点。我知道Blender中的关键帧号,但是有没有一种方法可以使用AnimationMixer和相关类检测当前帧?
解决方法
我没有在AnimationClip中找到当前帧,但是我可以使用动画时间。创建动画片段时,我将其存储在变量中:
currentAnimation = mixer.clipAction(gltf.animations[0])
currentAnimation.play();
,然后在动画循环中我推进调音台,检查时间:
mixer.update( delta );
if (currentAnimation.getClip().name == 'Attack' && currentAnimation.time > 1.5)
showHit(true);
在我以前的实现中,我在Monster json文件中包含了Attack_frame_number,现在它被称为Attack_time并且可以正常工作。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。