Unity 骨骼动画 2D Animation 入门(1)
好记性不如烂笔头啊,还是记录一下!
Unity从2018版本开始引入不少2D的新功能,在资源包里加入很多新功能,一定要开启预览模式
可以看到新功能,2D Animation
,2D IK
,2D Pixel Perfect
,2D SpriteShape
等等。
这篇博客主要介绍的是2D Animation
:
1. 安装 2D Animation
安装很简单点击install
就可以安装了:
我装的是最新的2.0.0-preview.3
:
安装成功后有兴趣的同学可以直接看看unity的官方例子教程:
https://github.com/Unity-Technologies/2d-animation-v2-samples
需要unity 2018.3.x
以上才能运行
插件的详细介绍,不过是英文版的:
https://docs.unity3d.com/Packages/com.unity.2d.animation@2.0/manual/index.html
2. 创建骨骼
随意导入一张图片:
我用的碧蓝航线的
标枪
Sprite Mode
选择Single
:
然后点击Sprite Editor
进入Sprite Editor
:
选择Skinning Editor
进入Skinning Editor
,注意1.0.x叫Bone Edito
:
在编辑器右侧有一排按钮,依次为:
工具名 | 快捷键 | 用途 |
---|---|---|
Preview Pose | Shift + Q | 预览模式,可以预览动作并不会真正的改变设置。 |
Edit Joints | Shift + W | 改变骨骼的位置,长度,方向,名称,层级等等,这些改变会影响使用者。 |
Create Bone | Shift + E | 创建骨骼 |
Split Bone | Shift + R | 把一个骨骼分成两根 |
Reparent Bone | Shift + T | 浏览骨骼的层次结构,可以在这里改变层级和名称。 |
Auto Geometry | Shift + A | 自动蒙皮,这个好用 |
Edit Geometry | Shift + S | 编辑蒙皮的点 |
Create Vertex | Shift + D | 创建新的顶点 |
Create Edge | Shift + G | 创建新的边 |
Split Edge | Shift + H | 用一个新的顶点分离一个边 |
Auto Weights | Shift + Z | 自动赋予权重 |
Weight Slider | Shift + X | 编辑顶点,边的权重 |
Weight Brush | Shift + C | 用画刷赋予权重 |
Bone Influence | Shift + V | 选择骨骼用到的Sprite |
首先要使用Create Bone
,Reparent Bone
创建骨骼和设置骨骼层级,这里就不在说明具体的使用方法了,骨骼创建为应该为这个样子:
创建骨骼时可以选中一个骨骼再进行创建,这样就能直接设置新的骨骼为选中骨骼的子骨骼
3. 骨骼蒙皮
蒙皮我的理解就是怎么让骨骼和他控制的部件绑定在一起,这样骨骼移动、旋转的时候,部件才能跟着骨骼运动, Unity 2D Animation这个工具蒙皮还是很好用的,在Auto Geometry
这个工具里,调整参数,工具就会根据你调整的参数来进行自动蒙皮:
如图所示,调整红框里的参数,然后点击Generate For Selected
就可以
注意如果自动蒙皮是正确的,骨骼颜色会和部件颜色是一样的,也就是什么颜色的骨骼会控制什么颜色的区域
如果蒙皮的区域大小识别的和自己想的不一样可以使用Edit Geometry
、Create Edge
或者Create Vertex
- 如果只是调整大小使用
Edit Geometry
- 如果觉得顶点数量不足使用
Create Vertex
- 然后用
Create Edge
把顶点连接起来。
如果部分的区域蒙皮不是很好可以使用Weight Slider
或者Weight Brush
来进行调整,具体可以看下一节。
4. 设置权重
蒙皮表示的是骨骼影响区域
,权重表示的是骨骼对区域的影响程度
,在Weight Slider
权重编辑工具中,点击一个顶点,可以看到这个顶点受到哪些骨骼的影响,举个例子:
比如上图这个区域,身体这个部件我加了两根骨骼,我们选中一个点,可以看到body
这个紫色的骨骼对这个点的影响是0.5
,waist
这个红色的骨骼对这个点的影响是0.5
,什么意思呢?
我的理解是如果
body
这个骨骼有移动,旋转等操作的时候,这个点只会受到50%的影响,在具体点说就是如果body
旋转90度,这个点只受到45度的影响
再来个直观的图方便大家理解,可以在Preview Pose
预览模式中旋转这个部件看看效果:
这样赋予每个顶点不同的权重,就可以对身体产生不同程度的形变。
5. 组装角色
组装角色就比较简单了,主要先检查下骨骼的层级:
也可以通过
Preview Pose
预览模式中旋转骨骼,检查预想的部件是不是跟着旋转了
如果层级没问题就可以保存下,点击右上角的Apply
按钮。
然后我们就可以把这个Sprite
拖到Unity的场景里了,然后会看到部件仍然是分布在各个地方的,接下来我们要做的是:
- 为这个
GameObject
添加一个Sprite Skin
控件(这个控件只有安装了2D animation
才会有)- 点击控件下的Create Bones,会发现图片上的部件的骨骼就都会显示出来。
- 根据自己的喜好,组装角色吧
来一张自己完成组装的图:
以上说法只是我的个人理解,如有不对,欢迎留言指正。