Unity3D之Animation2D骨骼动画

一、Animation2D骨骼动画入门 前段时间学习了Unity3D的Animation2D骨骼动画,https://www.bilibili.com/video/av54578442/?p=1这是视频教程,感兴趣的同学可以去看。由于视频看起来比较慢,便做个笔记整理并记录下来,方便后面查看。
二、主要内容

  • 创建骨骼,绑骨
  • 蒙皮
  • 设置权重
  • 组装角色
  • IK使用
  • 录制动画
三、开始制作 ps:我使用的是 Unity 2018.4.19f1
1.安装2D Animation,2D IK,2D PSD Importer

Unity3D之Animation2D骨骼动画
文章图片
1.png
2D Animation是用于2D的骨骼制作等功能,2D psd importer提供可导入psd文件(一般ps生成的文件可以直接导入使用), 2D IK用于制作IK的动画
2.将图片资源导入
图片资源来自:https://www.bilibili.com/video/av20868780?spm_id_from=333.788.b_765f64657363.1?t=93视频下方的链接

Unity3D之Animation2D骨骼动画
文章图片
rocker.png
将图片roker.png拖入Unity中 --> 选中图片 --> 将图片的Texture Type改为Sprite(2D and UI) --> Sprite Mode选择Single -->点击 Sprite Editor 按钮
Unity3D之Animation2D骨骼动画
文章图片
2.png
3.点击Sprite Editor后打开上图面板,左上角Sprite Editor点击选中Skinning Editor(在2D Animation 1.0时这里是Bones Editor)
Bones
  • Preview Pose--------预览,可以移动骨骼
  • Edit Joints------------编辑关节,即修改骨骼,拉伸、旋转、移动
  • Create Bone---------添加一根骨骼
  • Split Bone------------拆分骨骼
  • Reparent Bone-----设置骨骼层级,父层级的移动旋转会影响到子层级(Depth--影响显示层级数值越大显示在越上层)
Geometry
  • Auto Geometry------自动蒙皮,Outline Detail、Alpha Tolerance、Subdivide、Weights等参数控制蒙皮的精灵点数量,数值越大划分点越多,消耗性能越大。
    1.Outline Detail,轮廓细节;这个值决定了一会画网格时的精细程度
    2.Alpha Tolerance,一个透明的宽容度
    3.Subdivide,顶点数
  • Edit Geometry-------编辑蒙皮,编辑各个点的位置
  • Create Vertex--------创建一个蒙皮顶点,在任意位置添加一个顶点
  • Create Edge---------创建一条边,必须以一个顶点为准,才能进行添加(先点中一个点然后再创建另一个点,这样连成一条线)
  • Split Edge------------拆分一条边,需要在两点的连线上,才能新增加一个点
Weights
  • Auto Weights---------自动权重(自动分配这个在一个)
  • Weight Slider---------编辑顶点,边的权重
  • Weight Brush---------用笔刷赋权重
  • Bone Influence-------选择骨骼用到的Sprite
    ps:在Auto Weights中权重值是根据骨骼大小长度方向有关的,在Weight Slider中同一个封闭区域蒙皮只有一根骨骼时,该区域所有精灵点的权重都偏向这根骨骼(也就是说这个骨骼完全影响该蒙皮区域中所有的精灵点)如果同一个封闭区域中有多根骨骼时,这时每个精灵点受各个骨骼影响的权重值就不一样了,我们调整的大多是这种情况。

    3.png
    4.组装角色
    点击右上角的Apply应用下-->将做好的图拖动到场景中-->选中场景中刚刚拖进去的物体,添加Sprite Skin脚本(安装2D Animation后就有了)-->点击Sprite Skin脚本下的Create Bones按钮-->然后就可以在场景中看到各个骨骼物体了,接下来就是把它们组装起来就好了。大概就下面这样

    Unity3D之Animation2D骨骼动画
    文章图片
    4.png
    5.引入IK
    首先在前面的步骤中我们已经安装上了 2D IK,接下来开始使用
    ①选中场景中的骨骼动画物体,并挂上IK Manager 2D脚本;
    ②在IK Manager 2D脚本上添加一个IK Solver,选择Chain(CCD),添加之后会自动为我们创建一个GameObject,我们用这个来控制关节运动以及产生的影响
    ③选中刚刚创建的GameObject,然后在CCD Solver 2D脚本进行设置
    Effector----------控制的物体的Transform(直接将控制物体拖到参数格中)
    Target------------自动生成Target物体用于拖拽
    Chain Length--链接影响关节的个数,一层一层依次网上链接,链接上的关节点会被点亮
    ④点击CCD Solver中的Create Target按钮就可以创建出Target的GameObject
    ⑤这时在场景中拖动我们控制的关节,其他受影响的关节也会跟着移动旋转
    ps:注意在这里为了手掌能够旋转,在手的前端添加了一根小骨骼,但是小骨骼旋转移动不能影响蒙皮的精灵点,也就是说在手部区域的两个骨骼只有大的那一根影响蒙皮精灵点,小的骨骼在此区域对所有精灵点没有影响即权重为0,在骨骼制作的时候,权重修改Weight Slider,此区域的所有点选中,将小骨骼权重去掉就好了,不然会出现移动小骨骼蒙皮发生扭曲。

    Unity3D之Animation2D骨骼动画
    文章图片
    5.png
6.录制动画
①选中场景中的骨骼物体-->Window-->Animation-->Animation,打开Animation面板
②点击Create,创建一个Animation
③点击左上角红色圆形按钮就可以开始录制,移动骨骼开始制作动画,一帧做完换下一帧继续直到完成
四、总结 【Unity3D之Animation2D骨骼动画】按上面步骤就可以制作2D骨骼动画了,接触Unity时间不长,试着做做蛮简单的。https://www.bilibili.com/video/av54578442/?p=1感谢B站大佬的教学视频,从中获益良多。

    推荐阅读