> 技术文档 > Unity学习--2D动画--[骨骼动画]Spine动画_unity spine

Unity学习--2D动画--[骨骼动画]Spine动画_unity spine

·来源于唐老狮的视频教学,仅作记录和感悟记录,方便日后复习或者查找


一、Spine是什么以及运行库的导入

1.Spine是什么

官方地址:http://zh.esotericsoftware.com/

2.Spine运行库的导入

按上述图片点击到这里,然后选择下载对应版本

然后把运行库导入进来即可

具体如何通过Spine制作骨骼动画可以去官网学习,这里我们只学习怎么使用通过spine制作好的骨骼动画与调用相关的API即可


二、Spine的文件的导入与使用

1.导入Spine文件

导出的Spine不出意外的话应该是需要包含这三个文件的

直接拖进来就好了(注意:要是拖进来的时候报错了,可能是因为这个导出这个Spine文件的版本与你Unity中的Spine运行库版本对不上)

可以看到导入后新生成了四个文件

2.使用Spine文件

2.1直接拖入

直接拖进去,然后选SkeletonAnimation,就会自动帮我们生成一个带这个动画脚本的物体了

2.2先创建脚本,然后脚本关联

就随便创建一个新物体,挂上SkeletonAnimation脚本,然后把对应骨骼信息拖进去即可(我这里报红了,我也不知道为什么还,不用在意)

2.3生成动画状态机控制的动画

拖进去的时候选择SkeletonMecanim就会生成一个用Animator控制的脚本,同时也会帮我们生成相应的动画状态机(比较推荐用这个来控制的,毕竟比较熟悉)


三、Spine的相关文件的参数

1.骨骼数据文件

预览

蒙皮选择

2.脚本组件

常用的

不怎么用的

Debug状态查看

这里打开来

可以查看具体骨骼,骨骼的名字等诸多信息


四、Spine的骨骼动画的使用

通过在SkeletonAnimation脚本中,设置动画,即可播放相应的动画

或者采用动画状态机模式,把动画拖进Animator中,按Animator的知识连线使用


五、Spine的骨骼动画的代码控制

要对Spine动画进行控制,需要先获取SkeletonAnimation这个脚本

1.播放与增加排队动画(AnimationState下)

区别在于SetAnimation是直接切换,不论当前动画是否播放完毕

而Add Animation则是等待当前动画播放完毕之后,再开始播放

2.转向(skeleton下)

3.事件响应(AnimationState) 

这个t是动画播放轨道,e是在Spine中给它自定义的事件

Event中判断它的eventData.Name来判断发生的哪一个事件

4.变量特性

还有一个[SpineEvent]特性,可以获取里面的事件的名字,用于后续逻辑中判断对应发生的事件

应用的效果如下:

可以看出,能够让我们很方便地直接得到这些动画、骨骼、插槽、事件、附件

5.获取骨骼,设置插槽附件

6.在UI中使用

直接把骨骼信息文件拖入场景中,然后选择SkeletonGraphic(UI)即可

然后这个骨骼动画就会在画布上渲染出来


六、总结

①Spine是一个第三方的骨骼动画制作并可以使用运行库导入Unity的一个工具

②Spine导出的文件包括存储图集的图片(.jpg)、保存骨骼信息的文件(.json)、以及保存图集中各图片位置信息的文件(.txt),把它们拖入Unity中就会自动生成需要的材质、图集材质引用配置文件与骨骼信息文件。其中骨骼信息文件最重要,使用它来在场景中生成骨骼动画

③骨骼信息文件拖入场景中可以生成普通的物体、适用于UI的物体、以及转化为动画状态机控制的动画物体

③在代码中可以通过API控制动画的播放,以及一些事件绑定从而进行逻辑处理。不过一般来说还是把它转化成我们熟悉的动画状态机控制方式比较好