5个保持动画控制器整洁的小技巧

 5个保持动画控制器整洁的小技巧

今天将为大家介绍5个非常实用的动画控制器的小技巧。为角色进行动画控制的过程和脚本非常相似,这需要动画控制器在整个开发周期内能够被高效率地进行重用、扩展、维护和故障排查。

本文中所使用的动画均来自游戏《Firewatch》的角色Henry。

技巧1:使用混合树封装复杂的行为

混合树很适合用来隐藏复杂的行为。混合树并没有状态,它也不需要代码回调。它仅仅会根据用户定义的参数来混合两个不同的动画剪辑。

使用混合树的优点是在迭代混合树时,完全不用担心会把游戏的其它部分弄得一团糟。你可以封装隐藏好复杂的状态网,同时避免在接下来的开发过程中产生新的问题,因为你不能给混合树中绝大多数的动画绑定行为。

5个保持动画控制器整洁的小技巧

净整洁的混合树

技巧2:把Layer当作脚本类

将Layer大致看做是脚本类,对于理解接下来的内容是很有帮助的。你会把所有相同的逻辑和行为函数都封装在一个层中。这是因为每一个层都会对其重载的其它层的部分进行控制,不受某个具体骨骼或层级的限制。

5个保持动画控制器整洁的小技巧

Henry左手的动画状态,每一个层的结构与功能都清晰明了

技巧3:模式的重用

状态与子状态机种逻辑模式的重用有助于提升开发的速度,也有助于其他人制作类似的内容,同时故障的排查也更容易,减少bug产生的数量。

以下类型的模式有助于Layer的构建:
• 轮状图:该种模式的故障排查较为简单,你可以清晰地看到转换在空状态与其它状态之间游走。下面轮状图中轮轴的每个轮辐都应重置其连接的对应状态。

5个保持动画控制器整洁的小技巧

Henry右手的轮状图

• 入口/出口共用模式:通过将状态进行组合来达到“入口”-“执行/循环”-“出口”的模式,你可以较为容易地将任意动画事件或状态机行为附加到“入口”或“出口”状态上。和混合树很相似的一点是你可以迭代并修改内部的“执行/循环”状态而无需担心会混乱游戏的其它部分。

5个保持动画控制器整洁的小技巧

从入口到出口:Henry右手拿书的所有状态

• 关键节点与次要节点模式:对于可中断的动画,尤其是由用户输入驱动的动画,你需要将动画片段分割为两个部分。首先关键节点需包含所有状态的变化、效果与伤害等,就是必须完整播放的部分。其次是次要节点,即可以优雅地回到空闲动画的节点,同时可以被来自用户的新输入所中断。

5个保持动画控制器整洁的小技巧

调整后的节点模式

技巧4:不要在状态机行为中编写过于复杂的代码

状态机行为就是可以被附加在动画状态上的小段代码。你可以使用这些脚本为状态机附加行为。

尽量避免在这些代码中编写复杂的游戏代码,因为这会让你很难找到状态机中什么地方做了什么。如果你需要使用状态机行为来驱动游戏代码,请使用消息系统。将请求传递给某个管理类,或者在更高层级上关闭某些参数。

最后推荐状态机行为:Debug.break。这是最实用的状态机行为,你可以在动画体系中的任意地方附加该行为,它的作用就像断点一样,和可视化编程系统很相似。

技巧5:使用状态机行为来确保某个动画事件被正确应用

动画事件可以将动画剪辑片段中的某个瞬间与游戏的某种状态联系起来,它们可以被用来设置诸如视觉或声音效果。然而如果状态机中某个事件在被发布之前状态就被转出,则这个事件就根本不会被发布。一种解决方案是添加一个新的状态机行为,用于确保在某个瞬间事件确实地被发布出来,无论游戏中发生了什么事情。

5个保持动画控制器整洁的小技巧

用动画状态机事件脚本

小结

今天为大家介绍的5个使用动画控制器的小技巧,希望能够在项目中有效的帮助刀开发者。

用户喜欢...

保持汽车触摸控制的感觉

