Spine 2D骨骼动画插件 for Unity

 Spine 2D骨骼动画插件 for Unity


GitHub

https://github.com/EsotericSoftware/spine-runtimes


如果你喜欢做2D横版游戏,使用2D骨骼动画是一个不错的选择,因为2D骨骼动画可以用最小的资源量做出复杂的动画。最近在使用Dragonbones骨骼动画的时候,接触到了这么一个2D骨骼动画编辑器,感觉还不错,于是打算推荐给大家:

推荐一个Spine-2D骨骼动画编辑工具,可以用在Unity3D和as3 - 阿赵 - 穷到掉渣的超级奶爸阿赵
spine骨骼动画

 

在它的官网里面,可以看到它支持这么多的引擎和平台:
推荐一个Spine-2D骨骼动画编辑工具,可以用在Unity3D和as3 - 阿赵 - 穷到掉渣的超级奶爸阿赵

然后在官网也有对应的运行库下载,我最熟悉的unity和as3 它都支持:

推荐一个Spine-2D骨骼动画编辑工具,可以用在Unity3D和as3 - 阿赵 - 穷到掉渣的超级奶爸阿赵

编辑器自带了几个例子,打开其中一个是这样的,这是setup界面,可以设置图片的位置和摆放骨骼:
推荐一个Spine-2D骨骼动画编辑工具,可以用在Unity3D和as3 - 阿赵 - 穷到掉渣的超级奶爸阿赵

 

这是动画制作界面,可以在时间轴上面打关键帧做动画,除了直接移动骨骼做动画以外,还可以给骨骼上的图片换图,比如这只龙的翅膀,在扇动的时候其实是用了序列图做扇动的效果的。
推荐一个Spine-2D骨骼动画编辑工具,可以用在Unity3D和as3 - 阿赵 - 穷到掉渣的超级奶爸阿赵

 

还有其他一些例子,可以同一个文件里面包含多个动画
推荐一个Spine-2D骨骼动画编辑工具,可以用在Unity3D和as3 - 阿赵 - 穷到掉渣的超级奶爸阿赵

 

再来看看导入到Unity3D的情况了:
可以看到刚才spine里面的龙已经进入了Unity了,播放动画后它将会和在编辑器里面一样的运动起来。
推荐一个Spine-2D骨骼动画编辑工具,可以用在Unity3D和as3 - 阿赵 - 穷到掉渣的超级奶爸阿赵

 

看了一下它的原理,spine给unity写了几个扩展的组件,包括了骨骼、网格和动画,只需要拾取了数据,那么这个物体将会是一个整体,使用动态网格的形式生成。(当然了,这种程度的功能我自己也能写出来,不过比较麻烦)。
推荐一个Spine-2D骨骼动画编辑工具,可以用在Unity3D和as3 - 阿赵 - 穷到掉渣的超级奶爸阿赵
放置多几个动画测试一下,感觉性能还算过得去吧。
推荐一个Spine-2D骨骼动画编辑工具,可以用在Unity3D和as3 - 阿赵 - 穷到掉渣的超级奶爸阿赵
可能是由于最新版的spine推出的时间比unity4.3要早,所以它暂时没有对应Unity2D sprite的运行库,只有对应了2D toolKit的运行库。不知道以后它会不会再针对Unity2D来做一个更新呢?
最后补充说一句,Spine的试用版是免费的,普通版是大概300多元吧,专业版是差不多1600元。

尝2D骨骼动画编辑工具SPINE,并into Unity3D

 

一、SPINE使用

研究2D骨骼动画,CYou的朋友介绍我SPINE这个工具,开发自Esoteric Software的一款专门制作2D动画的软件,网络上的资料还很少,我这从半吊子美术技术的角度简单说一下使用教程。
有几个不错的地方:
1、美术制作前准备的贴图为一堆小切片图。不用非得拼成一张atlas,spine会做这一步,详见步骤七,
导出数据时会动态的将切片合并到同一个到N个atlas中,合并的策略会考虑我们设置的atlas的尺寸。
2、方便换装和BODYPART:
        SPINE的数据结构中包括Bone和SLOT。其中Bone既为骨骼节点数据,Slot槽理解为挂接在Bone上的虚拟点。同一个骨骼节点或者槽下只能有一张贴图切片。
        因此如果某骨骼上需要有两把刀的情况,可以是骨骼上设置Slot来辅助实现。不过有如下一些约束:

        同一个骨骼下只能有一张贴图,且spine貌似没提供关闭这张帖图的方法,因此理解为这个图为必有得骨架贴图。

 

 

        

        同一个SLOT下可以有多张图,例如SLOT2,左边的灰点儿表示现在那张图正在使用中。
                      
