Unity 骨骼动画 Anima2D

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

2D Animation2D IK2D Pixel Perfect2D 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 PoseShift + Q预览模式,可以预览动作并不会真正的改变设置。
Edit JointsShift + W改变骨骼的位置,长度,方向,名称,层级等等,这些改变会影响使用者。
Create BoneShift + E创建骨骼
Split BoneShift + R把一个骨骼分成两根
Reparent BoneShift + T浏览骨骼的层次结构,可以在这里改变层级和名称。
Auto GeometryShift + A自动蒙皮,这个好用
Edit GeometryShift + S编辑蒙皮的点
Create VertexShift + D创建新的顶点
Create EdgeShift + G创建新的边
Split EdgeShift + H用一个新的顶点分离一个边
Auto WeightsShift + Z自动赋予权重
Weight SliderShift + X编辑顶点,边的权重
Weight BrushShift + C用画刷赋予权重
Bone InfluenceShift + V选择骨骼用到的Sprite

首先要使用Create BoneReparent Bone创建骨骼和设置骨骼层级,这里就不在说明具体的使用方法了,骨骼创建为应该为这个样子:

 

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

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


3. 骨骼蒙皮

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

 

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

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

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

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

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


4. 设置权重

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

 

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

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

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

 

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


5. 组装角色

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

 

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

 

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

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

6. 扩展—IK应用

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

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

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

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

Limb:最多应用两个关节

点击生成 新的节点

 

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

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

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

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值