Unity 骨骼动画 Anima2D

Unity从2018版本开始引入不少2D的新功能,在资源包里加入很多新功能,一定要开启预览模式可以看到新功能,

2D Animation2D IK2D Pixel Perfect2D SpriteShape等等。

Unity 骨骼动画 Anima2D_第1张图片

这篇博客主要介绍的是2D Animation:


1. 安装 2D Animation

安装很简单点击install就可以安装了:

Unity 骨骼动画 Anima2D_第2张图片

 

我装的是最新的2.0.0-preview.3:

安装成功后有兴趣的同学可以直接看看unity的官方例子教程:
https://github.com/Unity-Technologies/2d-animation-v2-samples
需要unity 2018.3.x以上才能运行

插件的详细介绍,不过是英文版的:
https://docs.unity3d.com/Packages/[email protected]/manual/index.html

2. 创建骨骼

随意导入一张图片:

我用的碧蓝航线的标枪

Unity 骨骼动画 Anima2D_第3张图片

 

Sprite Mode 选择  Single:
然后点击  Sprite Editor 进入  Sprite Editor

Unity 骨骼动画 Anima2D_第4张图片

 

选择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 BoneReparent Bone创建骨骼和设置骨骼层级,这里就不在说明具体的使用方法了,骨骼创建为应该为这个样子:

Unity 骨骼动画 Anima2D_第5张图片

 

创建骨骼时可以选中一个骨骼再进行创建,这样就能直接设置新的骨骼为选中骨骼的子骨骼

后面可以修改层级 (大的在前)


3. 骨骼蒙皮

蒙皮我的理解就是怎么让骨骼和他控制的部件绑定在一起,这样骨骼移动、旋转的时候,部件才能跟着骨骼运动, Unity 2D Animation这个工具蒙皮还是很好用的,在Auto Geometry这个工具里,调整参数,工具就会根据你调整的参数来进行自动蒙皮:

Unity 骨骼动画 Anima2D_第6张图片

 

如图所示,调整红框里的参数,然后点击Generate For Selected就可以

注意如果自动蒙皮是正确的,骨骼颜色会和部件颜色是一样的,也就是什么颜色的骨骼会控制什么颜色的区域

如果蒙皮的区域大小识别的和自己想的不一样可以使用Edit GeometryCreate Edge或者Create Vertex

  1. 如果只是调整大小使用Edit Geometry
  2. 如果觉得顶点数量不足使用Create Vertex
  3. 然后用Create Edge把顶点连接起来。

如果部分的区域蒙皮不是很好可以使用Weight Slider或者Weight Brush来进行调整,具体可以看下一节。


4. 设置权重

蒙皮表示的是骨骼影响区域,权重表示的是骨骼对区域的影响程度,在Weight Slider权重编辑工具中,点击一个顶点,可以看到这个顶点受到哪些骨骼的影响,举个例子:

Unity 骨骼动画 Anima2D_第7张图片

 

比如上图这个区域,身体这个部件我加了两根骨骼,我们选中一个点,可以看到body这个紫色的骨骼对这个点的影响是0.5waist这个红色的骨骼对这个点的影响是0.5,什么意思呢?

我的理解是如果body这个骨骼有移动,旋转等操作的时候,这个点只会受到50%的影响,在具体点说就是如果body旋转90度,这个点只受到45度的影响

再来个直观的图方便大家理解,可以在Preview Pose预览模式中旋转这个部件看看效果:

Unity 骨骼动画 Anima2D_第8张图片

 

这样赋予每个顶点不同的权重,就可以对身体产生不同程度的形变。


5. 组装角色

组装角色就比较简单了,主要先检查下骨骼的层级:

Unity 骨骼动画 Anima2D_第9张图片

 

也可以通过Preview Pose预览模式中旋转骨骼,检查预想的部件是不是跟着旋转了

Unity 骨骼动画 Anima2D_第10张图片

 

如果层级没问题就可以保存下,点击右上角的Apply按钮。
然后我们就可以把这个Sprite拖到Unity的场景里了,然后会看到部件仍然是分布在各个地方的,接下来我们要做的是:

  1. 为这个GameObject添加一个Sprite Skin控件(这个控件只有安装了2D animation才会有)
  2. 点击控件下的Create Bones,会发现图片上的部件的骨骼就都会显示出来。
  3. 根据自己的喜好,组装角色

6. 扩展—IK应用

为了能够是关节行动起来更加自然,可以添加IK控制。

为这个GameObject添加一个IK Manager 2D控件(这个控件只有安装了2D IK才会有)

Unity 骨骼动画 Anima2D_第11张图片

Chain(CCD):不会改变关节方向

Chain(FABRIK):会改变关节方向

Limb:最多应用两个关节

点击生成 新的节点

 

Unity 骨骼动画 Anima2D_第12张图片

把目标拖进Effector  调节Chain Length 关联数量    确定后 点击 Create Target  完成创建

为了末端处能够旋转 可以 多添加一节关节使用
 

部分引用:https://www.jianshu.com/p/37517367e423

你可能感兴趣的:(Unity 骨骼动画 Anima2D)