文件
輸出
替遊戲引擎匯出骨骼
檔案 ▸ 匯出 ▸ 骨骼(JSON)… 會把一套骨骼綁定和它的動畫寫成遊戲引擎可以播放的資料,而不是把它們算繪成影像。
精靈圖集把每一影格存成一張影像。骨骼匯出存的則是綁定本身:骨骼、掛在它們上面的影像,以及骨骼如何隨時間運動。然後由引擎自己畫出角色,所以動畫體積小,在任何尺寸和影格速率下都播放順暢。
匯出
- 選 檔案 ▸ 匯出 ▸ 骨骼(JSON)…。
- 選一個資料夾。匯出會寫出好幾個檔案,所以它問的是資料夾,而不是檔名。
- 檔案會馬上寫好。沒有要選的設定。
資料夾裡會有 skeleton.json、一張裝著掛在骨骼上的影像的圖集 skeleton.png,以及每個網格一張 PNG,以網格圖層的名稱命名。檔名裝不下的字元會被替換掉;兩個網格同名時,第二個檔案會加上一個編號。名稱是固定的,所以再次匯出同一個專案會取代同樣的檔案。
檔案裡有什麼
它的結構參照 Spine:骨骼、插槽、附件和動畫。它不是 Spine 檔案,任何官方的 Spine 執行階段都讀不了它,但它的結構夠眼熟,替你的引擎寫一個匯入器只需要寫一次。
| 部分 | 內容 |
|---|---|
| 骨骼 | 每個骨骼圖層的每一根骨骼,帶著它相對父層的靜止姿勢。固定骨骼,也就是 IK 目標,不包括在內:它們的效果已經在它們驅動的骨骼裡了 |
| 網格附件 | 每一個網格圖層,帶著它靜止時的頂點、三角形,以及每根骨骼對每個頂點的權重 |
| 區域附件 | 透過連結圖層剛性跟隨一根骨骼的圖層,放在圖集上,帶著相對骨骼的固定位移 |
| 動畫 | 時間軸上每個群組標記一個動畫,以標記命名。沒有群組標記時,只有一個叫 default 的動畫,從入點到出點 |
引擎原本要自己重現的一切,都會被烘成簡單的數字:IK、骨骼動力學、控制骨骼和動作,都會變成一般的旋轉、平移和縮放關鍵影格。某個動作以骨骼權重表達不了的方式改變網格的形狀時,那個動畫會改為逐影格存下網格頂點的位置,所以引擎不需要知道動作是怎麼運作的。
還沒包含的東西
- 靠自己的關鍵影格移動、沒有連結到任何骨骼的圖層。請把它們匯出成精靈圖集或 PNG 序列。
- 在骨骼之上還帶著自己的位置、旋轉或縮放的網格。
- 骨骼圖層裡的自動跟隨。只有你綁定或繪製的權重,以及用連結圖層連起來的圖層會被匯出,所以只靠柔性或區域綁定跟著骨架走的圖層,在匯出結果裡不會動。
- 作為即時限制條件的 IK、變形、路徑和物理限制條件,事件,以及用來換裝的外觀。
只有真正移動的骨骼才會得到平移和縮放關鍵影格;大多數骨骼只會旋轉,所以它們的動畫裡只有旋轉。這讓檔案保持很小。