unity2d动画教程中动画状态比较多,且切换非常频繁,有什么办法好管理

Unity开发-使用Sprite做简单的2D精灵动画播放和移动
//----------------------
//PS:如果转载,记得附上我这里原文的链接,最近发现我有文章被转载之后我自己原文都没人进了,我这个新
人菜鸟抽时间出来分享的东西是花了我的心思在里面的.感觉没原文链接好像文章不是我写的了.心略疼.
//----------------------&
&Unity,在前不久发布了4.3版本,这个版本可谓真是高端洋气上档次啊,因为这个版本的发布Unity不再叫Unity3D了(虽然本来它就不叫Unity3D==),主要是它是增加了2D部分,虽然之前在4.3还没发布之前也有不少的插件,其中也有插件是做2D的,但是,插件毕竟插件.尤其在手机开发上,对效率影响多多少少还是有的.之前感觉Unity在3D部分能做到这么的出色,所以觉得Unity会做2D部分也是迟早的事情了。结果在有生之年还是出现了。而这次我也利用些零碎的时间来体验下Unity的2D是怎样的.这次也是简单的做下2D精灵的动画播放和移动,就是根据我键盘的输入进行相应的移动并且播放相应的动画.不过这次我还没有参照过Unity文档之类的东西,只是利用我之前在其它框架或者引擎上做2D的经验来搞的,所以可能会避免不了走了一些弯路.不过之后有时间的话再详细看吧。
&------------------------
&Unity版本:4.3.0f4
&系统环境:Mac ox 10.8
&主要使用的语言:C#
&-------------------------
&这次的示例工程文件我上传到了GitHub上了,.
&在Unity4.3的版本中,首先从界面上已经有所变化,主要看下面这里,&
&它可以随时的切换2D或者是3D的界面,现在Unity在建立Project的时候可以在窗口下方直接选择默认是2D还是3D模式,在ProjectSettings-&Editor也可以设置.
&然后在Unity的2D部分中,我稍微看了下它的代码上设计(主要是类之间的关系),在2D部分它最主要是多了一个Sprite类,这个Sprite类并不进行渲染,它只是为了产生一些精灵需要的一些数据,如位置,参考点等.然后真正做渲染的是一个继承自Component的SpriteRenderer类。SpriteRenderer作为GameObject的其中一个插件做渲染的.Sprite只要传入到SpriteRenderer中就可以.
&下面就一步一步的说下我怎样用Unity制作这个Demo吧.
&第一:建立Unity的Sprite精灵.
&建立方法如下:GameObject-&CreateOther-&Sprite,建立之后你会发现,出来是一个空的对象.其实很简单,因为在SpriteRenderer中Sprite参数是空的.下面就说明怎样建立一个Sprite对象.首先,导入一张2D图片,我导入的是下面这张图片.因为待会要用到它来搞人物动画.
&导入成功后,点击图片,就会在Inspector上出现导入的设置界面.Texture
Type设置成Sprite类型,之后你应该会看到下面这样的项目的.
&我说明下各个参数的意义:
Type:纹理类型,主要是你导入的图片是用来干什么的,然后选择相应的类型,这里选择Sprite就代表是2D精灵,以前设置的多都是Texture类型.
&SpriteMode:精灵模式,单个和多个.意义就在于你这个精灵图片是只是一张图片就是一个精灵还是一个图片有多张精灵.如果你选择了Multiple的话会多了一个SpriteEditor的界面.界面如下:
&你可以之间用它来裁剪每一个精灵,之后它返回的是一组精灵图片给你.本来我是想利用它返回的图片组来搞精灵动画的,估计受了之前用cocos2dx的一个精灵处理软件的影响.结果发现了在这里用出了不少问题所以这次我也用了很传统的方法来弄播放动画的功能.
&PackageTag:主要用在Unity图集编辑器的功能中,关于Unity的图片集貌似还只是预览版来的,所以默认也是关闭状态.这里就不详细讲它.只说明下怎样打开SpritePacker窗口和这个PackageTag的意义就好.SpritePackage就是2D游戏经常用到的图集,打开方法也有提示了:就是在Edit-&Project
Settings-&Editor,Sprite
Packer选项,默认disable,修改Mode.然后,如果你启用了之后PackageTag的作用就显而易见了,如果你没有任何标签,那么你就加入不了图集中了.
& & Pixels To
Units:这里需要修正一下,这个确实是将精灵图片的像素值转换成单位,而且这个转换是依据一个公式进行的,就是
Unity单位 = 精灵的宽或者高 / PixelsToUnits值 *
缩放大小,这里所说的单位你理解成米也行,反正这个单位大小是GameObject的Transform里面Position所支持的值,而这个参数就是影响了转换结果,如果PixelsToUnits值越小那么渲染出来的图片就会越大,我一般没特殊需求是不改这个值的。(我以前写的是-&指的是多少像素为一个单位,一个单位内像素越高,分辨率越高,图像越清晰,但是一般实际情况是在游戏中一般般就好了,不要弄得太大&-这个最近发现这样写有问题)
Pivot:描点,和在cocos2dx中anchorPoint是一个概念来的,这里它是提供几个参数来的,一般直接用Center就可以了。在Sprite类中产生是必须要有这个参数的.
& &&Filter
Mode:过滤模式,和Texture2D一样,有点模式,双线性模式,三线性模式.过滤模式也就这几种了。直接用双线性就好,没特殊要求一般都不换的.
然后这次的话SpriteMode选择Single就好,自己截,自己弄动画.
第二步:获取图片每一帧的精灵产生每一个动作的动画数组并且显示其中一帧的精灵
刚刚说了SpriteModel选择了Single,所以传入的就是一张图片精灵,像这个图片人物有四个方向,所以现在就是通过Sprite类来将图片每一个方向的每一帧都截出来并且加入到每个数组中,从而我调用其中一个数组就可以获取该人物的一个方向的动画.
首先就是要定义一个ArrayList数组(js就是Array),来存储每一个方向的动画.还有就是要传入刚刚生成好的Sprite图片.
& &&private&ArrayList&_sprites;
& public&Texture2D&_spriteTexture;
然后就是需要根据行列来截图从而产生Sprite.不过先定义图片精灵的行列吧.
& &&public&int&rows;
& & public&int&cols;
之后就可以开始截了.截的方法也很传统,先创建一个数组存储的是每一行的动作,然后的话在将这个数组存入到_sprites中做动画组就好。
& & for(int&j&=&0&;&j&&&rows&;&j++){
&&ArrayList&animFrames&=&new&ArrayList();
&&for(int&i&=&0&;&i&&&cols&;&i++){
&&Rect&spriteRect&=&new&Rect(_spriteTexture.width/cols&*&i,
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&_spriteTexture.height/rows&*&j&,
&&&&&&&&&&&&&&&&&
&&_spriteTexture.width/cols,
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&_spriteTexture.height/rows);
&&&&&&&&&&&&&&&&Sprite&tempSprite&=&Sprite.Create(_spriteTexture,spriteRect,new&Vector2(0,0));
&&&&&&&&&&&&&&&&animFrames.Add(tempSprite);
& &_sprites.Add(animFrames);
通过设置SpriteRenderer的Sprite属性从而能让其中一帧精灵显示到屏幕上.在此之前先要获取SpriteRenderer组件.
& &private&SpriteRenderer&_spriteRender;
&然后就是获取SpriteRenderer。
&_spriteRender&=&this.GetComponent(typeof(SpriteRenderer))&as&SpriteRenderer;
&修改SpriteRenderer的Sprite属性,CurrentIndex代表的是从_sprites获取其中一个动画组。
&ArrayList&array&=&(ArrayList)_sprites[currentIndex];
_spriteRender.sprite&=&array[0]&as&Sprite;
&如果顺利的话你运行后能够在屏幕上看到精灵已经显示上去了.
&第三步:运行精灵动画.
&运行动画的话只要注意在Update中的帧数问题,自己要稍微处理下,否则帧数过快运行的动画就特别快了.其实处理方法用很传统方法就行.
&先定义一个时间间隔的变量,还有一个是记录目前的时间过了多少.
& &private&const&float&intervalTime&=&0.1f;
&&private&float&interval;
&然后在Unity的Update()函数中:
&interval&-=&Time.deltaTime;
&if(interval&&=&0){
& &//播放精灵动画的代码在这里
&interval&=&intervalTime;
&之后需要的就是播放精灵动画,在第二步中已经在_sprites数组中存入每个方向的动画了,之后就在刚刚那个if中添加播放的代码就好.首先定义一个变量代表目前的动画在哪一帧.
&private&int&index;
&然后也是通过修改SpriteRenderer的Sprite属性从而修改精灵图片,因为在update中的所以就可以实现动画播放效果了.记得播放玩了之后要index++,继续播放下一帧.
&ArrayList&array&=&(ArrayList)_sprites[currentIndex];
&_spriteRender.sprite&=&array[index&%&cols]&as&Sprite;
& &index&++;
&如果顺利的话你会发现精灵已经会动起来了.
&第四步:添加按键事件,能够控制精灵并且根据按键方向播放相应动画.
&添加键盘事件,只要使用Input.GetKeyDown(KeyCode
code)方法就行.但是我这次就是需要添加一个效果,如果我按下按键才播放动画,如果按键提起的时候就停止动画.所以还要判断用户是否提起了按键,所以还要使用一个事件Input.anyKey就可以.但是Input.anyKey是代表是否有任何一个按键按下.所以判断时候!Input.anyKey就好.
&不过还要为Player添加状态,状态一就是按下键后需要运行动画,还有一个状态就是按键提起后静止的状态.使用枚举定义.
& &enum&PlayerState{
&standing&=&0,
&running&=&1
& &然后就是定义一个变量记录Player状态:private&PlayerState&_state;状态默认就是standing.
在第三步中update()中添加if时间判断是否为running状态,是running状态才进行帧循环,运行动画.然后就是在响应按键事件后改变精灵的动画.这时候只要改currentIndex的值就行.然后就是要进行精灵的向量移动.这个其实也不难,Unity中的Vector2已经有标示各个方向的坐标了.向上就是Vector2.up,记得向下不是Vector2.down,因为向下就是向上的相反的向量,所以直接-Vector2.up也行.
&最后在Update中不断的移动就可以.方法是:this.transform.Translate(currentDir&*&Time.deltaTime);
&currentDir是我自己定义的一个标示目前方向的二维向量.Time.deltaTime就不用解释了吧.用过Unity的肯定都知道这个是什么的.不知道的自己输出下也很容易理解的。
&如果顺利的话你就可以用键盘控制精灵了!
&通过这次我自己的一个初步的接触到Unity的2D的引擎上的设计,虽然感觉还是有不少问题,例如屏幕和摄像机之类的,而我现在在Unity开发也是3D的为主,2D的也希望以后能有机会用它开发吧.这次也算是记录我的一个学习过程.
&博客少上了,不过我github上也会经常分享我自己业余写的代码,最近想法是想把打包工具完全抽离出来不依赖任何工程,就在我的github上(/GITHZZ),这个我还是会经常登录的,还有看到一些好的代码我也会star下,有需要的人可以不断扩散,毕竟技术的成长是离不开分享的,这很重要。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。下次自动登录
现在的位置:
& 综合 & 正文
spine 2D骨骼动画插件 for Unity
/EsotericSoftware/spine-runtimes
推荐一个2D骨骼动画编辑工具,可以用在Unity3D和As3
如果你喜欢做2D横版游戏,使用2D骨骼动画是一个不错的选择,因为2D骨骼动画可以用最小的资源量做出复杂的动画。最近在使用Dragonbones骨骼动画的时候,接触到了这么一个2D骨骼动画编辑器,感觉还不错,于是打算推荐给大家:
spine骨骼动画
在它的官网里面,可以看到它支持这么多的引擎和平台:
然后在官网也有对应的运行库下载,我最熟悉的unity和as3 它都支持:
编辑器自带了几个例子,打开其中一个是这样的,这是setup界面,可以设置图片的位置和摆放骨骼:
这是动画制作界面,可以在时间轴上面打关键帧做动画,除了直接移动骨骼做动画以外,还可以给骨骼上的图片换图,比如这只龙的翅膀,在扇动的时候其实是用了序列图做扇动的效果的。
还有其他一些例子,可以同一个文件里面包含多个动画
再来看看导入到Unity3D的情况了:
可以看到刚才spine里面的龙已经进入了Unity了,播放动画后它将会和在编辑器里面一样的运动起来。
看了一下它的原理,spine给unity写了几个扩展的组件,包括了骨骼、网格和动画,只需要拾取了数据,那么这个物体将会是一个整体,使用动态网格的形式生成。(当然了,这种程度的功能我自己也能写出来,不过比较麻烦)。
放置多几个动画测试一下,感觉性能还算过得去吧。
可能是由于最新版的spine推出的时间比unity4.3要早,所以它暂时没有对应Unity2D sprite的运行库,只有对应了2D toolKit的运行库。不知道以后它会不会再针对Unity2D来做一个更新呢?
最后补充说一句,Spine的试用版是免费的,普通版是大概300多元吧,专业版是差不多1600元。
一、SPINE使用
研究2D骨骼动画,CYou的朋友介绍我SPINE这个工具,开发自Esoteric Software的一款专门制作2D动画的软件,网络上的资料还很少,我这从半吊子美术技术的角度简单说一下使用教程。
有几个不错的地方:
1、美术制作前准备的贴图为一堆小切片图。不用非得拼成一张atlas,spine会做这一步,详见步骤七,
导出数据时会动态的将切片合并到同一个到N个atlas中,合并的策略会考虑我们设置的atlas的尺寸。
2、方便换装和BODYPART:
SPINE的数据结构中包括Bone和SLOT。其中Bone既为骨骼节点数据,Slot槽理解为挂接在Bone上的虚拟点。同一个骨骼节点或者槽下只能有一张贴图切片。
因此如果某骨骼上需要有两把刀的情况,可以是骨骼上设置Slot来辅助实现。不过有如下一些约束:
同一个骨骼下只能有一张贴图,且spine貌似没提供关闭这张帖图的方法,因此理解为这个图为必有得骨架贴图。
同一个SLOT下可以有多张图,例如SLOT2,左边的灰点儿表示现在那张图正在使用中。
3、 DrawOrder,可以通过拖动控制切片的渲染顺序。例如控制眼睛要画在脸前面。
4、可以制作多个SKIN,SKIN可以满足整个SKIN的切换。
二、TO Unity
Spine 自带了预制运行库 Spine runtimes,这是一个奇妙的方式“在你的游戏中添加读取 Spine 文件的代码,然后它为创建动画。”Spine 的运行库,支持目前主流的游戏引擎 Unity3D, Sprite Kit, cocos2d 等等。
我这里把做好的SPINE示例导入到UNITY中,并使用API实现换武器和头部。
嘛是 Spine?
Spine 是一款针对游戏的 2D 骨骼动画编辑工具。 Spine 旨在提供更高效和简洁 的工作流程,以创建游戏所需的动画。
优势 Benefits
在 Spine 中通过将图片绑定到骨骼上,然后再控制骨骼实现动画。 2D 骨骼动画 相对于传统的逐帧动画有以下优势:
最小的体积: 传统的动画需要提供每一帧图片。而 Spine 动画只保存骨骼的动 画数据,它所占用的空间非常小,并能为你的游戏提供独一无二的动画。
美术需求: Spine 动画需要的美术资源更少,能为您节省出更多的人力物力更 好的投入到游戏开发中去。
流畅性: Spine 动画使用差值计算中间帧,这能让你的动画总是保持流畅 的效果。
装备附件: 图片绑定在骨骼上来实现动画。如果你需要可以方便的更换角色的 装备满足不同的需求。甚至改变角色的样貌来达到动画重用的效果。
混合: 动画之间可以进行混合。比如一个角色可以开枪射击,同时也可以走、 跑、跳或者游泳。
程序动画: 可以通过代码控制骨骼,比如可以实现跟随鼠标的射击,注视敌人, 或者上坡时的身体前倾等效果。
功能 Features
摄影表 Dopesheet
在动画制作过程中摄影表是最核心的地方。这里显示所有关键的细节,通过它可以 创建动画以及对时间节奏进行微调。
曲线编辑器 Graph Editor
在曲线编辑器中可以通过调整贝赛尔曲线来控制两帧之间的差值,以实现栩栩如生 的动画效果。
反向动力学工具 IK Posing
Pose 工具可以利用反向动力学便捷的调整姿势。
皮肤 Skins
皮肤可以为做好的动画切换图片素材。通过改变附加在骨骼上的图片来实现动画的 重用。
边界框 Bounding Boxes
边界框是一个附加到骨骼上,随着骨骼移动的对象。它可以用于碰撞检测和物理集 成。
网格 Meshes
网格允许你在矩形边界内定义多边形。这将提高最终纹理贴图集的空间使用率,因 为在多边形外的像素将被忽略掉,这种优化对移动设备来特别重要。网格的另外一 个功能就是支持自由变形 FFD 和蒙皮 Skinning。
自由变形 Free-Form Deformation
自由变形 FFD 允许你通过移动网格点来变形图片。FFD 能实现网格的:拉伸、挤 压、弯曲、反弹,等一些矩形图片无法实现的功能。
蒙皮 Skinning
蒙皮允许将网格中指定的点附加给指定骨骼。然后点将随着骨骼移动,网格则随之 自动发生变形。现在可以用骨骼动作控制角色的图片进行弯曲变形了。
输出格式 Export formats
Spine 能将项目中的动画导出为 JSON 或二进制格式文件,它们能在 Spine 运行时 库中完美的再现。 Spine 同时还可以导出 GIF 动画, PNG 或 JPG 序列图,还有 AVI 或 QuickTime 的视频文件。
导入 Importing
Spine 通过一个路径查找并导入其它工具生成的数据文件,它能够识别符合要求的 JSON 或二进制格式数据。也可以从别的 Spine 项目中导入骨架和动画。
图片打包 Texture Packer
Spine 能将图片打包成纹理贴图集,这能提高你在游戏中的渲染效率。Spine 的纹 理贴图打包工具拥有很多功能比如剥离空白区域,旋转,自动缩放等等…(目的主要 是为了充分利用空间)
制作出惊艳的动画只是工作的一部分 —— 您还需要在游戏中显示它们。Spine运行库可以让您的游戏引擎播放这些动画,效果就如同在动画编辑器里显示的那样。
Spine运行库提供了一组API,可以直接访问骨骼(bones),附件(attachments),皮肤(skins)和其它动画数据。在程序中可以控制骨骼,混合动画、淡入淡出等等。
官方的运行库放在上,并授权允许Spine用户在其程序中使用Spine运行库。这里提供了所有源码,它将是你游戏中必不可少的一部分。
开发 Development
Spine尚在积极开发中。我们经常一周发部多个新版本。您可以密切关注了解详情。如果想更详进的了解我们的开发计划和进度,请关注和的
Trello board(一种管理进度的团队协作工具)。在上面你可以对开发任务进行投票和评论,还可以订阅它,这样当开发完成时,您就会收到电子邮件通知。
我们在持续开发新功能同时,也在不断的完善和优化软件的各个方面。通常这些意见都来自用户的反馈。我们渴望了哪里工作的正常,哪里出了问题。所以请来分享您的心得吧。
Spine 不限于角色动画,但角色动画是最常见也是最好的例子。在 Spine 中角色使用 的不是一张完整的图片,而是将各个部分切片成一系列的小图。比如:头、躯干、胳膊和腿。 这些小图片被附加到骨骼上,然后用骨骼自由的设置角色动作。这些切片会随着骨骼运动而 产生流畅的动画。
装配模式 Setup Mode
使用 Spine 从装配模式开始,在此模式中创建骨骼,附加切片。在编辑区的左上角显 示着 Setup(装配)或 Animate(动画)来指示当前的模式,可以通过点击进行切换。
切片 Images
层级树中的 Images 节点定义了 Spine 从哪里为你找到这副骨架要用的图片。图片的路 径 path 默认使用当前项目的相对路径。也支持绝对路径。设置完成后,路径下的图片会被加 载到图片 Images 节点中。
Spine 实时监控图片所在路径,如果图片发生改变,立刻更新到项目中。
参考图片 Template Image
通过将一张完整的角色图片作为参考,能更简单准确的创建骨骼和放置图片。操作如 下:把 template 图片从 Images 节点拖到编辑区域,它会被附加到 root 骨骼点上。在层 级树底部的属性面板勾选背景 Background ,被设置成背景后它将不可选,也不会被输出。
可以改变参考图片的颜色,这样更容易辨认。
角色切片 Character Images
在 Images 节点下,点选切片,然后 shift + 左键或 ctrl+左键把其它切片全部选中。 把它们拖放到编辑区,Spine 会为它们创建切片插槽 slots 并全部放在 root 骨骼点下。
对照参考图片把所有肢体切片对位。
切片不是直接附加到骨骼上的,而是附加到一个切片插槽中,插槽再附加到骨骼上。一 个切片插槽中可以放置多个切片,但一次只能显示一个。切片插槽对复杂骨骼的绘制顺序提 供更多控制权限。
在层级树的 Draw Order 节点中拖拽改变绘制顺序。在列表上方的切片插槽会显示在 前面,而下方的插槽会显示在后面。你还可以用+或-号键来调整顺序,按住 Shift 可以一次 移动5个单位。
当参考图用完后,可以点击层级树的中的显示点隐藏它。
如果在使用 Photoshop,那架设骨骼时可以使用 Spine 提供的“LayersToPNG.jsx” PS 脚本。在 Spine 安装目录下的 scripts/photoshop/LayersToPNG.jsx 能找到。此脚本能 导出图层为 PNG 文件和 Spine 的 JSON 文件。点击 Spine 左上角的 Spine 标志,然后 Import Data, Skeleton。导入的骨架包含一个骨骼点和所有的图片,这些图片位置和显示绘制顺序 都和 PS 中的图层一至。留给你的工作就只有创建骨骼了。这在后面会介绍。
另一个提高工作效率的方案是使用
. 它能让 PNG 文件与 PSD 同步, 妈妈再也不用担心我手动导图几万张图而发飙了。而 Spine 也是实时同步文件夹中的 PNG 的,这也就相当于 Spine 中的切片素材可以和
PSD 保持同步了。
创建骨骼 Creating Bones
使用创建 Create 工具,创建新骨骼时,首先要选中一个骨骼作为它的父级,然后再拖 拽创建出新骨骼。
当创建新骨骼时,按 shift(不用按住不放)选择光标下的图片。当拖出新骨骼后,被 选中的图片将会变成新骨骼的子物体。
使用这个功能来创建骨骼能更高效,因为你同时创建了新骨骼,并改变了图片的父级。
最后你可能要想改变某个骨头,插槽,图片或其它东西的父级。方法如下:选中要改变 父级的对象,按 P 键或 Set Parent 按钮,然后在层级树中选择新的父级。如果目前是骨骼 的话,比起在层级树中选,在编辑区域选可能更方便。
要改变骨骼的长度,选中任意一个变换工具 Rotate, Translate 或 Scale。然后拖动骨 骼的末端。另外骨骼长度也可以在层级树下方的属性面板中调整。如果骨骼长度为0,在编 辑区它将显示为一个特殊的图标。而在别的地方和其它骨骼没什么不同。
骨骼可以在层级树底部的属性面板中设置颜色。这将便于区分各个不同的骨骼。
在 Compensation 面板中 Image 和 Bone 按钮用于调整骨骼但保持它的子物体,如附 加在它下面的骨骼和图片不受影响。
别一个调整已经创建好的骨骼的方法,用 Create 工具选要调整的骨骼,按住 Alt 键, 然后点击拖拽。这样可以在新的位置重画骨骼,而不影响它的子物体。
动画模式 Animate Mode
点击编辑区左上角的 Setup 切换到动画模式。
在动画模式下,层级树会显示动画 Animations 节点,其中包含所有可编辑和查看的 动画。
用骨骼摆出姿势,然后设置关键帧创建动画。当动画播放时,骨骼会自动在关键帧之间 添加中间帧以实现平滑的运动。
摄影表 Dopesheet
Dopesheet 按钮可以点击以展开摄影表,它提供更详细的关键帧视图。可以在摄影表 中拖动关键帧调整动画。
设置关键帧 Setting Keyframes
通常第一个关键帧设置在0帧上。通过点击位移、缩放、旋转(Translate, Scale, and Rotate)工具后的关键帧图标,设置关键帧。绿色表示当前没关键帧,黄色表示值已经发 生变化,但是没有再次添加关键帧,红色表示已经添加关键帧。
热键 K 可以为所有发生改变的值设置关键帧。 热键 L 可以为当前激活工具设置关键帧。 如果 AutoKey 按钮被按下,所有发生改变的值都会自动被设置关键帧。
接着,在时间轴上选到下一个位置,调整骨骼摆出姿势,添加关键帧。点击并拖动时间 线就能看到流畅的骨骼动画了。
动画工作流程 Animation Workflow
常见的动画工作流程,先 K 出关键 pose 然后再回头细化润色动作。点击时间轴上方 的 Playback 按钮,在打开的面板中激活“步进 Stepped”按钮来实现关键 pose 预览。
它能够禁用补间帧,从而更容易观察关键 pose。一旦所有大动作都创建完成,关闭 Stepped,添加更多 key 优化过度的效果。
曲线编辑器 Graph
曲线 Graph 按钮可以展开曲线编辑器。在摄影表中选择一个关键帧,这里会显示它与 下一帧之间的补间插值曲线。
通过点击贝塞尔 Bezier Curve 曲线图标,启动非线性插值,要想 K 出栩栩如生的动画 这是关键所在。
在曲线编辑器中拖动 Bezier 手柄改变插值。X 轴代表当前帧到下一帧之间的时间,Y 轴代表值。
&&&&推荐文章:
【上篇】【下篇】}

我要回帖

更多关于 unity3d 2d动画 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信