自分用:雑メモSpineToUnity
■Unity側のセットアップ
-
https://github.com/EsotericSoftware/spine-runtimes/
からspine-runtimes-3.6をダウンロード
http://ja.esotericsoftware.com/spine-unity-download/
公式からも直接ダウンロードできるっぽい。 -
解凍してspine-csharpとspine-unityのフォルダーをUnityプロジェクトのAsset下にドラッグコピー
※アセットインポートじゃないので注意。
現在はアセットインポートになってるみたいです。
なのでメニュー -> Assets -> Import Package -> Custom Packageからインポートします。
■Spine側の出力設定
- [メニュー]>[エクスポート]
- エクスポートダイアログでJSONを選択
- 出力フォルダを指定した後、アトラス作成にチェックを入れて設定ダイアログを開く
- PackSettingsの画面右下[オプション項目]の[アトラス拡張子]の語尾に[.txt]を追加する。
([XX.atlas]→[XX.atlas.txt]) - OKを押してエクスポートダイアログに戻り、エクスポートボタンを押す。
■SpineデータをUnityにインポート
- Spineからエクスポートしたデータ(.json/.png/.atlas.txt)をAsset下にドラッグコピー
- AtlasSet/Material/SkeletonDataが自動生成される。
- SkeletonDataをsceneにドラッグ
- SkeletonAnimation/SkeletonGraphic(UI)/SkeletonAnimatorのどれかを選ぶ。
- HierarchyでSkeletonDataを選択してInspector内で調整する。
- SkeletonAnimation
- Animationコンポーネントがセットされる。とりあえず動かしたい場合に選択。
- SkeletonGraphic(UI)
- UIのアニメーションデータ用。Canvas下に配置しないと描画されない。
- SkeletonAnimaator
- Animatorコンポーネントがセットされる。Mecanimを使用する場合に選択。
■UnityでSpineSkeletonを動かす。
- HierarchyでSpineデータを選択。(又はProjectでPrefabを選択)
元データではなく、エイリアスデータを選択する事。 - Inspectorの[SkeletonAnimation(Script)]>[Advanced]を展開
- [AddSkeletonUnity]というボタンを押す。
- [SkeletonUnity(Script)]というコンポーネントが追加される。
- [SpawnHiererchy]を押してFollow又はOverrideを選ぶ
- HierarchyにSkeletonが表示される。
- followは表示させるだけで動かせない。
- OverrineはUnity上で骨を動かせる。
- RootOnlyを選ぶとRootのみ表示される。
- 表示させた骨のInspectorでFollowとOverrideの切り替えが可能。
又、内包している子供のボーンも指定して表示可能。
■UnityでSpine内のSlotにアクセスする。
- Spineから出力した元データのInspectorの[Preview]>[Slot]>[ShowSlot]で確認できる。
- Slotの内部データにアクセスはできるが切り替えもアニメーションクリップに組み込まれてしまうのでアニメーター側からは制御できない。エンジニアに拡張してもらう必要があるかと思われる。
■Spine出力Name
Spineのエクスポートで出力されるファイル名はSpineツリー最上部のスケルトン名になる。
※セーブ時のプロジェクトファイル名じゃないので注意。
※SkeletonSetが複数の場合、セットごとに.json/.png/.atlas.txtがそれぞれ生成される。
(→1つのスケルトンセットで1データというくくり)
■Spine再出力時のUnity側の更新
クリップの追加や削除などをしてAnimatorを使用していた場合、Spineから出力した元データのInspectorの[SkeletonAnimator]>[FarceUpdateAnmationClips]でController内のクリップを更新できる。
(Controller内に追加したクリップが無い場合に押そう!)