3、 DrawOrder,可以通过拖动控制切片的渲染顺序。例如控制眼睛要画在脸前面。
4、可以制作多个SKIN,SKIN可以满足整个SKIN的切换。
 

二、TO Unity

Spine 自带了预制运行库 Spine runtimes,这是一个奇妙的方式“在你的游戏中添加读取 Spine 文件的 代码,然后它为创建动画。”Spine 的运行库,支持目前主流的游戏引擎 Unity3D, Sprite Kit, cocos2d 等等。
 
我这里把做好的SPINE示例导入到UNITY中,并使用API实现换武器和头部。
 

嘛是 Spine?

Spine 是一款针对游戏的 2D 骨骼动画编辑工具。 Spine 旨在提供更高效和简洁 的工作流程,以创建游戏所需的动画。

优势 Benefits

在 Spine 中通过将图片绑定到骨骼上,然后再控制骨骼实现动画。 2D 骨骼动画 相对于传统的逐帧动画有以下优势:

  • 最小的体积: 传统的动画需要提供每一帧图片。而 Spine 动画只保存骨骼的动 画数据,它所占用的空间非常小,并能为你的游戏提供独一无二的动画。

  • 美术需求: Spine 动画需要的美术资源更少,能为您节省出更多的人力物力更 好的投入到游戏开发中去。

  • 流畅性: Spine 动画使用差值算法计算中间帧,这能让你的动画总是保持流畅 的效果。

  • 装备附件: 图片绑定在骨骼上来实现动画。如果你需要可以方便的更换角色的 装备满足不同的需求。甚至改变角色的样貌来达到动画重用的效果。

  • 混合: 动画之间可以进行混合。比如一个角色可以开枪射击,同时也可以走、 跑、跳或者游泳。

  • 程序动画: 可以通过代码控制骨骼,比如可以实现跟随鼠标的射击,注视敌人, 或者上坡时的身体前倾等效果。

功能 Features

摄影表 Dopesheet

在动画制作过程中摄影表是最核心的地方。这里显示所有关键的细节,通过它可以 创建动画以及对时间节奏进行微调。

Dopesheet

曲线编辑器 Graph Editor

在曲线编辑器中可以通过调整贝赛尔曲线来控制两帧之间的差值,以实现栩栩如生 的动画效果。

Graph Editor

反向动力学工具 IK Posing

Pose 工具可以利用反向动力学便捷的调整姿势。

IK Posing

皮肤 Skins

皮肤可以为做好的动画切换图片素材。通过改变附加在骨骼上的图片来实现动画的 重用。

Skins

边界框 Bounding Boxes

边界框是一个附加到骨骼上,随着骨骼移动的对象。它可以用于碰撞检测和物理集 成。

Bounds

网格 Meshes

网格允许你在矩形边界内定义多边形。这将提高最终纹理贴图集的空间使用率,因 为在多边形外的像素将被忽略掉,这种优化对移动设备来特别重要。网格的另外一 个功能就是支持自由变形 FFD 和蒙皮 Skinning。

Meshes

自由变形 Free-Form Deformation

自由变形 FFD 允许你通过移动网格点来变形图片。FFD 能实现网格的:拉伸、挤 压、弯曲、反弹,等一些矩形图片无法实现的功能。

Free-Form Deformation

蒙皮 Skinning

蒙皮允许将网格中指定的点附加给指定骨骼。然后点将随着骨骼移动,网格则随之 自动发生变形。现在可以用骨骼动作控制角色的图片进行弯曲变形了。

输出格式 Export formats

Spine 能将项目中的动画导出为 JSON 或二进制格式文件,它们能在 Spine 运行时 库中完美的再现。 Spine 同时还可以导出 GIF 动画, PNG 或 JPG 序列图,还有 AVI 或 QuickTime 的视频文件。

Export formats

导入 Importing

Spine 通过一个路径查找并导入其它工具生成的数据文件,它能够识别符合要求的 JSON 或二进制格式数据。也可以从别的 Spine 项目中导入骨架和动画。

importing

图片打包 Texture Packer

Spine 能将图片打包成纹理贴图集,这能提高你在游戏中的渲染效率。Spine 的纹 理贴图打包工具拥有很多功能比如剥离空白区域,旋转,自动缩放等等…(目的主要 是为了充分利用空间)

Texture Packer

运行库 Runtimes

制作出惊艳的动画只是工作的一部分 —— 您还需要在游戏中显示它们。Spine运行库可以让您的游戏引擎播放这些动画,效果就如同在动画编辑器里显示的那样。

Spine运行库提供了一组API,可以直接访问骨骼(bones),附件(attachments),皮肤(skins)和其它动画数据。在程序中可以控制骨骼,混合动画、淡入淡出等等。

