写在前面
成都创新互联专业为企业提供陈仓网站建设、陈仓做网站、陈仓网站设计、陈仓网站制作等企业网站建设、网页设计与制作、陈仓企业网站模板建站服务,10余年陈仓做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
某天,在一阵头脑发热之后,买了 spine。放了很久,最近,才想起来,应该好好利用下。于是,开始了新的折腾。好吧,再看了官网的价格之后,立马心情大好。好了,不说了,又挖了个新的大坑。
Spine 是一款针对游戏的 2D 骨骼动画编辑工具。 Spine 旨在提供更高效和简洁 的工作流程,以创建游戏所需的动画。
在 Spine 中通过将图片绑定到骨骼上,然后再控制骨骼实现动画。 2D 骨骼动画相对于传统的逐帧动画有以下优势:
最小的体积:传统的动画需要提供每一帧图片。而 Spine 动画只保存骨骼的动 画数据,它所占用的空间非常小,并能为你的游戏提供独一无二的动画。
美术需求:Spine 动画需要的美术资源更少,能为您节省出更多的人力物力更 好的投入到游戏开发中去。
流畅性:Spine 动画使用差值算法计算中间帧,这能让你的动画总是保持流畅 的效果。
装备附件:图片绑定在骨骼上来实现动画。如果你需要可以方便的更换角色的 装备满足不同的需求。甚至改变角色的样貌来达到动画重用的效果。
混合:动画之间可以进行混合。比如一个角色可以开枪射击,同时也可以走、 跑、跳或者游泳。
程序动画:可以通过代码控制骨骼,比如可以实现跟随鼠标的射击,注视敌人, 或者上坡时的身体前倾等效果。
摄影表 Dopesheet
在动画制作过程中摄影表是最核心的地方。这里显示所有关键的细节,通过它可以 创建动画以及对时间节奏进行微调。
曲线编辑器 Graph Editor
在曲线编辑器中可以通过调整贝赛尔曲线来控制两帧之间的差值,以实现栩栩如生 的动画效果。
反向动力学工具 IK Posing
Pose 工具可以利用反向动力学便捷的调整姿势。
皮肤 Skins
皮肤可以为做好的动画切换图片素材。通过改变附加在骨骼上的图片来实现动画的 重用。
边界框 Bounding Boxes
边界框是一个附加到骨骼上,随着骨骼移动的对象。它可以用于碰撞检测和物理集 成。
网格 Meshes
网格允许你在矩形边界内定义多边形。这将提高最终纹理贴图集的空间使用率,因 为在多边形外的像素将被忽略掉,这种优化对移动设备来特别重要。网格的另外一 个功能就是支持自由变形 FFD 和蒙皮 Skinning。
自由变形 Free-Form Deformation
自由变形 FFD 允许你通过移动网格点来变形图片。FFD 能实现网格的:拉伸、挤 压、弯曲、反弹,等一些矩形图片无法实现的功能。
蒙皮 Skinning
蒙皮允许将网格中指定的点附加给指定骨骼。然后点将随着骨骼移动,网格则随之 自动发生变形。现在可以用骨骼动作控制角色的图片进行弯曲变形了。
输出格式 Export formats
Spine 能将项目中的动画导出为 JSON 或二进制格式文件,它们能在 Spine 运行时 库中完美的再现。 Spine 同时还可以导出 GIF 动画, PNG 或 JPG 序列图,还有 AVI 或 QuickTime 的视频文件。
导入 Importing
Spine 通过一个路径查找并导入其它工具生成的数据文件,它能够识别符合要求的 JSON 或二进制格式数据。也可以从别的 Spine 项目中导入骨架和动画。
图片打包 Texture Packer
Spine 能将图片打包成纹理贴图集,这能提高你在游戏中的渲染效率。Spine 的纹 理贴图打包工具拥有很多功能比如剥离空白区域,旋转,自动缩放等等…(目的主要 是为了充分利用空间)
制作出惊艳的动画只是工作的一部分 —— 您还需要在游戏中显示它们。Spine运行库可以让您的游戏引擎播放这些动画,效果就如同在动画编辑器里显示的那样。
Spine运行库提供了一组API,可以直接访问骨骼(bones),附件(p_w_uploads),皮肤(skins)和其它动画数据。在程序中可以控制骨骼,混合动画、淡入淡出等等。
官方的运行库放在GitHub上,并授权允许Spine用户在其程序中使用Spine运行库。这里提供了所有源码,它将是你游戏中必不可少的一部分。
官方运行库
Unity, C#
Unity 2D Toolkit, C#
cocos2d-iphone, Objective-C
cocos2d-x, C++
XNA, C#
MonoGame, C#
Starling, ActionScript 3 (demo)
libgdx, Java
Turbulenz, JavaScript (demo)
SFML, C++
Torque2D, C++ / TorqueScript
Corona, Lua
LVE, Lua
官方通用运行库
不涉及描画部分的通用实现.
C / C++ / Objective-C
C#
ActionScript 3 (demo)
Lua
JavaScript (demo)
第三方运行库
社区提供支持
iOS 7 SpriteKit, simonkim
iOS 7 SpriteKit, mredig
GameMaker, official
GameMaker, C
GameMaker (alternate)
spine-cocos2d-html5, JavaScript
XNA/MonoGame with content pipeline
Unity Futile, C#
pixi.js (demo)
Marmalade
Monkey (demo, thread)
Wave Engine, C#
Gideros, Lua
Ruby
Google's Go (generic)
Eng, Go
SmoothStep2D, HTML5
CAAT, JavaScript
GameBuilder Studio
sHTiF, AS3
Pascal (FPC, Delphi, Smart Mobile Studio)
flyover/spine.js, JavaScript (demo)
Ignifuga, Python
Python
Haxe
HaxePunk
Haxe NME
Haxe 3 and NME 4
MonoGame and Gdna
MOAI, Lua
MOAI, Lua (thread)
Spine尚在积极开发中。官方经常一周发部多个新版本。您可以密切关注更新日志了解详情。如果想更详进的了解官方的开发计划和进度,请关注“Spine动画编辑器”和“Spine运行库”的 Trello board(一种管理进度的团队协作工具)。在上面你可以对开发任务进行投票和评论,还可以订阅它,这样当开发完成时,您就会收到电子邮件通知。
spine在持续开发新功能同时,也在不断的完善和优化软件的各个方面。通常这些意见都来自用户的反馈。可以到Spine官方论坛分享您的心得吧。
关于 spine的使用,也可以关注本专题的后续文章.