Spine で作ったアニメーションをゲームで動かすには、データ(JSON かバイナリ)と、画像をまとめたテクスチャアトラスを書き出します。
- データは JSON かバイナリ。バイナリのほうがかなり小さい
- 「Pack」にチェックを入れると、データと一緒にテクスチャアトラスも作られる
- 書き出したエディタの版(4.3 など)と、ゲーム側のランタイムの版は必ずそろえる
- GIF・PNG・動画(AVI・MOV)でも書き出せる
2026年10月3日、現行の公式ガイドとspine-runtimes 4.3のソースを照合しました。
Unity・Spineエディタでの操作再現は含まず、画面の英語名と版ごとの差を分けて説明します。
書き出しとテクスチャパックは Essential にも含まれますが、体験版では使えません。
Spine のエディタでの再現は含まず、画面の名前は英語版の表記です。
エディタとランタイムの版を合わせる
書き出したエディタの版の、最初の2つの数字(4.3 など)は、ランタイムの版と必ず一致させる必要があります。
違っていると、ランタイムはデータを読めません。
3つ目の数字(4.3.26 の 26)の違いは、互換性に影響しません。
エディタの版は、起動したときのランチャーか設定の画面で選べます。
書き出せる形式
| 種類 | 形式 |
|---|---|
| データ | JSON・バイナリ |
| 画像 | GIF・PNG・APNG・PSD・JPEG |
| 動画 | AVI・MOV |
JSONとバイナリ
バイナリは JSON よりファイルがかなり小さく、読み込みも速い形式です。
JSON は文字のファイルなので、中身を読んだり、Spine に読み戻したりできます。
| JSON の設定 | 働き |
|---|---|
| Format | 標準の JSON、JavaScript(名前を引用符で囲まない)、Minimal(引用符を減らす) |
| Pretty print | 人が読みやすいように整える |
| Version | 古い版のデータとして書く(JSON だけ) |
| Nonessential data | 実行には要らない追加の情報も入れる(Spine に読み戻すとき用) |
| Animation clean up | 書き出すデータだけ、不要なキーを整理する(プロジェクトは変えない) |
| Extension | 書き出すファイルの拡張子 |
Version で古い版を選ぶのは、公式ガイドでは、新しい版でうっかり保存してしまったときの最後の手段とされています。
テクスチャアトラスを作る
テクスチャアトラスは、パーツの画像を1枚(または数枚)の大きな画像にまとめたものです。
書き出しの画面で「Pack」にチェックを入れると、データと一緒に作られます。
Texture Packer の主な設定
| 設定 | 働き |
|---|---|
| Attachments / Image folders | スケルトンが使う画像だけを詰めるか、フォルダーごと詰めるか |
| Strip whitespace X/Y | 画像の周りの透明な余白を削る |
| Rotation | 詰めるときに画像を回転させる |
| Max width / height | 1枚の大きさの上限(初期値2048) |
| Power of two | 大きさを2の累乗にする |
| Padding X/Y | 画像の間のすき間(2ピクセル以上を推奨) |
| Bleed | 透明な部分の色を、隣の色で埋める |
| Premultiply alpha | 色に透明度をかけた形(PMA)で書く |
| Packing | Grid・Rectangles・Polygons から選ぶ |
| Filter min / mag | ランタイムで縮小・拡大したときの補間 |
| Atlas extension | アトラスのファイルの拡張子(初期値 .atlas) |
Premultiply alpha をどうするかは、使うゲームエンジンや色空間によって決まります。
Unityで使うときの拡張子
spine-unity は拡張子 .skel を読めないので、バイナリは .skel.bytes、アトラスは .atlas.txt にします。
Unity での読み込みは、Spineのデータをspine-unityで動かす方法で紹介しています。
画像や動画で書き出す
画像や動画の書き出しでは、FPS、書き出す範囲(Range)、背景色などを決めます。
GIF では、最大の色数とディザ(色の少なさを点で補う)も設定できます。
書き出しは、コマンドライン(CLI)からも実行できます。
4.3で増えたこと
- スキンごとにアトラスを書き出す機能
- PNG をより小さくする「brute force」の設定
練習用の書き出しと読み込み確認
元の.spineプロジェクトと画像フォルダーを残し、複製で書き出します。
既存の出力を上書きせず、practice-exportのような別フォルダーを指定します。
データ・アトラス・画像ページを1組として比較します。
| 出力 | Unity用の例 | 確認する内容 |
|---|---|---|
| JSON形式 | practice.json | スケルトン名と版の先頭2数字を確認 |
| バイナリ形式 | practice.skel.bytes | 書き出したエディタ版とランタイム版をそろえる |
| アトラス | practice.atlas.txt | 記載された画像ページ名と実ファイルを照合 |
| 画像ページ | practice.png等 | 複数ページの場合はすべて同じ組に含める |
JSON・JavaScript・Minimalは同じ内容の表記違いですが、読込み側が各形式に対応しているとは限りません。
一般的なJSONパーサーへ渡す場合は標準JSONを選びます。
Unityの複製プロジェクトで_SkeletonDataの生成、プレビューとアニメーション名、実際の画像の表示まで確認します。
ファイルが存在するだけでは成功と判断しません。
書き出しが読めない場合と戻し方
| 症状 | 最初の確認 | 復旧方法 |
|---|---|---|
| 版不一致 | エディタとランタイムの先頭2数字 | 元.spineを対応版で開いて再書き出し |
| 白い・画像が欠ける | atlasのページ名とPNGの組 | 出力を別フォルダーで作り直し一組で取り込む |
| 輪郭が黒い・色が違う | PMA/ストレート、色空間、マテリアル | 一条件ずつそろえて比較 |
| データを戻したい | Nonessential dataと元プロジェクト | 元.spineと元画像から再開 |
古いVersionへの書き出しは完全な変換を保証せず、失われるデータと警告を確認する最終手段です。
バイナリをJSONのように編集したり、拡張子の変更だけで版を変換したりしません。
練習ファイルと確認済みの範囲
2本のC#例は参照・名前・待ち時間の異常系をローカルのテストダブルで検査し、4.3のAPI宣言を一次資料で照合しました。
実際のSpine/Unityコンパイル・描画・スキン・書き出し・変形は未検証です。
コードは4.3用です。
練習の完了は、それぞれ本文の表示・再生・復元を実環境で確認して判断します。
まとめ
- ゲーム用は JSON かバイナリ。バイナリのほうが小さい
- 「Pack」でテクスチャアトラスも一緒に作る。Padding は2ピクセル以上
- エディタとランタイムの版(4.3 など)はそろえる
- Unity 用は .skel.bytes と .atlas.txt
参考:Esoteric Software「Export」「Texture Packer」「Versioning」(2026年9月29日に確認)。