官方的运行库放在GitHub上,并授权允许Spine用户在其程序中使用Spine运行库。这里提供了所有源码,它将是你游戏中必不可少的一部分。

支持的游戏引擎 (English)

开发 Development

Spine尚在积极开发中。我们经常一周发部多个新版本。您可以密切关注更新日志了解详情。如果想更详进的了解我们的开发计划和进度,请关注“Spine动画编辑器”“Spine运行库”
Trello board(一种管理进度的团队协作工具)。在上面你可以对开发任务进行投票和评论,还可以订阅它,这样当开发完成时,您就会收到电子邮件通知。

我们在持续开发新功能同时,也在不断的完善和优化软件的各个方面。通常这些意见都来自用户的反馈。我们渴望了哪里工作的正常,哪里出了问题。所以请来Spine论坛分享您的心得吧。

Spine 不限于角色动画,但角色动画是最常见也是最好的例子。在 Spine 中角色使用 的不是一张完整的图片,而是将各个部分切片成一系列的小图。比如:头、躯干、胳膊和腿。 这些小图片被附加到骨骼上,然后用骨骼自由的设置角色动作。这些切片会随着骨骼运动而 产生流畅的动画。

装配模式 Setup Mode

使用 Spine 从装配模式开始,在此模式中创建骨骼,附加切片。在编辑区的左上角显 示着 Setup(装配)或 Animate(动画)来指示当前的模式,可以通过点击进行切换。

Setup Mode

切片 Images

层级树中的 Images 节点定义了 Spine 从哪里为你找到这副骨架要用的图片。图片的路 径 path 默认使用当前项目的相对路径。也支持绝对路径。设置完成后,路径下的图片会被加 载到图片 Images 节点中。

Images

Spine 实时监控图片所在路径,如果图片发生改变,立刻更新到项目中。

参考图片 Template Image

通过将一张完整的角色图片作为参考,能更简单准确的创建骨骼和放置图片。操作如 下:把 template 图片从 Images 节点拖到编辑区域,它会被附加到 root 骨骼点上。在层 级树底部的属性面板勾选背景 Background ,被设置成背景后它将不可选,也不会被输出。

Template

可以改变参考图片的颜色,这样更容易辨认。

角色切片 Character Images

在 Images 节点下,点选切片,然后 shift + 左键或 ctrl+左键把其它切片全部选中。 把它们拖放到编辑区,Spine 会为它们创建切片插槽 slots 并全部放在 root 骨骼点下。

Placement

对照参考图片把所有肢体切片对位。

Transforms

切片不是直接附加到骨骼上的,而是附加到一个切片插槽中,插槽再附加到骨骼上。一 个切片插槽中可以放置多个切片,但一次只能显示一个。切片插槽对复杂骨骼的绘制顺序提 供更多控制权限。

Slots

在层级树的 Draw Order 节点中拖拽改变绘制顺序。在列表上方的切片插槽会显示在 前面,而下方的插槽会显示在后面。你还可以用+或-号键来调整顺序,按住 Shift 可以一次 移动5个单位。

Draw Order beforeDraw Order after

当参考图用完后,可以点击层级树的中的显示点隐藏它。

Visibility

Photoshop

如果在使用 Photoshop,那架设骨骼时可以使用 Spine 提供的“LayersToPNG.jsx” PS 脚本。在 Spine 安装目录下的 scripts/photoshop/LayersToPNG.jsx 能找到。此脚本能 导出图层为 PNG 文件和 Spine 的 JSON 文件。点击 Spine 左上角的 Spine 标志,然后 Import Data, Skeleton。导入的骨架包含一个骨骼点和所有的图片,这些图片位置和显示绘制顺序 都和 PS 中的图层一至。留给你的工作就只有创建骨骼了。这在后面会介绍。

另一个提高工作效率的方案是使用 Adobe Generator . 它能让 PNG 文件与 PSD 同步, 妈妈再也不用担心我手动导图几万张图而发飙了。而 Spine 也是实时同步文件夹中的 PNG 的,这也就相当于 Spine 中的切片素材可以和
PSD 保持同步了。

创建骨骼 Creating Bones

使用创建 Create 工具,创建新骨骼时,首先要选中一个骨骼作为它的父级,然后再拖 拽创建出新骨骼。

当创建新骨骼时,按 shift(不用按住不放)选择光标下的图片。当拖出新骨骼后,被 选中的图片将会变成新骨骼的子物体。

Create Bone

使用这个功能来创建骨骼能更高效,因为你同时创建了新骨骼,并改变了图片的父级。

最后你可能要想改变某个骨头,插槽,图片或其它东西的父级。方法如下:选中要改变 父级的对象,按 P 键或 Set Parent 按钮,然后在层级树中选择新的父级。如果目前是骨骼 的话,比起在层级树中选,在编辑区域选可能更方便。

