LoginSignup
9
11

More than 5 years have passed since last update.

SpineデータをUnityで扱う

Last updated at Posted at 2015-07-03

最近Spineが更に便利になって
jsonで吐き出されたデータをそのまま突っ込めば
Unityですぐ使えるとの情報を見つけた。

別のSpineエントリーを読んでなんとかなりましたが、若干古かったので自分用メモ。

Spineからの吐き出し

spine01.PNG

まずSpineからデータをExport。
チェックは全部入れる。

フォルダのデータをテキストファイルに

spine02.PNG

一番上の.atlasファイルを.txtにしてUnityで読めるようにする。

spine03.PNG
ほい。

UnityにSpineのランタイムを放り込む

spine04.PNG

https://github.com/EsotericSoftware/spine-runtimes
ここからzipをまるまる落としてきて、中にある

  • spine-unity
  • spine-csharp

フォルダをUnityのProjectへドロップ。

Spineから吐出されたデータをフォルダごとUnityへ

spine05.PNG

プロジェクトにSpineデータを放り込んだところ。


spine08.PNG

そうすると自動でスケルトンデータやらが生成される。

Spine SkeltonAnimationオブジェクトを作る

09.jpg

つくったらヒエラルキーを見る。
spine06.PNG

一番下のSkelton Animation(Script)に
さっきインポート時に生成されたSkeltonデータをアタッチ。

spine07.PNG
Animationのところに自分の作ったアニメーションリストから選択できるので、
初期設定のアニメーションをここで選択。
これで表示されるはずです。

Scriptでアニメーションを制御

ボタン操作でアニメーションを切り替えるのは以下のQiitaエントリを参考に。

Spineでプロ生ちゃんに動いてもらう

私は今回アニメーションを時間経過などで自動で切り替えたかったので、
一回だけ実行するように真偽値を一個増やして2重で判定をとるようにしました。

using UnityEngine;
using System.Collections;

// 今回はSwingという揺れるアニメーションを操作する。
public class swing : MonoBehaviour {


    SkeletonAnimation swing2d = null;
    Spine.AnimationState swing2dstate = null;

    bool isStart = true;
    bool isSwing = true;

    // Use this for initialization
    void Start () {
        swing2d = GetComponent<SkeletonAnimation>();
        swing2dstate = swing2d.state;
    }

    // Update is called once per frame
    void Update () {


            if(isSwing && iStart) {
                swing2dstate.SetAnimation(0, "swingAnimation", false); 
                // SetAnimation(基本は0, "アニメーションの名前", falseならループ)
                isStart = false;
            }
        }

}

update関数でSetAnimationを実行すると、
ワンフレームごとにアニメーションが0秒まで巻き戻されて再スタートされてガクガクしちゃうので、
一回しか実行されないようなに工夫を施す必要がある。

使い始めたばっかだし、日本語資料もすくないので良いやり方あったら教えて下さい。

9
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
11