查看原文
其他

Unity 2D Animation资源包使用指南

Unity Unity官方平台 2019-05-07

你是否寻找一种为2D精灵创建骨骼动画的简单方法? Unity 2D Animation资源包允许你在编辑器中绑定2D精灵,绘制骨骼权重并创建骨骼动画,更重要的是它还支持反向动力学。


Unity 2D Animation资源包从Unity 2018.1开始作为预览版工具包发布,我们现在可以获取并使用它。本文将讲解如何在项目开发中高效地使用Unity 2D Animation资源包。


如何获取

2D Animation目前作为预览版资源包推出,所以我们可以通过Package Manager资源包管理器进行安装。如果我们打算使用反向动力学,请确保同时安装2D IK资源包。


导入资源注意事项

为了开始制作动画,我们需要准备一些素材:首先是动画使用的精灵,它可以是角色、怪兽、物品等。

 

在为2D Animation导入精灵时,要注意以下二点:

  • 目前该资源包没有图层支持。这意味着如果打算让绑定使用多个分离的精灵网格,例如:手臂和腿部的网格,你需要将它们放在同一个图层中。完整的图层支持将在未来更新中加入,届时该功能将支持从PSD等文件格式导入的图层。

  • 该资源包目前没有和Vector Graphics资源包集成,暂不支持导入SVG文件。

 

了解这些事项后,我们开始导入精灵。


本文将使用的示例是《Ríkr the Viking》。我们将在不久后发布该角色资源以便开发者进行尝试,该角色被分离为多个精灵并放置在同一个图层中。


构建2D骨架

所有2D绑定过程都在精灵编辑器中完成。使用精灵编辑器,我们可以先选中角色精灵资源,然后在检视窗口找到Sprite Editor按钮,点击该按钮,便可打开精灵编辑器。



在精灵编辑器的左上角,我们将看见选项为Sprite Editor的菜单,点击Bone Editor(骨骼编辑器),便可开始创建绑定的骨骼。此时在窗口右下角可以看到多个骨骼编辑工具。

  

添加第一个骨骼时,选择Create Bone工具(快捷键B)。如果左键单击骨骼编辑器内的视图,则将创建根骨骼的起点,再次点击左键会定义该骨骼的终点以及下一骨骼的起点,单击右键会取消骨骼创建过程。


根骨骼的放置

在创建骨架的根骨骼(Root Bone)时,通常情况下有二种方法:

  • 将根骨骼放在网格外的任意点,通常在角色的双脚之间,将其用作原点。

  • 将其放在角色的臀部,同时将该点作为臀部骨骼使用。

 

此时考虑的重点在于,是否打算实现Root Motion。如果将根骨骼从骨架的其它部分分离通常更容易,这样在使用Root Motion时,可以轻松地通过移动原点来移动整个角色。在创建改变臀部位置而不改变根位置的动画时,该工作流程也非常实用。


骨骼编辑工具

骨骼编辑器有多个骨骼编辑工具可供使用。其中一个为Free Bone工具(快捷键N),允许你创建不与父骨骼直接相连的骨骼。在根骨骼位于原点且不和精灵的网格相连时,或者精灵的元素被分为多个部分时,Free Bone工具会非常实用。


本示例中,我们可以使用自由骨骼将角色的四肢和骨架其它部分连接。之后在创建动画时,我们将能够移动自由骨骼到角色身体的合适位置,这样一来骨骼就能形成完整的精灵。



Split工具(快捷键S)允许将现有骨骼平均分成二个较小部分;Parent工具(快捷键P)能为骨骼设置父骨骼;Move工具(快捷键M)能移动任意当前与其它部分相连的骨骼,从而将它们转换为自由骨骼。


如果创建了错误的骨骼,我们可以通过选中错误骨骼并按下Delete来删除,或者使用骨骼工具面板的Delete工具删除。完成对骨架的编辑后,点击精灵编辑器UI右上角的Apply按钮。

 


请注意:最好为骨骼提供描述性名称。在使用比较复杂的骨架时,如果能从名称了解其属性,就能更快地找到骨骼的层次结构。


创建精灵网格

当得到完整的绑定后,我们可以继续为精灵生成网格。网格和骨骼权重将决定在移动和旋转绑定中的骨骼时,精灵将如何变形。

 