Set Parent

要改变骨骼的长度,选中任意一个变换工具 Rotate, Translate 或 Scale。然后拖动骨 骼的末端。另外骨骼长度也可以在层级树下方的属性面板中调整。如果骨骼长度为0,在编 辑区它将显示为一个特殊的图标。而在别的地方和其它骨骼没什么不同。

Change Length

骨骼可以在层级树底部的属性面板中设置颜色。这将便于区分各个不同的骨骼。

Bone Color

在 Compensation 面板中 Image 和 Bone 按钮用于调整骨骼但保持它的子物体,如附 加在它下面的骨骼和图片不受影响。

Compensate

别一个调整已经创建好的骨骼的方法,用 Create 工具选要调整的骨骼,按住 Alt 键, 然后点击拖拽。这样可以在新的位置重画骨骼,而不影响它的子物体。

动画模式 Animate Mode

点击编辑区左上角的 Setup 切换到动画模式。

Animate Mode

在动画模式下,层级树会显示动画 Animations 节点,其中包含所有可编辑和查看的 动画。

用骨骼摆出姿势,然后设置关键帧创建动画。当动画播放时,骨骼会自动在关键帧之间 添加中间帧以实现平滑的运动。

摄影表 Dopesheet

Dopesheet 按钮可以点击以展开摄影表,它提供更详细的关键帧视图。可以在摄影表 中拖动关键帧调整动画。

Dopesheet

设置关键帧 Setting Keyframes

通常第一个关键帧设置在0帧上。通过点击位移、缩放、旋转(Translate, Scale, and Rotate)工具后的关键帧图标,设置关键帧。绿色表示当前没关键帧,黄色表示值已经发 生变化,但是没有再次添加关键帧,红色表示已经添加关键帧。

No keyKey setKey values changed

热键 K 可以为所有发生改变的值设置关键帧。 热键 L 可以为当前激活工具设置关键帧。 如果 AutoKey 按钮被按下,所有发生改变的值都会自动被设置关键帧。

接着,在时间轴上选到下一个位置,调整骨骼摆出姿势,添加关键帧。点击并拖动时间 线就能看到流畅的骨骼动画了。

Timeline

动画工作流程 Animation Workflow

常见的动画工作流程,先 K 出关键 pose 然后再回头细化润色动作。点击时间轴上方 的 Playback 按钮,在打开的面板中激活“步进 Stepped”按钮来实现关键 pose 预览。

Playback optionsStepped mode

它能够禁用补间帧,从而更容易观察关键 pose。一旦所有大动作都创建完成,关闭 Stepped,添加更多 key 优化过度的效果。

曲线编辑器 Graph

曲线 Graph 按钮可以展开曲线编辑器。在摄影表中选择一个关键帧,这里会显示它与 下一帧之间的补间插值曲线。

Graph

通过点击贝塞尔 Bezier Curve 曲线图标,启动非线性插值,要想 K 出栩栩如生的动画 这是关键所在。

Bezier curve

在曲线编辑器中拖动 Bezier 手柄改变插值。X 轴代表当前帧到下一帧之间的时间,Y 轴代表值。

Bezier handles

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Unity Spine 2D残影效果是一种在游戏开发中常用的特效技术,可以用来实现角色或物体移动时留下残影效果。通过在Spine动画中添加额外的骨骼或Sprite Renderer,并结合透明度和延迟淡出效果,可以实现残影特效的效果。 首先,在Spine中创建一个新的骨骼或Sprite Renderer,作为残影的载体。这个载体需要复制主角或物体的动画,可以通过复制骨骼及其关键帧并调整帧间延迟来实现。确保在复制动画的过程中,将残影骨骼或Sprite Renderer的透明度逐渐降低,以获得残影淡出效果。 接下来,在Unity中创建一个空物体作为残影对象的父物体,并将其位置与主角或物体保持一致。将残影载体作为父物体的子物体,并将残影载体的位置设置为与父物体的位置一致。 然后,通过控制残影骨骼的播放速度,以及调整透明度和延迟淡出效果,可以实现残影效果。可以尝试使用Animator组件或编写脚本来控制残影骨骼的动画播放速度和透明度变化。 最后,在游戏运行时,每一帧都需要更新残影对象的位置与主角或物体的位置保持一致,这样才能实现残影效果随着主角或物体的移动而产生。 总结来说,Unity Spine 2D残影效果的实现步骤主要包括创建残影载体,复制动画、调整透明度和延迟淡出效果,创建父物体并保持位置一致,控制残影载体的动画播放速度和透明度变化,以及更新残影对象的位置。通过这些步骤,可以实现一个逼真的残影效果,增强游戏的视觉效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值