签到领奖

[图文教程] 使用Dragonbones进行混合动画

[复制链接]
查看: 729|回复: 0
3江湖小虾
455/500
排名
218
昨日变化
3
发表于 2016-12-28 11:43:08 | 显示全部楼层 |阅读模式
  • Dragonbones可以制作骨骼动画,但是动画有个问题:比如跑步是一个动画,开枪是一个动画,我分别做好了,但是跑着开枪呢?要另外做一个吗?
另外做有两点不好:
1、额外工作
2、衔接有问题,比如你跑步跑到左脚在前面,突然玩家点击开枪了,你就要切换到跑步开枪的动作上去,可能就会变成右脚在前面。虽然可以严格的控制时间,根据动画进度来切换。而且如果是节奏比较慢的动作,你在两个关键帧之间开枪了,那切换可能就更明显了。
3、加入混合的动作比较多,就更麻烦了,你开启一个动作,不仅要考虑你要执行的(开枪),还要考虑正在执行了(跑步)。

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

        
[AppleScript] 纯文本查看 复制代码
firingAnimation = armature.animation.FadeIn (anim_Fire,-1,1,0,firingGroup,AnimationFadeOutMode.SameGroup);[/size][/font][font=微软雅黑][size=3]        firingAnimation.autoFadeOutTime = 0.2f;

        firingAnimation.AddBoneMask ("左上臂");
        firingAnimation.AddBoneMask ("右上臂");
这里重点是动画的组不同,然后淡出的模式设置成:AnimationFadeOutMode.SameGroup,这样的话同组的动画之间是互斥的,但不同组的是共存的,共存的动画直接就会混合。比如把跑步和开枪设置在不同组,让他们混合。
  • AddBoneMask是添加蒙版,比如上面给两个手臂添加了,那么开枪的动画里其他部分是不可见的,也就是不参与混合,这真是需要的,就是身体其他部分使用跑步时的动作就好了。
  • 还有个问题,是设定autoFadeOutTime,有了这个,动画在执行完后就会自动淡出。我们想要的动作肯定是跑步时开枪,手举起开枪,开完了手放下来,回到跑步时手的状态。如果开枪的动画不自动淡出,它会一直保持在最后一帧的状态,手会一直举着。
  • 跟随DragonBones的unity运行库一起的Demos例子里有个机器人的例子,那个角色的控制脚本来包含了很多内容,除了动画混合,还有跟随鼠标来动态跳帧武器的方向。这个功能很重要的,可以让角色拥有向任何角度攻击的能力,否则只有水平的就很局限了。



文/find_1991
原文链接:http://www.jianshu.com/p/f8af82f6f387



最近访问 头像模式 列表模式
+1
729°C
沙发哦 ^ ^ 马上
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

在线客服(工作时间:9:00-22:00)
010-82609395
泰斗社区公众号

Copyright   ©2015-2016  【泰斗社区】-专注互联网游戏和应用的开发者平台  Powered by©Discuz!  技术支持:迪恩网络     ( 沪ICP备14023207号-9 )