在窗口左上角的下拉列表中,选择Skin Weights and Geometry Editor,我们可以通过添加顶点和边缘来手动创建精灵网格。

 

所用的工具可以在顶部工具栏找到:Create Vertex、Create Edge和Split Edge。该过程耗时较长,特别是在精灵拥有细致复杂的轮廓时。为此,Unity提供了一组使用预定义参数集自动生成网格的选项。

 

在顶部工具面板,点击Generate下拉窗口,可以设置网格的Outline Detail(轮廓细节),该属性将决定网格符合图形的精确度。

 

Alpha Tolerance决定创建网格时所考虑的透明度。数值越大,网格就越精确地符合像素并拥有更多顶点,然而,如果数值太大,可能会从网格中排除精灵的半透明部分。需要注意,细节特别多的网格可能会产生潜在的性能问题。

 

Subdivide级别决定网格中创建的顶点数,进而影响多边形数。在创建面部动画或图形中的变形元素时,该属性会很实用。如果希望使用自定义光照着色器的话,Subdivide级别能更好地处理网格细分过程。

 

通常,我们会将自动生成的网格用作基础,然后通过编辑工具手动添加或移除细节部分。


绘制骨骼权重

创建好网格后,需要添加骨骼权重,骨骼权重将决定哪些网格顶点将受到骨骼影响。


编辑骨骼权重时,请将顶部工具栏的编辑模式从Geometry改为Weights,此时精灵编辑器右下角会出现新工具面板。


我们可以使用该面板手动绘制骨骼权重,和使用网格编辑一样,我们可以通过Auto按钮自动生成权重。在编辑权重时,我们可以预览网格的各个部分在移动时如何变形。


单击选中骨架中的骨骼,尝试移动或旋转骨骼来预览网格所受的影响。我们也可以通过调整顶部工具栏的滑块,减少绘制权重和骨骼的可见度。这样便能更好地了解精灵在场景中的效果。



骨骼权重通常需要比网格更精细的调整,从而精确控制每个骨骼会移动哪些顶点。底部工具栏的Brush和Slider工具可以使用进行此类调整。


Brush工具允许直接在网格各个顶点上绘制权重。我们可以修改画笔的Size值,决定画笔影响的顶点数;如果一个顶点受到多个骨骼的影响,Hardness设置和Step设置将决定不同骨骼权重之间的覆盖情况。

 

我们可以使用Add and Subtract模式绘制权重。在精灵编辑器窗口点击骨骼,或在画笔工具下拉列表中选取,就可以选择需要添加权重的骨骼。



Slider工具帮助你更为一致地分配骨骼权重,就像画笔工具一样,Slider工具中不同模式有不同的工作方式。


Add and Subtract模式允许对整个网格添加所选骨骼的影响,Grow and Shrink模式会增加或减少骨骼的现有影响区域,从而将受影响区域进一步限制在骨骼周围的顶点。

 

Smooth模式用于平滑处理骨架中所有骨骼权重之间的过渡。在该模式使用画笔工具可以实现相同效果,但是只作用于局部区域。


修改骨骼深度

在绑定精灵时,可能需要控制各部分的覆盖情况。例如:角色的右臂可能要显示在身体的前面,而左臂要在身体背后。2D Animation可以设置骨骼的渲染顺序,该功能称为骨骼深度(Bone Depth)。

 

骨骼深度在Weights编辑器进行配置,要针对每个骨骼进行设置。修改骨骼的渲染顺序时,先在编辑器窗口选中该骨骼,此时在窗口左下方会出现检视窗口,我们可以在此设置渲染优先级。


当某个骨骼的优先级数值较大时,与该骨骼相连的网格部分将覆盖数值较小的部分。默认情况下,所有骨骼的深度为0。


使用场景中的绑定

一旦设置和绑定网格并绘制骨骼权重后,便可在场景中使用该骨骼。


首先将绑定好的精灵资源拖入场景,为其添加Sprite Skin组件。如果精灵包含骨架,我们将看到Create Bones选项,该选项会在场景实例化该骨架。

 

现在,我们可以自由移动和旋转骨骼,给角色实现理想的姿势。旋转骨骼时,可以选中骨骼并使用Rotate工具(快捷键E),或是点击骨骼端点并将其拖到理想方向。


