【译】Unity动画系统-1-Animator访问子组件

发表于2016-02-26
评论0 1.4k浏览

Unity动画系统-1-Animator访问子组件

 

讲座:结合动画类型

 

章节:小花园

 

不久前我写了一个Udemy讨论,探讨了使用Unity动画工具处理。这是为了减轻在课程学习中遇到的困难,保证部分学生可以达到100%的效率。

 

逝去已久的达芬奇遗憾”石头、布、空“的溺死的遗产(那虚无缥缈的意大利),在他的无限慈悲下发明了剪刀,完成了曾经的三连溅射。

 

古拉特斯拉是一位发明家,一个走在时代前段的男人,一个真正的堕落天使,一个实打实的光明使者,最后也逝去了。

 

我呢?我写了10个简单的步骤帮助你们在屏幕让一只狐狸动起来。

 

那篇文章有十个人点赞。

 

但就像所有伟大的事情,它的辉煌必定走向曲终人散。在最近的重新记录中,我希望这个博客文章可以作为Unity中基于图片精灵的一个更持久的更强大的解释。

 

动画制作组件,精灵渲染器组件和动画基础

 

我们之前已经见过了Animator和精灵渲染器组件。

 

最重要的精灵渲染器在指定对象上渲染2D效果,你提供的图像文件(或图片精灵)渲染器和文件会显示出来。在2D游戏中我们往往都是用这个。

 

c:usersadministratorappdataroaming360se6User Datatemp4333029_orig.png

精灵渲染器组件

 

我们在先前的激光守卫部分使用了动画组件,结合动画视图,我们可以精确地在游戏对象间变换。我们也可以将动画组件运用到更多的传统一帧接一帧的动画。


c:usersadministratorappdataroaming360se6User Datatemp3236804_orig.png

Animator组件

 

动画是如何工作的?电影是一种幻觉,这只是一系列的照片而已。每一个连续的照片在对象的位置有一个小增量变化。当你快速地播放这些照片时,你产生了意识幻觉——一个会动的图片或者电影。在一部动画电影中,你用手工的图片代替静止的图片也能达到相同的效果。

 

我们可以在Unity中完成同样的事。

 

1、不用照片,我们使用图片精灵(图像文件)

 

2、不是在电影屏幕而是在精灵渲染器上播放。

 

3、不使用播放器而是使用Animator完成图片精灵之间的切换的重任。

 

Animator工具和精灵渲染器合作播放动画剪辑

 

这解释了你可能遇到的问题:当你用Animator设置了你的游戏对象而不是用精灵渲染器的时候,精灵渲染器会在你尝试播放一个视频剪辑的时候自动添加。这是因为你不能在游戏对象中仅仅播放一个sprite!你还需要一个电影屏幕。

 

母子模型和动画组件的功能

 

想象你吃的游戏对象是树,它可能会有助于查看等级。


每一个母对象是一个树干。


每一个子对象是树干上的一个分支。


如果孩子还有孩子,就好比分支还有分支。


c:usersadministratorappdataroaming360se6User Datatemp1445984626.png

分支结构层次的一个例子

 

一个关于动画组件的事实:

 

如果你将Animator用在母对象上,它将可以访问母对象和任何子对象组件。

 

树干上的Animator可以到达任何分支并且影响某些组件(包括精灵渲染器)!

 

我想说明的是,Animator和精灵渲染器的比率不一定是55开的,它可以是1比好几。跟真实的播放器不一样,一个简单的Animator可以同时在不同的精灵渲染器上播放视频片段。

 

现在我们明白了Animator的功能,我们可以据此建立一个游戏对象了。


1、     母对象获得一个动画组件


2、     任何子对象获得一个精灵渲染器

 

现在让我们用Fox尝试一遍。创建两个空游戏对象,一个命名为”Fox“并给以Animator,一个命名为”Body“并给以精灵渲染器,子主体为Fox。


c:usersadministratorappdataroaming360se6User Datatemp6689471_orig.pngc:usersadministratorappdataroaming360se6User Datatemp1574633_orig.pngc:usersadministratorappdataroaming360se6User Datatemp1057125_orig.png

 

现在让我们证明Animator可以到达分支。打开动画视图,在层次结构中选择Fox母对象,点击“Sample(采样)”左侧的下拉菜单并且创建新的剪辑,正确命名它(比如:fox_attack)。现在点击“Add Curve(添加曲线)”。


c:usersadministratorappdataroaming360se6User Datatemp1559928_orig.png

Body子对象以及它的组件可在Fox母对象动画下编辑

 

可以确定,Body精灵渲染器图片精灵

 

其余的只是添加动画剪辑到该曲线的问题。

 

一个更复杂的例子

 

对于大多数情况,任何动画对象都有一个控制动画状态的单一动画组件。

 

Fox和Body的例子很简单,但是我们不难想象一个更复杂的需要更多分支的游戏对象。

AL3号个人控制器(由Unity标准资产提供)具有几十个动画分支但只有一个动画组件处于顶层。

 

为了完成动画,让我们看看创建和添加动画剪辑。请看第二篇——手动添加动画剪辑。

 

关于作者:

 

我是Elijah Lape我正在参与Unity开发者课程,Blender开发者课程以及游戏物理课程。我享受创造。

 

你可以阅读我的其他的博客:

1     Unity动画系统系列二

2     Unity测试驱动开发

 

原文地址:http://www.completeunitydeveloper.com/blog/unitys-animation-system-part-1-of-2-accessing-child-components-with-the-animator

原文作者未做权利声明,视为共享知识产权进入公共领域,自动获得授权

 

 

 

 

 

 

 

 

 

如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引

0个评论