Spine で作ったアニメーションを Unity で動かすには、公式のランタイム spine-unity を入れます。
- spine-unity の版は、書き出したエディタの版(4.3 など)と合わせる
- 入れ方は unitypackage か、Package Manager の git URL
- 書き出すファイルは .json か .skel.bytes、.atlas.txt、.png
- Assets に入れると SkeletonData が自動で作られ、シーンにドラッグして SkeletonAnimation を選ぶ
2026年10月23日に公式の配布・導入・Assets・Rendering資料と4.3のpackage.json、C#ソースを再照合しました。
Unity・Spineエディタでの操作再現は含まず、画面の英語名と版ごとの差を分けて説明します。
spine-unityとUnityの対応
| spine-unity | 対応する Unity |
|---|---|
| 4.3 | 2017.1〜6000.4 |
| 4.2 | 2017.1〜6000.3 |
| 4.1 | 2017.1〜2023.1 |
| 4.0 | 2017.1〜2022.1 |
spine-unity の版は、データを書き出した Spine エディタの版の最初の2つの数字と合わせます。
4.3 のエディタで書き出したなら、spine-unity も 4.3 を使います。
以下のコードと操作説明は4.3向けです。
UPM(Unityのパッケージ管理機能)版は、現行4.3のpackage.jsonでUnity 2018.3以上を指定しています。
表の2017.1からという範囲を、Git URLからの導入条件と読み替えないでください。
入れ方
unitypackageで入れる
公式のダウンロードページから unitypackage を入手し、ダブルクリックするか、Unity の Project ウィンドウにドラッグします。
Package Managerで入れる
Package Managerの「+」→「Add package from git URL…」で、次の2つを順に追加します。
現行4.3のサンプルは本体に含まれており、導入後にspine-unity RuntimeのSamplesタブからSpine ExamplesをImportします。
https://github.com/EsotericSoftware/spine-runtimes.git?path=spine-csharp/src#4.3
https://github.com/EsotericSoftware/spine-runtimes.git?path=spine-unity/Assets/Spine#4.3
サンプル:Package Manager → spine-unity Runtime → Samples → Spine Examples → Import導入後は公式サンプルのSpine Examples/Getting Startedを開きます。
まず1 The Spine GameObjectで、描画とアニメーションの2つのコンポーネントを確認します。
次に2 Controlling Animationを再生し、Spineboyがwalk・run・idle・turnの順に動くかを確認してください。
これは公式に記載された期待結果で、この記事での実機確認結果ではありません。
サンプルも動かなければ導入版とConsoleのエラーを、自作データだけ動かなければ書き出しと参照を順に調べます。
Git URL での追加のしかたは、UnityのPackage Managerでパッケージを追加する方法で紹介しています。
URPで使うとき
URP のプロジェクトでは、URP 用のシェーダーのパッケージも入れます。
https://github.com/EsotericSoftware/spine-runtimes.git?path=spine-unity/Modules/com.esotericsoftware.spine.urp-shaders#4.3URPでは使用中のRendererに対応するシェーダーを選びます。
3D Forward用はUniversal Render Pipeline/Spine/Skeleton、2D Renderer用はUniversal Render Pipeline/2D/Spine/Skeletonなどです。
CanvasのSkeletonGraphicにはURP用を割り当てず、Spine/SkeletonGraphic系を使います。
版を上げるとき
最初の2つの数字が変わる更新では、元プロジェクトを残し、導入方法別の公式更新手順を複製で検証します。
Spineから書き出す
| ファイル | 拡張子 |
|---|---|
| スケルトンのデータ | .json か .skel.bytes |
| アトラス | .atlas.txt |
| 画像 | .png |
spine-unity は拡張子 .skel を読めないので、バイナリで書き出すときは .skel.bytes にします。
アトラスは、書き出しの画面の「Pack Settings」で、「Atlas extension」を .atlas.txt にします。
初回はExportでJSONを選び、Texture AtlasのPackをオンにします。
Animation cleanupはオフにして、セットアップポーズと同じキーが省かれない状態で確認してください。
4.3の公式手順では、Premultiply alphaをオフ、Bleedをオンにします。
書き出しの設定は、Spineの書き出し(JSON・バイナリ・アトラス)で紹介しています。
透明の扱い(アルファ)
| 方法 | Spine 側 | マテリアル | 向いている色空間 |
|---|---|---|---|
| ストレートアルファ | Premultiply alpha をオフ・Bleed をオン | Straight Alpha Texture をオン | LinearまたはGamma |
| 乗算済みアルファ(PMA) | Premultiply alpha をオン | Straight Alpha Texture をオフ | Gamma だけ |
Unityに読み込んで表示する
- 書き出したファイル(またはフォルダーごと)を Unity の Assets にドラッグする
- _Atlas・_Material・_SkeletonDataなどのアセットが作られる。マテリアル数はアトラスページやブレンド方式によって増える
- _SkeletonData を Scene ビューか Hierarchy にドラッグし、「SkeletonAnimation」を選ぶ
- インスペクターの「Animation Name」で、最初に再生するアニメーションを選ぶ
4.3ではLoopとTime Scaleはアニメーション側、Initial Skinは描画側のコンポーネントで確認します。
空のHierarchyへドラッグできない場合は、Sceneビューへドロップします。
骨だけ見えて画像が出ない場合は、描画側のInitial Skinをdefault以外の用意されたスキンに切り替えて確認してください。
アニメーション名を選んだ後にPlayを押し、画像の表示と動きの両方を確認します。
Canvas内はSkeletonGraphic+SkeletonAnimation、Mecanim再生はSkeletonRenderer+SkeletonMecanimなどの組み合わせになります。
4.3では描画とアニメーションの両方のコンポーネントを確認してください。
参照と名前を確認して再生する
using Spine.Unity;
using UnityEngine;
// spine-unity 4.3: SkeletonAnimation と同じ GameObject に描画コンポーネントを配置。
public class PlayWalk : MonoBehaviour
{
public SkeletonAnimation skeletonAnimation;
public string firstAnimation = "walk";
public string nextAnimation = "run";
public float nextDelay = 2f;
void Start() { TryPlay(); }
public bool TryPlay()
{
if (skeletonAnimation == null || skeletonAnimation.Renderer == null ||
skeletonAnimation.SkeletonDataAsset == null)
{
Debug.LogError("SkeletonAnimation・描画コンポーネント・Skeleton Data Assetを確認してください。", this);
return false;
}
if (string.IsNullOrEmpty(firstAnimation) || string.IsNullOrEmpty(nextAnimation) ||
float.IsNaN(nextDelay) || float.IsInfinity(nextDelay) || nextDelay <= 0f)
{
Debug.LogError("アニメーション名と、0より大きい有限の待ち時間を指定してください。", this);
return false;
}
skeletonAnimation.Initialize(false);
var skeleton = skeletonAnimation.Skeleton;
var state = skeletonAnimation.AnimationState;
if (skeleton == null || state == null)
{
Debug.LogError("スケルトンを初期化できません。Consoleと書き出しデータを確認してください。", this);
return false;
}
var first = skeleton.Data.FindAnimation(firstAnimation);
var next = skeleton.Data.FindAnimation(nextAnimation);
if (first == null || next == null)
{
Debug.LogError("指定したアニメーションがデータにありません。大文字・小文字も確認してください。", this);
return false;
}
state.SetAnimation(0, first, true);
state.AddAnimation(0, next, true, nextDelay);
return true;
}
}
SetAnimation と AddAnimation の書き方は、公式ドキュメントの例にもとづいています。
4.3での変更
spine-unity 4.3 では、SkeletonAnimation が SkeletonAnimation と SkeletonRenderer の2つのコンポーネントに分かれました。
旧コンポーネントには自動移行の仕組みがありますが、移行設定・導入状態によって結果は異なります。
複製上でシーンとプレハブを開き、参照とスクリプトを確認してください。
更新前にプロジェクトを残す
導入方法はunitypackageかUPMのどちらかにそろえます。
URPシェーダーをGit URLから追加する場合は、spine-csharpとspine-unity本体もUPMで入っていることが条件です。
Assetsへunitypackageで入れた本体と混ぜると、シェーダーの参照先が一致しません。
公式Installationで現在の導入方法と更新手順を確認し、元のプロジェクトを複製した検証用プロジェクトで試します。
シーン・プレハブ・マテリアルと、Packages/manifest.json・packages-lock.jsonをまとめて残します。
旧Assets/Spineフォルダーをその場で削除する一律の手順は使いません。
自作ファイルや参照を確認し、更新方法ごとに公式手順を選びます。
検証でコンパイル・表示・再生がそろわなければ元のプロジェクトへ戻します。
再生コードの入力・結果・切り分け
PlayWalk.csを練習用GameObjectへ追加し、Skeleton Animation欄に同じスケルトンのSkeletonAnimationを指定します。
4.3では描画コンポーネントも必要です。
First AnimationとNext Animationには、書き出しデータに存在する名前を大文字・小文字も一致させて入力します。
walkとrunは例の名前で、全データにある名前ではありません。
Play開始後に最初のアニメーションがトラック0で再生され、Next Delayを過ぎた時点で次のアニメーションに切り替わることを確認します。
正のDelayは前のトラックの再生時間を基準にするため、Time Scaleや一時停止によって実時間との差が生じます。
| 入力・症状 | 期待する確認結果 | 次の操作 |
|---|---|---|
| 未指定・データ不足 | Consoleの参照/初期化エラー | Skeleton Data Assetと描画コンポーネントを確認 |
| 名前がない | 処理を止め、トラックを変更しない | データ内の名前・Export設定を確認 |
| 切替時刻が違う | トラックの時間と実時間を比較 | Time Scale、待ち時間、別スクリプトを確認 |
確認後はPlayを停止し、練習用スクリプトを無効化します。
元シーンのInspector設定は変更せず、更新用の複製を本番の代わりに上書きしません。
練習ファイルと確認済みの範囲
2本のC#例は参照・名前・待ち時間の異常系をローカルのテストダブルで検査し、4.3のAPI宣言を一次資料で照合しました。
実際のSpine/Unityコンパイル・描画・スキン・書き出し・変形は未検証です。
コードは4.3用です。
練習の完了は、それぞれ本文の表示・再生・復元を実環境で確認して判断します。
まとめ
- spine-unity の版はエディタの版に合わせる。4.3 は Unity 2017.1〜6000.4
- unitypackageか、Git URLで本体とspine-csharpを導入する。現行4.3のサンプルは本体のSamplesから追加する
- データは .json か .skel.bytes、アトラスは .atlas.txt、画像は .png を一式で読み込む
- _SkeletonData をシーンにドラッグして SkeletonAnimation を選ぶ
参考:公式配布、Assets、Main Components 4.3、Rendering、4.3本体のパッケージ定義(2026年10月23日確認)。
→ 関連:Spineの代わりになる2Dアニメーションソフト比較|用途と価格
2026年10月26日に公式配布・Installation・Examples・Assets・Main Componentsと4.3のパッケージ定義を再照合しました。
Installationにはサンプルを別パッケージで追加する記述もありますが、この記事では現行4.3の配布ページとパッケージ定義に合わせています。
