欢迎光临散文网 会员登陆 & 注册

轻松学会2D绑骨+IK,妈妈再也不用给我买Spine

2019-12-25 10:34 作者:皮皮关做游戏  | 我要投稿

作者:Yumir


哈喽艾瑞巴蒂~Merry Christmas!!

圣诞爷爷来给大伙送礼物啦!!!

学习游戏开发的过程中游戏素材一直是一个很大的问题,游戏需要画风统一,但是却不一定能找到合适的素材,这时候就需要用勤劳的双手自己创造财富啦【多图预警】。

Unity提供了一套2D绑骨的相关插件(2DAnimation+2DIK),但还不是正式版本,需要在PackageManager中下载才可以使用,我试着用了一下觉得已经足够好用啦。


SantaHi

骨骼动画相比其他动画形式更容易、更快捷,不同的骨骼动画可以被组合到一起——比如射击游戏的持枪走路的动画,实际上是持枪动画+走路动画。而且可以重复在不同的角色身上运用,一样的动作可以发N个不一样的视频,想想就有点兴奋呢。

首先是素材,可以使用一般的图片也可以用PSB格式的文件,这里我对各种情况都做了测试,本文使用的是PSB格式,下面是我制作的素材,原素材来自:https://itch.io/game-assets

https://pan.baidu.com/s/1Wn29iJzjTYBKmbLZ0DMw5w#list/path=%2F


PSB格式是PS的输出格式之一,可以完整保留图层信息,在Unity中随时打开修改,需要下载插件才能使用。打开unity项目点击Window>PackageManager打开插件加载窗口,下载下图框选的三个插件。

首先我们需要通过2D Animation对人物进行骨骼绑定的操作,说是骨骼绑定,实际上包括了绑骨、蒙皮两个操作,毕竟如果绑骨不蒙皮,骨是骨,没有皮,视需求调权重,不过一般都是要自己调的。

1、绑骨

首先需要打开素材的Sprite Editor,点击左上角的下拉菜单选择Skinning Editor,打开2D Animation编辑界面。

左边一列是我们接下来要使用的功能菜单,按操作流程排序,绑骨相关的功能在第一个工具栏,默认选中第一个工具,可以预览当前的骨骼绑定情况,当骨骼绑定完成之后可以在这里看当前的绑定效果。

我们可以试着先随便新建几个骨骼学习一下骨骼,规则如下:

  1. 点击Create Bone,鼠标会变成一个小圆点,如果没有出现的话先双击选中整个游戏人物。

  2. 左键单击新建骨骼起点,再左键单击骨骼结束位置,新建骨骼。

  3. 下一个骨骼会以上一个骨骼的结束点为起点。

  4. 左键选择骨骼,右键取消骨骼选中。

  5. 一个骨骼可以有多个子骨骼,但是尖端只对应一个。

绑骨

骨骼的设计需要配合动画需求,但是也不需要太担心,因为即使需要修改骨骼结构,用骨骼这一栏的另外两个功能也是很轻松的。

这里对角色进行了简单的骨骼绑定,因为用的是PSB,保留了图层信息的部分不需要额外设置层级,在没有分图层的部分对骨骼的层级进行设置,数值越高越前方(在工具栏点击Reparent Bone唤出)。

2、蒙皮

将骨骼设置完毕之后,骨骼的旋转并不能带动角色旋转,这就需要蒙皮,方法很简单,点击Auto Geometry,再点击右下角的按钮自动蒙皮,这里将权重也一起上了,另外三个数值是对生成的蒙皮进行设置,数值越大越细致。

自动蒙皮之后可以通过另外四个工具调节顶点,对细节进行处理。

蒙皮之后就可以通过骨骼来控制角色动作了,但是还没好,为啥,因为这个花花绿绿的动起来很鬼畜啊,这也是为什么最后一步需要自己设置权重了。

蒙皮

3、权重

权重的设置决定了骨骼对蒙皮的影响程度,可以看到有四种工具,刚刚已经自动刷过一遍权重了,另外两个方法不知道为什么用不了(目前也不需要用),用Weight Brush来刷权重是非常方便的。

点击Weight Brush,选中需要刷权重的部位,点击需要设置权重的骨骼,再在需要刷权重的位置涂抹就可以设置权重了,右下角可以设置画笔的大小、硬度(类似透明度)和离散程度。

绘制好权重之后动起来就很正常了。

点击“Apply”保存设置,将素材拖拽到游戏场景中使用,如果是非PSB格式需要挂载Sprite Skin脚本,点击Create Bones自动挂载骨骼,就可以使用了(PSB直接挂好骨骼不需要另外用脚本)。

现在我们已经可以用骨骼控制角色做出各种动作了,在开始动画制作之前先说一下反向动力学IK在这个2D骨骼上应该怎样设置。

在角色游戏物体身上添加IK Manager2D脚本,这个脚本是通过下载插件获得的,点击“+”号添加新的IK Solvers,这里建议选择第一个,比较灵活,同学们可以私下尝试其他选项。

点击完毕之后unity会自动生成一个CCDSolver2D,点击该游戏物体可以看到上面有一个脚本,在需要添加IK的骨骼下新建一个子物体,将该子物体移动到骨骼前方。

再将该子物体拖拽到CCDSolver2D的Effector上,调节Chain Length的值,可以看到骨骼亮起黄色小点,表示该骨骼被这个CCDSolver2D所控制,拖动这个小点就可以通过反向动力控制骨骼。

IK的另一个功能是将某个骨骼“固定”,在CCDSolver2D上点击Create Target,unity会自动生成一个子物体作为Target,原本黄色的点点变成了绿色,这样一来就将这块位置的骨骼“固定”住了。

接下来使用自带的动画K帧就可以为所欲为啦,Unity的动画编辑器使用之前有说过,真的是很常见的功能必须要掌握呢。

刚开始不建议用很难的动画做练习,上面是我制作的一个打招呼的简单动画,可以先试着实现那个,但是稍微复杂的动画也是需要的,比如跑步动作。这类动作最好找游戏帧动作对比着去调整骨骼,凭空做出来是很难的。

复杂的动作需要有参考图

剩下的就都是体力活和对动作的理解了,没啥好说的,这是我调好的跑步动图,可以下载我的工程参考一下。

我用的unity版本是2018.4.8c3,最好是用同版本打开我的项目哦。

https://github.com/peiyl/HeaveHo


欢迎加入游戏开发群欢乐搅基:869551769

有意向参与线下游戏开发学习的读者可戳这里进一步了解:http://www.levelpp.com/

轻松学会2D绑骨+IK,妈妈再也不用给我买Spine的评论 (共 条)

分享到微博请遵守国家法律