寫在前面php
某天,在一陣頭腦發熱以後,買了 spine。放了好久,最近,纔想起來,應該好好利用下。因而,開始了新的折騰。好吧,再看了官網的價格以後,立馬心情大好。好了,不說了,又挖了個新的大坑。html
Spine 是一款針對遊戲的 2D 骨骼動畫編輯工具。 Spine 旨在提供更高效和簡潔 的工做流程,以建立遊戲所需的動畫。html5
在 Spine 中經過將圖片綁定到骨骼上,而後再控制骨骼實現動畫。 2D 骨骼動畫相對於傳統的逐幀動畫有如下優點:python
最小的體積: 傳統的動畫須要提供每一幀圖片。而 Spine 動畫只保存骨骼的動 畫數據,它所佔用的空間很是小,並能爲你的遊戲提供獨一無二的動畫。android
美術需求: Spine 動畫須要的美術資源更少,能爲您節省出更多的人力物力更 好的投入到遊戲開發中去。git
流暢性: Spine 動畫使用差值算法計算中間幀,這能讓你的動畫老是保持流暢 的效果。github
裝備附件: 圖片綁定在骨骼上來實現動畫。若是你須要能夠方便的更換角色的 裝備知足不一樣的需求。甚至改變角色的樣貌來達到動畫重用的效果。算法
混合: 動畫之間能夠進行混合。好比一個角色能夠開槍射擊,同時也能夠走、 跑、跳或者游泳。ruby
程序動畫: 能夠經過代碼控制骨骼,好比能夠實現跟隨鼠標的射擊,注視敵人, 或者上坡時的身體前傾等效果。app
攝影表 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運行庫。這裏提供了全部源碼,它將是你遊戲中必不可少的一部分。
官方運行庫
官方通用運行庫
不涉及描畫部分的通用實現.
第三方運行庫
社區提供支持
Spine尚在積極開發中。官方常常一週發部多個新版本。您能夠密切關注更新日誌瞭解詳情。若是想更詳進的瞭解官方的開發計劃和進度,請關注「Spine動畫編輯器」和「Spine運行庫」的 Trello board(一種管理進度的團隊協做工具)。在上面你能夠對開發任務進行投票和評論,還能夠訂閱它,這樣當開發完成時,您就會收到電子郵件通知。
spine在持續開發新功能同時,也在不斷的完善和優化軟件的各個方面。一般這些意見都來自用戶的反饋。能夠到Spine官方論壇分享您的心得吧。
關於 spine的使用,也能夠關注本專題的後續文章.