【译】Unity动画系统-1-Animator访问子组件
Unity动画系统-1-Animator访问子组件
讲座:结合动画类型
章节:小花园
不久前我写了一个Udemy讨论,探讨了使用Unity动画工具处理。这是为了减轻在课程学习中遇到的困难,保证部分学生可以达到100%的效率。
逝去已久的达芬奇遗憾”石头、布、空“的溺死的遗产(那虚无缥缈的意大利),在他的无限慈悲下发明了剪刀,完成了曾经的三连溅射。
古拉特斯拉是一位发明家,一个走在时代前段的男人,一个真正的堕落天使,一个实打实的光明使者,最后也逝去了。
我呢?我写了10个简单的步骤帮助你们在屏幕让一只狐狸动起来。
那篇文章有十个人点赞。
但就像所有伟大的事情,它的辉煌必定走向曲终人散。在最近的重新记录中,我希望这个博客文章可以作为Unity中基于图片精灵的一个更持久的更强大的解释。
动画制作组件,精灵渲染器组件和动画基础
我们之前已经见过了Animator和精灵渲染器组件。
最重要的精灵渲染器在指定对象上渲染2D效果,你提供的图像文件(或图片精灵)渲染器和文件会显示出来。在2D游戏中我们往往都是用这个。
精灵渲染器组件
我们在先前的激光守卫部分使用了动画组件,结合动画视图,我们可以精确地在游戏对象间变换。我们也可以将动画组件运用到更多的传统一帧接一帧的动画。
Animator组件
动画是如何工作的?电影是一种幻觉,这只是一系列的照片而已。每一个连续的照片在对象的位置有一个小增量变化。当你快速地播放这些照片时,你产生了意识幻觉——一个会动的图片或者电影。在一部动画电影中,你用手工的图片代替静止的图片也能达到相同的效果。
我们可以在Unity中完成同样的事。
1、不用照片,我们使用图片精灵(图像文件)
2、不是在电影屏幕而是在精灵渲染器上播放。
3、不使用播放器而是使用Animator完成图片精灵之间的切换的重任。
Animator工具和精灵渲染器合作播放动画剪辑
这解释了你可能遇到的问题:当你用Animator设置了你的游戏对象而不是用精灵渲染器的时候,精灵渲染器会在你尝试播放一个视频剪辑的时候自动添加。这是因为你不能在游戏对象中仅仅播放一个sprite!你还需要一个电影屏幕。
母子模型和动画组件的功能
想象你吃的游戏对象是树,它可能会有助于查看等级。
每一个母对象是一个树干。
每一个子对象是树干上的一个分支。
如果孩子还有孩子,就好比分支还有分支。
分支结构层次的一个例子
一个关于动画组件的事实:
如果你将Animator用在母对象上,它将可以访问母对象和任何子对象组件。
树干上的Animator可以到达任何分支并且影响某些组件(包括精灵渲染器)!
我想说明的是,Animator和精灵渲染器的比率不一定是55开的,它可以是1比好几。跟真实的播放器不一样,一个简单的Animator可以同时在不同的精灵渲染器上播放视频片段。
现在我们明白了Animator的功能,我们可以据此建立一个游戏对象了。
1、 母对象获得一个动画组件
2、 任何子对象获得一个精灵渲染器
现在让我们用Fox尝试一遍。创建两个空游戏对象,一个命名为”Fox“并给以Animator,一个命名为”Body“并给以精灵渲染器,子主体为Fox。
现在让我们证明Animator可以到达分支。打开动画视图,在层次结构中选择Fox母对象,点击“Sample(采样)”左侧的下拉菜单并且创建新的剪辑,正确命名它(比如:fox_attack)。现在点击“Add Curve(添加曲线)”。
Body子对象以及它的组件可在Fox母对象动画下编辑
可以确定,Body→精灵渲染器→图片精灵
其余的只是添加动画剪辑到该曲线的问题。
一个更复杂的例子
对于大多数情况,任何动画对象都有一个控制动画状态的单一动画组件。
Fox和Body的例子很简单,但是我们不难想象一个更复杂的需要更多分支的游戏对象。
AL3号个人控制器(由Unity标准资产提供)具有几十个动画分支但只有一个动画组件处于顶层。
为了完成动画,让我们看看创建和添加动画剪辑。请看第二篇——手动添加动画剪辑。
关于作者:
我是Elijah Lape,我正在参与Unity开发者课程,Blender开发者课程以及游戏物理课程。我享受创造。
你可以阅读我的其他的博客:
1、 Unity动画系统系列二
2、 在Unity测试驱动开发
原文作者未做权利声明,视为共享知识产权进入公共领域,自动获得授权