移动骨骼或将其与父骨骼分离时,请使用Move工具(快捷键W),或在原点点击并拖动它。

 

如果要将骨骼重置到默认绑定位置,请使用检视窗口中的Reset Bind Pose选项。我们也可以选中多个骨骼,并以小组为单位统一进行旋转,该方法在创建圆形形状时非常实用,例如:头发或根部。


创建动画剪辑

现在我们将简要的介绍,如何使用新创建的骨架来创建完整的2D动画。通过使用2D Animation资源包,我们可以按照3D项目的方法创建骨骼动画。


最简单的方法是选择绑定好的精灵,打开Animation窗口,点击菜单Window > Animation > Animation。系统将提示需要创建Animator组件,以及该游戏对象的第一个动画剪辑。


点击Create后,选择保存这些组件的文件夹,命名第一个动画剪辑。Animator资源会被自动创建,我们可以重命名或移动它。


我们也可以先创建Animator,点击菜单Assets > Create > Animator Controller,然后作为组件附加到游戏对象上,此后仅需要创建动画剪辑即可。

 

所有动作制作过程将在Animation窗口完成,每个Animator可以拥有多个动画剪辑。创建新剪辑时,Animation窗口左上方可以找到带有当前所选动画剪辑名称的下拉列表。点开该下拉列表后,会看到Create New Clip选项。



在动画的开始时,我们最好为所有骨骼位置和旋转设置关键帧,即使不打算修改它们,也需要这样处理。否则,如果稍后在场景移动或旋转不受动画影响的骨骼,这些骨骼会保持原来在场景的Transform,导致以不理想的方式改变动画。

 

为了对所有骨骼设置关键帧并开始录制动画,首先必须在Animation窗口,点击顶部工具栏的红色按钮,启用录制模式。

 

在创建初始关键帧时,请选择层级窗口中绑定的所有骨骼,然后在检视窗口中分别用右键点击Transform的Position和Rotation值并选择’Add Key’。这样会分别为所有选中的骨骼位置和旋转创建关键帧。

 

为了确保已经选中所有骨骼和子骨骼,我们需要在选择前展开骨骼结构。展开骨骼结构并确保选中所有骨骼的快捷方法是,按住Alt或是Mac的Option键的同时左键点击根骨骼,这样会折叠或展开所有根骨骼的嵌套子骨骼。



由于处在录制模式,我们可以将动画开头移动到新的位置,然后在场景中旋转或移动骨骼,从而自动创建新的关键帧。

 

我们可以通过选中并拖动关键帧到合适位置,并沿着动画时间轴上移动关键帧。或者使用快捷键,即Ctrl+ C和Ctrl+ V,来复制粘贴关键帧。当编辑好动画后,便可退出录制模式,点击Play按钮来预览动画。

 

现在我们已经充分了解如何创建骨骼动画,下面是一个示例剪辑,展示了如何快速制作维京战士行走动画。


资源下载

如果想了解使用2D Animation的更多信息,以及下载示例项目,请访问Github :

https://github.com/Unity-Technologies/2d-animation-samples


小结

Unity 2D Animation资源包久违大家介绍到这里,我们将在下一篇文章中介绍如何使用2D Inverse Kinematics,尽情关注。


不要忘记使用2D Animation资源包参加Unity最新的2D开发挑战赛,也同时期待开发者们能使用这些最新的2D工具创作出精彩的作品。更多Unity技术分享尽在Unity官方中文论坛(UnityChina.cn)!


推荐阅读

官方活动

Unity全球学生开发挑战赛

Unity面向全球的学生推出-Unity全球学生开发挑战赛,寻找全世界最具创意,展现自我的学生开发者团队。[了解详情...

活动地址:https://connect.unity.com/challenges/gsc2018


Unity 2D开发挑战赛

参加Unity 2D开发挑战赛,向全世界展示你在Unity 2D方面的创意实践。[了解详情...]

活动地址:https://connect.unity.com/challenges/2dchallenge


十一月超值Unity订阅,赠礼再加码

本月订阅Unity Plus加强版,赠送Unity限量礼品以及资源插件;订阅Unity Pro专业版订阅赠送Unite China 2019门票,另可获赠6件总价超过2800元的资源插件。[了解详情...]


点击“阅读原文”访问Unity官方中文论坛

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存