Amazonで商品を見るセール会場へ

SpineをUnityで動かす方法|導入と再生

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.32017.1〜6000.4
4.22017.1〜6000.3
4.12017.1〜2023.1
4.02017.1〜2022.1
Esoteric Software「spine-unity Download」「Installation」の掲載範囲(2026年10月23日確認)。この表を超えるUnity版の動作確認はしていません

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.3

URPでは使用中の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
Esoteric Software「spine-unity Assets」をもとに作成

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 だけ
Esoteric Software「spine-unity Assets」をもとに作成

Unityに読み込んで表示する

  1. 書き出したファイル(またはフォルダーごと)を Unity の Assets にドラッグする
  2. _Atlas・_Material・_SkeletonDataなどのアセットが作られる。マテリアル数はアトラスページやブレンド方式によって増える
  3. _SkeletonData を Scene ビューか Hierarchy にドラッグし、「SkeletonAnimation」を選ぶ
  4. インスペクターの「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設定は変更せず、更新用の複製を本番の代わりに上書きしません。

練習ファイルと確認済みの範囲

Spine関連の練習入力とC#コードをダウンロード。

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の配布ページとパッケージ定義に合わせています。

次に学ぶ・作業環境を選ぶ

学習を続けたい方や、作業環境を整えたい方は、目的に合うガイドをご覧ください。

3DCGのおすすめ書籍

3DCG用PCの選び方

周辺機器の優先度

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次