Unity3D之Animation2D骨骼动画
一、Animation2D骨骼动画入门
前段时间学习了Unity3D的Animation2D骨骼动画,https://www.bilibili.com/video/av54578442/?p=1这是视频教程,感兴趣的同学可以去看。由于视频看起来比较慢,便做个笔记整理并记录下来,方便后面查看。
二、主要内容
- 创建骨骼,绑骨
- 蒙皮
- 设置权重
- 组装角色
- IK使用
- 录制动画
1.安装2D Animation,2D IK,2D PSD Importer
文章图片
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视频下方的链接
文章图片
rocker.png
将图片roker.png拖入Unity中 --> 选中图片 --> 将图片的Texture Type改为Sprite(2D and UI) --> Sprite Mode选择Single -->点击 Sprite Editor 按钮
文章图片
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--影响显示层级数值越大显示在越上层)
- Auto Geometry------自动蒙皮,Outline Detail、Alpha Tolerance、Subdivide、Weights等参数控制蒙皮的精灵点数量,数值越大划分点越多,消耗性能越大。
1.Outline Detail,轮廓细节;这个值决定了一会画网格时的精细程度
2.Alpha Tolerance,一个透明的宽容度
3.Subdivide,顶点数 - Edit Geometry-------编辑蒙皮,编辑各个点的位置
- Create Vertex--------创建一个蒙皮顶点,在任意位置添加一个顶点
- Create Edge---------创建一条边,必须以一个顶点为准,才能进行添加(先点中一个点然后再创建另一个点,这样连成一条线)
- Split Edge------------拆分一条边,需要在两点的连线上,才能新增加一个点
- 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按钮-->然后就可以在场景中看到各个骨骼物体了,接下来就是把它们组装起来就好了。大概就下面这样
文章图片
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,此区域的所有点选中,将小骨骼权重去掉就好了,不然会出现移动小骨骼蒙皮发生扭曲。
文章图片
5.png
①选中场景中的骨骼物体-->Window-->Animation-->Animation,打开Animation面板
②点击Create,创建一个Animation
③点击左上角红色圆形按钮就可以开始录制,移动骨骼开始制作动画,一帧做完换下一帧继续直到完成
四、总结 【Unity3D之Animation2D骨骼动画】按上面步骤就可以制作2D骨骼动画了,接触Unity时间不长,试着做做蛮简单的。https://www.bilibili.com/video/av54578442/?p=1感谢B站大佬的教学视频,从中获益良多。
推荐阅读
- 视觉笔记之父亲悖论
- 653-两数之和|653-两数之和 IV - 输入 BST
- 享知行·思考(稻盛和夫哲学之提升心志磨练灵魂)
- 梧桐21天幸福演说训练营第十六天之《分清主次》
- 21天微习惯之形成
- 看马姐装修之决定(名为装修)
- 常州溧阳天之福生态园,我为什么这么爱这里
- 云(四十二)仙逆之经典评论
- 20170604感恩
- 七七带你游杭州之4---法喜寺