智能手机和平板电脑上的触摸屏界面已经席卷了消费电子行业,每年销售数以亿计的这些触摸式设备。整整一代的孩子正在成长为与电子的主要接口,而不是键盘,鼠标,按钮等物理接口。这种...


虚幻引擎学习之路:动画模块之基础篇

之前我们陆续为大家详细介绍了Unreal 4引擎的渲染模块(包括光照系统、材质系统、相机后处理和全局光照明),接下来我们将讲解动画模块的基础功能。 动画模块是游戏引擎中的重要部分,...


管理混合云环境的5个要点

大多数企业都意识到了采用云计算的好处,那么企业将业务迁移到混合云管理平台的最佳实践是什么呢?...


【干货】TensorFlow的55个经典案例

本文是TensorFlow实现流行机器学习算法的教程汇集,目标是让读者可以轻松通过清晰简明的案例深入了解 TensorFlow。这些案例适合那些想要实现一些 TensorFlow 案例的初学者。本教程包含还包含笔...


令大多数人吃惊的5个计算机安全事实

以下5个事实,是很多计算机安全风险和漏洞利用背后的根源。如果你现在能很好地理解它们,未来你就能领先同行一步。 事实1. 每家公司都被黑了 每当最新大型数据泄露事件曝出,人们可能...


迁移到私有云的5个最重要原因

商界和IT行业的领导者们肯定感受到了帮助他们的企业数字化转型的压力。灵活性需求增加,但是,IT模型已经无法满...


物联网未来有何潜能 5个项目告诉你

我们都听过这样的预测:物联网将会凭借不计其数的物件和不计其数的资金,在2050年之前成为不可阻挡的趋势。为了...


2018年需要关注的5个物联网趋势

物联网已经成为了全世界公认的未来发展趋势,目前它正以极快的速度在全社会得到普及,改变行业并将行业提升至...


无线传感器网络使半导体晶圆制造厂保持高效率运行

对半导体晶圆制造至关重要的是细致、准确地沉积多层化学材料,以形成数千、数百万甚至在有些情况下是数 10 亿个...


iOS开发笔记 - 仿京东的加入购物车动画

请叫我死肥宅 之前APP里的加入购物车动画是最简单的UIView动画(一句代码那种),这几天正好有时间所以就跟产品那边确认优化了一下。虽然产品嘴上说让我自由发挥,但我相信没处理好肯...


真相了!动画演示陀螺仪的工作原理,一分钟弄懂

selina 在 周一, 10/23/2017 - 08:41 提交 最近听大牛的传感器同事的陀螺仪专业讲座,深入浅出的讲解让小编对陀螺仪的原理与应用有种顿悟赶脚,抽空整理部分内容,给对这个技术不太明了的小伙...


5个设计智能看门狗的小技巧

从系统或软件故障中恢复是一件不容易的任务;要让该故障不复存在更是困难,即使故障已可被辨识和修复。不过,外部看门狗(Watchdog)可帮助系统针对故障迅速做出反应。 外部看门狗是嵌入...


关于物联网的35个开源硬件的清单

物联网这一概念的出现却要追溯到1999年,由当时宝洁公司员工Kevin Ashton第一次提出。从那时起,这个概念迅速广泛的传播开来。开源的物联网软件和硬件项目可以帮助企业和DIY爱好者通过网络...


快速入门指南:使用 UIViewPropertyAnimator 做动画

iOS 10 带来了一堆非常有意思的新特性,例如 UIViewPropertyAnimator 。这是一个能够改善动画处理方式的新类。 它彻底改变了我们所习惯的工作流,为动画逻辑添加了一个更为精细的控制手段。...


Littelfuse新型保险丝盒与保险丝座可在获得更优电压性能的同时保持小巧尺寸

Littelfuse, Inc.,作为全球电路保护领域的领先企业,今天推出了多个专为保险丝机械安装而设计的高电压保险丝盒与保...


什么是物联网?关于物联网(IOT)你必须要了解的5个关键词

每隔一段时间,媒体就会再强调物联网是下个科技潮流,的确这不是一个全新的概念,可是随着技术发展,物联网产...