使用Dragonbones进行混合动画

  • Dragonbones可以制作骨骼动画,但是动画有个问题:比如跑步是一个动画,开枪是一个动画,我分别做好了,但是跑着开枪呢?要另外做一个吗?

另外做有两点不好:
1、额外工作
2、衔接有问题,比如你跑步跑到左脚在前面,突然玩家点击开枪了,你就要切换到跑步开枪的动作上去,可能就会变成右脚在前面。虽然可以严格的控制时间,根据动画进度来切换。而且如果是节奏比较慢的动作,你在两个关键帧之间开枪了,那切换可能就更明显了。
3、加入混合的动作比较多,就更麻烦了,你开启一个动作,不仅要考虑你要执行的(开枪),还要考虑正在执行了(跑步)。

但是动画混合解决了这些问题:
其实这也是应该的,比如一个角色带了一个围巾,围巾围飘,我把围巾的动画做好,不管觉得怎么跑怎么跳,围巾都是飘。

        firingAnimation = armature.animation.FadeIn (anim_Fire,-1,1,0,firingGroup,AnimationFadeOutMode.SameGroup);
        firingAnimation.autoFadeOutTime = 0.2f;

        firingAnimation.AddBoneMask ("左上臂");
        firingAnimation.AddBoneMask ("右上臂");

这里重点是动画的组不同,然后淡出的模式设置成:AnimationFadeOutMode.SameGroup,这样的话同组的动画之间是互斥的,但不同组的是共存的,共存的动画直接就会混合。比如把跑步和开枪设置在不同组,让他们混合。

  • AddBoneMask是添加蒙版,比如上面给两个手臂添加了,那么开枪的动画里其他部分是不可见的,也就是不参与混合,这真是需要的,就是身体其他部分使用跑步时的动作就好了。

  • 还有个问题,是设定autoFadeOutTime,有了这个,动画在执行完后就会自动淡出。我们想要的动作肯定是跑步时开枪,手举起开枪,开完了手放下来,回到跑步时手的状态。如果开枪的动画不自动淡出,它会一直保持在最后一帧的状态,手会一直举着

  • 跟随DragonBones的unity运行库一起的Demos例子里有个机器人的例子,那个角色的控制脚本来包含了很多内容,除了动画混合,还有跟随鼠标来动态跳帧武器的方向。这个功能很重要的,可以让角色拥有向任何角度攻击的能力,否则只有水平的就很局限了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,916评论 25 709
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,267评论 4 61
  • 刚睡起,午觉。 睡得时间比较长,虽然一再希望自己能控制午觉的时间,但没有一次是成功的。尤其是正对着...
    甜玉米ni阅读 168评论 0 0
  • 曾经有过假设,如果重读一次大学你该如何面对?那流光溢彩的四年青春岁月,我想每个人都有自己的答案。但没想到,这样的机...
    寻海阅读 1,237评论 2 5
  • 可能是熬夜的原因,健忘提前找到了我。我怕忘记了老公的好,今天肚子饿了。老公乖乖地去弄饭给我,我正埋怨怎么去那么久的...
    崖紫小姐阅读 264评论 0 0