#自分用:雑メモ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内に追加したクリップが無い場合に押そう!)