Simple Animation组件介绍
本文将由Unity Animation 项目组负责人David Geoffroy与大家分享最新的Simple Animation组件。
Playables
Playables自从作为实验性功能在Unity 5.2版本中引入以来,一直就非常神秘。许多用户好奇并询问我们:“我们应该用它们做什么?我们的回答是:“任何东西!” 但实际上我们没有提供任何实际示例……
经过多次API和Unity的版本更替,Playables已结束实验期,并与Timeline一起加入了Unity 2017.1版本。从这时起,我们的回答变成了“你想要的任何东西,包括自定义Timeline轨道,或甚至某些与你自己的Timeline一样复杂的东西”。
这个回答自然相当激动人心,制作自己的Timeline是一件很少有人会去尝试的事情,而在 “你想要的任何东西”的这个分类中,但是我们依然缺少一些示例。
为什么不用Animation组件?
在Animation团队,我们常收到的一个反馈是:对于那些只需要在一个对象上使用单一或少量动画的情况,Animator组件和AnimatorController过于复杂。
另一个经常性的请求是:提供更复杂的Playables示例。一些基础性示例被用于演示简单的API使用方式,但它们对于展现Playables的能力范围并没有太大用处。
因此,我们决定同时解决这二个问题,使用C#制作一个简单的Animation组件,将它开源,作为一个活生生可用的Playables示例。如果你更想直接跳到代码部分进行尝试。示粒代码地址请访问文末。
新旧参杂
检视窗口
Animation组件已有很好的文档,仍然被广泛使用,除了一些更高级的功能之外,还有一个简单直接的接口。就举例本身来说,重新实现我们的用户已经知道并且能够直观理解的内容似乎是一个显而易见的选择。
就如上面的检视窗口截图所示,SimpleAnimation检视窗口与Animation检视窗口非常相似,除了一点:SimpleAnimation组件需要Animator才能运行。
在Playables中,使用Animator作为动画输出,因此Playable Graph必须要有Animator。但那只是它使用的局限。添加一个SimpleAnimation组件到一个游戏对象时,会自动添加Animator。你可以将它折叠起来,从而不必管它。
在脚本方面,其接口与Animation组件的接口几乎一样。你可以在Github项目的wiki上找到一份有关两者区别的深入解释。
复古的外观与崭新的引擎
SimpleAnimation Playable Graph的Graph Visualizer视图
尽管SimpleAnimation组件外表看起来很像Animation组件,但在背后,所有的Animation逻辑都是经由Playables实现的。这样组件就可与Timeline以及其它Playable图表相兼容,而Animation逻辑也可以在其他的Playable图表中使用。
不止是Playable示例
Unity Test Runner中的Simple Animation测试
为了能从Animation组件平滑过渡,我们必须确保SimpleAnimation组件的行为尽可能接近Animation组件。因为我们在Unity内部使用的某些测试工具已经公开,所以我们可以很轻松的创建测试并将其包含到项目中。
项目包含一套100多个比较测试,验证Animation和SimpleAnimation组件行为一致。当你从GitHub克隆或下载SimpleAnimation项目时,可以在Assets/SimpleAnimationComponent/Tests下找到那些测试。如果你决定自定义或扩展该组件,你可以使用这些测试来验证你的成果。
资源下载
Playables示例:
https://github.com/Unity-Technologies/SimpleAnimation
Wiki:
https://github.com/Unity-Technologies/SimpleAnimation/wiki
Graph visualizer
https://github.com/Unity-Technologies/graph-visualizer
小结
Simiple Animation组件与Unity 2017.1及后续版本兼容,现在可从GitHub下载,你可以进行尝试,如果你有反馈信息,请访问Unity官方社区(unitychina.cn)反馈给我们 !
推荐阅读
官方活动
Unity着色器训练营-第二期晚8点正式开营,记得参加!
"Mega Sale" Asset Store资源商店年度大促开启! 尽情挑选你所需的资源吧!
点击“阅读原文”访问Unity官方社区!