• Unity2d 骨骼动画1:介绍


    http://bbs.9ria.com/thread-401613-1-1.html

    by Orlando Pereira and PedroPereira3 days ago2 Comments

    在这节课中,我们将关注Unity提供的bone-based 2D动画工具引擎。它的主要思想是为了把它应用到你自己的游戏来介绍和教基本的2D动画原理。在这次上,新建项目,定义assets,和做动画的初步准备。

    在开始这个课程前,我们将感谢Chenguang (DragonBonesTeam)给我们提供用于本系列教程游戏艺术。

    本教程给谁呢?

    本课程主要针对两组游戏开发人员:


    • 那些一点都不数学Unity的。
    • .那些熟悉Unity,但不熟悉Unity2D引擎和工具的。

    假设你已经拥有一些编程的技巧,所以我们不需要深入讨论到编程里面的代码。为了跟谁这个课程的脚步,我们当然会需要下载Unity

    开始快速使用Unity,按照我们上一个课程 ,介绍Unity2D的环境及其工具的特征。

    最后预览

    这个demo展示了我们要目标龙的动画:

    项目启动

    启动Unity和通过从 File 菜单中选择New Project... 新建项目。Project Wizard将出现。现在,新建一个新的2D项目,接着新建一个叫Sprites的文件夹。(在你的Assets目录下)。

    现在你已经有了建好的项目文件夹,接下来就要导入游戏资源。你可以在 Assets文件夹的 GitHub的本节报告中找到它们。(如果你不熟悉GitHub的话,你只需要在最近页面中点击下载ZIP 。)注意,这个文件包括整个系列教程的Asstets文件,所以有一些现在不会用上,但在后面用上。

    骨骼动画vs精灵图集

    先继续之前,比较下面两张图片


    图片1.png

    图片2.jpg



    在第一张图片中,龙被分为若干身体部位(头,身体,手臂等等)。第二幅图,一个忍者所示的几个姿势,姿态不同的动作序列。这让你更清楚的想象一下《阿凡达》在你的游戏中是如何制作。

    忍者精灵就是我们说的一张精灵或者精灵图集。这类型的精灵在传统的2D游戏中相当受欢迎,到了今天,它还是很常见。

    这个龙精灵取药最近的2D动画技术,通常被称为bone-based动画。顾名思义,动画将在一个骨骼的基础上,每个身体骨骼可以有一个特定的动作或者动画。所有身体被分割的主要部分特点允许开发人员直接在引擎上创建动画。

    在这个课程中,我们将关注bone-based动画。然而,注意Unity的bone-based动画并不如此,所以我们将模拟。

    准备动画需要的精灵

    Sprites 文件夹中拖拽精灵到编辑器,就像这样:

    图片3.png

    在任何角色的准备动画之前,你需要添加项目的一个场景。在Assets 目录下,创建一个Scenes 文件夹,接着创建一个新的场景,然后在这个文件夹中另存为Test.scene。在这最后一步中,你应该是这样的:

    图片4.png


    现在,仍然在Project 选项卡中,选择dragon 精灵,接下来在Inspector 面板中看:

    图片5.png


    你可以在Inspector里面的 Sprite Mode属性看到,Sprite Mode设置是Single。这意味着当创建一个新的精灵,引擎将使用整个结构作为一个整体。因为我们有龙的身体分开部位,我们不希望这种情况发生。因此,我们需要把Sprite Mode模式从Single 改为Multiple

    当你改变选项的时候,在Sprite Editor 标签出现一个新的按钮:

    图片6.png


    目前,在Sprite Editor切片工具不能压缩图像。为了确保这个是这些动画精灵的最好结果,你需要改变在Inspector 选项卡的底部Format 值,由默认的Compressed选项改为Truecolor。然后点击Apply

    图片7.png

    现在,选择龙精灵,接着点击 Sprite Editor按钮。一个新的窗口就会弹出来:

    图片8.png


    在窗口的左上角,你可以找到一个Slice 按钮。点击它,另一个菜单就会弹出来:

    图片9.png


    这个菜单允许你改变如何将精灵切片的引擎参数。如果你设置切片的参数为Automatic,引擎将尝试检测不同部分特征的图像。你可以在切片中定义最小的尺寸,支点(一个围绕切片旋转的点)和三种方法之一:


    • 删除现有的将取代任何现有的切片
    • 智能将尝试创建新的切片,同时保持或调整现有的。
    • 安全将添加一个新的切片,无需删掉原先的切片。

    你也可以设置Type 参数为Grid。这将会给你其他选项:

    在自动模式下,你可以选择精灵的走心点,但你也要定义像素大小的选项。这个值决定了面砖的高度和宽度像素。

    在这个特定的图像,选择自动模式和点击切片按钮。结果应该类似这样:


    正如你所看到的,编辑切片的各个部分的精灵成了不同的矩形。这些都是你构建角色使用到的部分。正如上面提到的,这不是完美的骨骼动画,但每个部分的动画是独立的。

    如果你双击一个生成的举行,会弹出精灵的特定部位的属性面板。

    图片13.png


    你的修改生成的精灵的名字,位置,尺寸和轴心点。你也可以通过拖拽矩形的顶点蓝色点来改变位置和大小。蓝色的圆圈的中心为选定矩形表示的轴心点。

    对于这个精灵,让Unity自动创建单独的精灵是安全的。然而,在一些更复杂的精灵,你可能要手动定义精灵。你可以通过点击和拖动鼠标左键在一个图像来定义一个长方形。

    图片12.png

    一旦释放鼠标,Uinty将会从矩形中创建一个新的精灵。


    你能点击Trim 按钮来调整精灵的矩形。接着,只要重复这个过程来生成你想要的所有精灵。

    自动模式的切片对这种图片来说挺不错的,你不需要手动定义精灵。

    调整中心点

    接下来是调整各个生成的精灵的中心点。这个步骤对于这个动画非常重要。

    基本上,我们需要拖拽精灵区域中心点,将它加入到父对象的身体部位。举个例子说明,你想要移动靠近脖子区域的头部支点。这将确保,动画角色时,所有动作,例如旋转,将是围绕这个点旋转,允许以现实的方式移动角色。如果你离开了中心点原来的区域,最终你会奇怪这个动画,因为这个角色将无法按现实的方式移动。

    幸亏有中心点这个成员作为娃娃的关节。为了让娃娃移动,这个关节必须正确的放置,对吧?同样的规则应用于中心点。

    移动中心点,通过拖拽每个精灵中心蓝色的圆圈到正确的位置(就是应该链接的父对象的部位)。在下图可以看到头部的中心点在它的正确地方:

    尾巴部位看起来像这样:


    你还有其他好主意吗?非常好!给剩下的部位重复这个过程。(你可以把黑色的中心点放在它的中心,我们将在下一节中解释更多关于这方面的内容。)记住,你想要龙的动画,不是《弗兰肯斯坦》的动画。

    一旦完成,点击Applay按钮:

    如果你快速的看一下你的精灵文件夹,你可以看到精灵现在旁边有一个箭头:

    点击箭头,你可以看到所有的部分单独构成我们龙的角色:

    组装这个角色

    现在你有切片分成不同精灵的角色,你可以开始把精灵放到场景。因为龙是由几个身体部位,所以需要构建角色。

    首先,把龙精灵的黑色点拖拽到场景。这个对象将作为角色的重心工作。接着,你要集中注意力,然而,现在,就知道这个你的角色。

    现在,龙身上的黑点,如下所示:


    重复这个过程直到将龙组装好。到最后看起来像下面展示的样子:


    最后,你已经有一只龙了—然而,有一点你需要注意,他看起来怪怪的。一些身体部分应该在身体下面或者相反。这种原因的产生是因为我们添加龙的部分没有按照特定的顺序。

    在解决这个问题之前,让我们把龙精灵转化成一个单一的游戏对象。你可能已经注意到了,现在龙的几个部分作为一个单一的游戏对象—你需要组成一个游戏对象,然后就可以开始制作动画。

    为了正确的组成所有精灵,使用精灵的黑点来组成主要的游戏对象;所有其他的身体部位应该在这个精灵的下面。只要拖拽精灵到精灵的黑色点的层级上来组织它到黑点下面。

    在下面的图片,你可以看到精灵图层层次结构应该类似于后分组游戏的对象。


    在继续之前,重命名你的基本游戏对象名为Dragon。但你移动Dragon游戏对象,你能移动场景中角色的所有部分。

    但如果你想只移动一个精灵呢?举个例子,如果你想移动手,你知道的,手臂和手是连接在一起的,所有,当你移动它是,所有手也会跟着一起移动,对吗?如果你想这样做,你会发现并非如此。当选中手臂,然后移动它,其他的部分依旧在身体的那个部位上。所以,为了移动所有的身体部位,你需要在你的精灵里创建一个新的图层。

    为了是过程更直观,重命名身体部位(通过右击选中重命名)与各自的名字,像这样:


    对于层级结构,想到角色像一棵树,有树根,树干和树枝。黑点像树根;当它移动,所有的身体部位移动。在根主干,在这种情况下,你的树干就像是身体这个角色,所以这是层级结构的下一个精灵。然而,你仍然还有分支的分支,举个例子,在尾巴图层—Tail的分支是Tail Tip等等。

    在下面的层次结构中,组织所有角色的精灵:

    图片24.png 

    现在,如果移动Upper arm,所有的手臂都会跟着移动,是不是非常好?

    重新排序精灵

    在你可以开始动画角色之前,还有最后一个细节需要我们注意一下。正如我们讨论的,精灵部分没有按照正确的顺序画出。为了解决这个问题,你必须改变每个单独精灵图层的顺序参数。

    图片25.png 

    为了确保本教程成功,请为每一个精灵使用下列值:


    • 0
    • 身体3
    • 头部 4
    • 左腿 4
    • 左上臂: 5
    • 左臂:4
    • 左手:5
    • 右腿:1
    • 右上臂: 2
    • 右臂:1
    • 右手:2
    • 尾巴:4
    • 尾巴尖端:5

    最后,你的龙应该是这样的:

    图片26.png 

    为了完成这个部分,使你的角色在场景中心。通过改变Transform 值的中心坐标为(0, 0, 0)。

    图片27.png


    下一回

    本系列的第一部分总结。现在你有一个2D的角色和正确的精灵顺序和层次结构。

    到目前为止,如果你有任何问题或反馈,可以再下面发表评论。

    参考资料



    原文链接:http://gamedevelopment.tutsplus.com/tutorials/bone-based-unity-2d-animation-introduction--cms-21364

    翻译词数:2234

    图片23.png (179.5 KB, 下载次数: 3)

    图片23.png

    图片22.png (164.06 KB, 下载次数: 6)

    图片22.png

    图片21.png (105.38 KB, 下载次数: 6)

    图片21.png

    图片20.png (62.87 KB, 下载次数: 3)

    图片20.png

    图片19.png (45.31 KB, 下载次数: 3)

    图片19.png

    图片18.png (160.19 KB, 下载次数: 0)

    图片18.png

    图片17.png (145.04 KB, 下载次数: 3)

    图片17.png

    图片16.png (175.24 KB, 下载次数: 6)

    图片16.png

    图片15.png (164.89 KB, 下载次数: 3)

    图片15.png

    图片14.png (178.75 KB, 下载次数: 0)

    图片14.png

    图片11.png (178.84 KB, 下载次数: 3)

    图片11.png

    图片10.png (173.84 KB, 下载次数: 0)

    图片10.png

  • 相关阅读:
    Hard Rock
    Codeforces Round #416 (Div. 2) B. Vladik and Complicated Book
    codeforces 793B. Igor and his way to work
    codeforces 1B Spreadsheets
    HDU 1069 Monkey and Banana
    codeforces 2B The least round way
    【机器学习】 通俗说拟合
    python-八皇后问题
    python-核心知识思维导图
    python-@property 属性
  • 原文地址:https://www.cnblogs.com/nafio/p/9137521.html
Copyright © 2020-2023  润新知