koyu

こんにちは。いつもフォーラムに助けられています。
SpineデータをUnityにインポートしたら私はたくさんのバグに襲われました。
問題の箇所を調べるために3.8と4.0の環境で検証を重ねましたが、解決できなかったのでアドバイスを下さい。
以下は時系列順に書きます

■環境
・Unity2019.1.14f1
・Spine4.0 & 3.8

■確認した現象(Spineエディタ)
・Spine3.8で制作していたSpineプロジェクトを4.0で開きました。すると下記の警告が表示されました。
・しかし、Slot is not in Skeletonなどのエラー箇所は全てスケルトンデータ内に存在し、削除されていませんでした。
・私にはスケルトンは全て問題なく見えたので、このまま4.0のエクスポートを行い、Unityへインポートしました。

rapture_20210903142545.jpg



■確認した現象 (Unityへインポート:ランタイム4.0)
・Atk3aというアニメをエクスポートしたSpineデータから生成されたSkeletonDataがエラーを表示します。
Error reading skeleton JSON file for SkeletonData asset: Esther_SkeletonData
Error reading animation: Atk3a
Index was outside the bounds of the array.
at Spine.SkeletonJson.ReadSkeletonData (System.IO.TextReader reader) [0x01390] in C:\Users\kou-mobilestudio\Desktop\Test 4.0 Spine_Unity\Test 4.0 Spine_Unity\Assets\Spine\Runtime\spine-csharp\SkeletonJson.cs:368
at Spine.Unity.SkeletonDataAsset.ReadSkeletonData (System.String text, Spine.AttachmentLoader attachmentLoader, System.Single scale) [0x00017] in C:\Users\kou-mobilestudio\Desktop\Test 4.0 Spine_Unity\Test 4.0 Spine_Unity\Assets\Spine\Runtime\spine-unity\Asset Types\SkeletonDataAsset.cs:258
at Spine.Unity.SkeletonDataAsset.GetSkeletonData (System.Boolean quiet) [0x000c4] in C:\Users\kou-mobilestudio\Desktop\Test 4.0 Spine_Unity\Test 4.0 Spine_Unity\Assets\Spine\Runtime\spine-unity\Asset Types\SkeletonDataAsset.cs:173
UnityEngine.Debug:LogError(Object, Object)
Spine.Unity.SkeletonDataAsset:GetSkeletonData(Boolean) (at Assets/Spine/Runtime/spine-unity/Asset Types/SkeletonDataAsset.cs:176)
Spine.Unity.SkeletonRenderer:Initialize(Boolean, Boolean) (at Assets/Spine/Runtime/spine-unity/Components/SkeletonRenderer.cs:377)
Spine.Unity.SkeletonAnimation:Initialize(Boolean, Boolean) (at Assets/Spine/Runtime/spine-unity/Components/SkeletonAnimation.cs:169)
Spine.Unity.Editor.DataReloadHandler:ReloadAllActiveSkeletonsEditMode() (at Assets/Spine/Editor/spine-unity/Editor/Utility/DataReloadHandler.cs:103)
Spine.Unity.Editor.DataReloadHandler:OnPlaymodeStateChanged(PlayModeStateChange) (at Assets/Spine/Editor/spine-unity/Editor/Utility/DataReloadHandler.cs:59)
Spine.Unity.Editor.SpineEditorUtilities:Initialize() (at Assets/Spine/Editor/spine-unity/Editor/Utility/SpineEditorUtilities.cs:211)
UnityEditor.EditorApplication:Internal_CallDelayFunctions()
・SkeletonDataのインスペクターにAttempt Reinportと表示されました。また、必要なマテリアルが生成されていませんでした

rapture_20210902173757.jpg
rapture_20210903182651.jpg



■Atk3aのエクスポートをチェックボックスから外したデータをUnityへインポートしました
・こちらは概ね問題なく動作しているようです。しかし、Spineエディタで作成したAtk3aアニメの何が問題なのか分かりません。


■確認した現象(Unityへインポート:ランタイム3.8)
・今までの3.8バージョンでAtk3aをエクスポートしたもの、しないもの2種類をUnityへインポートしました
1.左目に非表示にしたスライムのパーツが現れ消えません。
2.スキンがいくつか反映されず、メッシュが歪んでいます
3.atk3aを出力したスケルトンデータが4.0と同様に正しく生成されないことがありました(この現象は再現が安定しません)
・これら3つの現象はatk3aの有無に関わらずどちらも発生しました

rapture_20210903185012.jpg
rapture_20210903185807.jpg



■問題切り分けのため、Unityプロジェクトを新規作成し、最小の環境で以下の2パターンをテストしました
・4.0の環境でAtk3aをエクスポート、非エクスポート2種類のSpineDataで検証
・3.8の環境でAtk3aをエクスポート、非エクスポート2種類のSpineDataで検証
・結果:4.0は同様の症状が、3.8は上記の2と3の現象は起こりませんでしたが、1のスライムのパーツ表示は解消されませんでした。


試したことは以上となります。
どうもSpineプロジェクトファイル自体に何か問題があるように思いますが、何が原因なのか私は分かりません。
調査をしていただくことは可能でしょうか?
You do not have the required permissions to view the files attached to this post.
User avatar
koyu
  • Posts: 25

Harald

問題が発生しているとのことで、ご不便をおかけしております。 Spineプロジェクトに問題がある可能性があります。 問題のあるSpineプロジェクトファイルを送っていただけませんか。 フォーラムの投稿に添付するか、contact @ esotericsoftware.comに送信することができます(コンテキストがわかるように、このフォーラムのスレッドURLを簡単に説明してください)。 次に、何が問題になっているのかを確認できます。
-----
Sorry to hear you are having troubles! Most likely there is something wrong with the Spine project. Could you please send us your problematic Spine project files? You can either attach it to a forum posting, or send it to contact@esotericsoftware.com (please briefly mention this forum thread URL so that we know the context). Then we can have a look at what's going wrong.
User avatar
Harald

Harri
  • Posts: 3353

koyu

素早いお返事ありがとうございます!
私はメールでesotericsoftware.comにコンタクトを送りました。
73tunnel からメールが届いていない場合はご連絡ください。

___

Thank you for your quick reply!
I emailed a contact to esotericsoftware.com.
If you have not received an email from 73tunnel, please contact us.
User avatar
koyu
  • Posts: 25

Misaki

お世話になっております。
メールの件ですが正常に届いてないように見受けられます。
お手数ですがもう一度送信されたメールをご確認いただけますと幸いです。
※お問い合わせを受け付けているアドレスは、SpineライセンスURLを送信しているメールアドレスと全く同じです。
User avatar
Misaki

Misaki
  • Posts: 182

koyu

ご連絡ありがとうございます。
メインアドレスと念の為サブアドレスのGmailからメールの再送を致しました。
何卒よろしくお願い致します
User avatar
koyu
  • Posts: 25

Misaki

再送いただきありがとうございます!メールの受信が確認できました!
データを確認して調査させていただきますので、恐れ入りますが回答まで今しばらくお待ちいただけますと幸いです。
何卒よろしくお願いいたします。
User avatar
Misaki

Misaki
  • Posts: 182

Harald

複製資産を送ってくれてありがとう、私たちはすべてを受け取りました。

Spine 4.0からエクスポートされたデータのエラーは、Spineを最新バージョン4.0.26に更新し、スケルトンを再エクスポートすることで修正できます。 以前のバージョンでは、エクスポートにバグがありました。 ご迷惑をおかけして申し訳ございません。

Unity with 3.8で適用されていないスキンについて:
上記の4.0エクスポートのバグ修正により、この問題も解決されますか? そうでない場合は、期待される結果が何であるか、代わりに何が表示されるかを詳しく説明してください。 どのスキンを表示する必要があり、代わりに何が起こりますか?
-----
Thanks for sending the reproduction assets, we received everything.

The error with data exported from Spine 4.0 can be fixed by updating Spine to the latest version 4.0.26 and re-exporting the skeleton. There has been a bug with export in earlier versions. We are very sorry for the troubles!

Regarding the skin not being applied in Unity with 3.8:
Does the 4.0 export bugfix above resolve this problem for you as well? If not, could you please describe in more detail what your expected outcome is and what you see instead, e.g. which skin should be displayed and what happens instead?
User avatar
Harald

Harri
  • Posts: 3353

koyu

ご対応ありがとうございます。
私はSpineを4.026に更新してエクスポートのテストを行いました
残念ながら、4.0と3.8の2つのテスト環境では不具合が解決しませんでした。
Thank you for your support.
I updated Spine to 4.026 and tested the export
Unfortunately, the two test environments, 4.0 and 3.8, did not resolve the issue.


■4.0ランタイム
Atk3aがエクスポートされたファイルは下記の3つのエラーを表示し、必要なマテリアルが生成されませんでした
The file from which Atk3a was exported displayed the following three errors and the required material was not generated.
Error reading skeleton JSON file for SkeletonData asset: Esther_SkeletonData
Error reading animation: Atk3a
Index was outside the bounds of the array.
at Spine.SkeletonJson.ReadSkeletonData (System.IO.TextReader reader) [0x01390] in C:\Users\kou-mobilestudio\Desktop\Test 4.0 Spine_Unity\Test 4.0 Spine_Unity\Assets\Spine\Runtime\spine-csharp\SkeletonJson.cs:368
at Spine.Unity.SkeletonDataAsset.ReadSkeletonData (System.String text, Spine.AttachmentLoader attachmentLoader, System.Single scale) [0x00017] in C:\Users\kou-mobilestudio\Desktop\Test 4.0 Spine_Unity\Test 4.0 Spine_Unity\Assets\Spine\Runtime\spine-unity\Asset Types\SkeletonDataAsset.cs:258
at Spine.Unity.SkeletonDataAsset.GetSkeletonData (System.Boolean quiet) [0x000c4] in C:\Users\kou-mobilestudio\Desktop\Test 4.0 Spine_Unity\Test 4.0 Spine_Unity\Assets\Spine\Runtime\spine-unity\Asset Types\SkeletonDataAsset.cs:173
UnityEngine.Debug:LogError(Object, Object)
Spine.Unity.SkeletonDataAsset:GetSkeletonData(Boolean) (at Assets/Spine/Runtime/spine-unity/Asset Types/SkeletonDataAsset.cs:176)
Spine.Unity.Editor.SkeletonDataAssetInspector:InitializeEditor() (at Assets/Spine/Editor/spine-unity/Editor/Asset Types/SkeletonDataAssetInspector.cs:146)
Spine.Unity.Editor.SkeletonDataAssetInspector:OnEnable() (at Assets/Spine/Editor/spine-unity/Editor/Asset Types/SkeletonDataAssetInspector.cs:83)
UnityEditor.AssetDatabase:CreateAsset(Object, String)
Spine.Unity.Editor.AssetUtility:IngestSpineProject(TextAsset, AtlasAssetBase[]) (at Assets/Spine/Editor/spine-unity/Editor/Utility/AssetUtility.cs:921)
Spine.Unity.Editor.AssetUtility:ImportSpineContent(String[], List`1, Boolean) (at Assets/Spine/Editor/spine-unity/Editor/Utility/AssetUtility.cs:363)
Spine.Unity.Editor.AssetUtility:HandleOnPostprocessAllAssets(String[], List`1) (at Assets/Spine/Editor/spine-unity/Editor/Utility/AssetUtility.cs:113)
Spine.Unity.Editor.SpineEditorUtilities:OnPostprocessAllAssets(String[], String[], String[], String[]) (at Assets/Spine/Editor/spine-unity/Editor/Utility/SpineEditorUtilities.cs:98)
UnityEditor.AssetPostprocessingInternal:PostprocessAllAssets(String[], String[], String[], String[], String[])
UnityEditorInternal.InternalEditorUtility:ProjectWindowDrag(HierarchyProperty, Boolean)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)
ArgumentNullException: Value cannot be null.
Parameter name: skeletonData
Spine.Unity.BlendModeMaterials.UpdateBlendmodeMaterialsRequiredState (Spine.SkeletonData skeletonData) (at Assets/Spine/Runtime/spine-unity/Asset Types/BlendModeMaterials.cs:73)
Spine.Unity.Editor.BlendModeMaterialsUtility.UpdateBlendmodeMaterialsRequiredState (Spine.Unity.SkeletonDataAsset skeletonDataAsset, Spine.SkeletonData skeletonData) (at Assets/Spine/Editor/spine-unity/Editor/Utility/BlendModeMaterialsUtility.cs:129)
Spine.Unity.Editor.BlendModeMaterialsUtility.UpdateBlendModeMaterials (Spine.Unity.SkeletonDataAsset skeletonDataAsset, Spine.SkeletonData& skeletonData, System.Boolean upgradeFromModifierAssets) (at Assets/Spine/Editor/spine-unity/Editor/Utility/BlendModeMaterialsUtility.cs:88)
Spine.Unity.Editor.AssetUtility.IngestSpineProject (UnityEngine.TextAsset spineJson, Spine.Unity.AtlasAssetBase[] atlasAssets) (at Assets/Spine/Editor/spine-unity/Editor/Utility/AssetUtility.cs:927)
Spine.Unity.Editor.AssetUtility.ImportSpineContent (System.String[] imported, System.Collections.Generic.List`1[T] texturesWithoutMetaFile, System.Boolean reimport) (at Assets/Spine/Editor/spine-unity/Editor/Utility/AssetUtility.cs:363)
Spine.Unity.Editor.AssetUtility.HandleOnPostprocessAllAssets (System.String[] imported, System.Collections.Generic.List`1[T] texturesWithoutMetaFile) (at Assets/Spine/Editor/spine-unity/Editor/Utility/AssetUtility.cs:113)
Spine.Unity.Editor.SpineEditorUtilities.OnPostprocessAllAssets (System.String[] imported, System.String[] deleted, System.String[] moved, System.String[] movedFromAssetPaths) (at Assets/Spine/Editor/spine-unity/Editor/Utility/SpineEditorUtilities.cs:98)
System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at <7d97106330684add86d080ecf65bfe69>:0)
Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at <7d97106330684add86d080ecf65bfe69>:0)
System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) (at <7d97106330684add86d080ecf65bfe69>:0)
UnityEditor.AssetPostprocessingInternal.InvokeMethod (System.Reflection.MethodInfo method, System.Object[] args) (at C:/buildslave/unity/build/Editor/Mono/AssetPostprocessor.cs:652)
UnityEditor.AssetPostprocessingInternal.PostprocessAllAssets (System.String[] importedAssets, System.String[] addedAssets, System.String[] deletedAssets, System.String[] movedAssets, System.String[] movedFromPathAssets) (at C:/buildslave/unity/build/Editor/Mono/AssetPostprocessor.cs:144)
UnityEditorInternal.InternalEditorUtility:ProjectWindowDrag(HierarchyProperty, Boolean)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)
Error reading skeleton JSON file for SkeletonData asset: Esther_SkeletonData
Error reading animation: Atk3a
Index was outside the bounds of the array.
at Spine.SkeletonJson.ReadSkeletonData (System.IO.TextReader reader) [0x01390] in C:\Users\kou-mobilestudio\Desktop\Test 4.0 Spine_Unity\Test 4.0 Spine_Unity\Assets\Spine\Runtime\spine-csharp\SkeletonJson.cs:368
at Spine.Unity.SkeletonDataAsset.ReadSkeletonData (System.String text, Spine.AttachmentLoader attachmentLoader, System.Single scale) [0x00017] in C:\Users\kou-mobilestudio\Desktop\Test 4.0 Spine_Unity\Test 4.0 Spine_Unity\Assets\Spine\Runtime\spine-unity\Asset Types\SkeletonDataAsset.cs:258
at Spine.Unity.SkeletonDataAsset.GetSkeletonData (System.Boolean quiet) [0x000c4] in C:\Users\kou-mobilestudio\Desktop\Test 4.0 Spine_Unity\Test 4.0 Spine_Unity\Assets\Spine\Runtime\spine-unity\Asset Types\SkeletonDataAsset.cs:173
UnityEngine.Debug:LogError(Object, Object)
Spine.Unity.SkeletonDataAsset:GetSkeletonData(Boolean) (at Assets/Spine/Runtime/spine-unity/Asset Types/SkeletonDataAsset.cs:176)
Spine.Unity.Editor.SkeletonDataAssetInspector:InitializeEditor() (at Assets/Spine/Editor/spine-unity/Editor/Asset Types/SkeletonDataAssetInspector.cs:146)
Spine.Unity.Editor.SkeletonDataAssetInspector:OnEnable() (at Assets/Spine/Editor/spine-unity/Editor/Asset Types/SkeletonDataAssetInspector.cs:83)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)
rapture_20210907110453.jpg



■3.8ランタイム
下記の1つのエラー文が表示され、SkeletondataAssetが生成されませんでした。これはAtk3aがエクスポートされていなくても同様でした
The following one error statement was displayed and the Skeleton data Asset was not generated. This was true even if Atk3a was not exported
Failed to read version info at skeleton 'Esther'. It is likely not a valid Spine SkeletonData file.
System.FormatException: Input string was not in a correct format.
at System.Number.StringToNumber (System.String str, System.Globalization.NumberStyles options, System.Number+NumberBuffer& number, System.Globalization.NumberFormatInfo info, System.Boolean parseDecimal) [0x00057] in <7d97106330684add86d080ecf65bfe69>:0
at System.Number.ParseInt32 (System.String s, System.Globalization.NumberStyles style, System.Globalization.NumberFormatInfo info) [0x00013] in <7d97106330684add86d080ecf65bfe69>:0
at System.Int32.Parse (System.String s, System.IFormatProvider provider) [0x00008] in <7d97106330684add86d080ecf65bfe69>:0
at Spine.Unity.SkeletonDataCompatibility.GetVersionInfo (UnityEngine.TextAsset asset, System.Boolean& isSpineSkeletonData, System.String& problemDescription) [0x00214] in C:\Users\kou-mobilestudio\Desktop\Test 3.8 Spine_Unity\Test 3.8 Spine_Unity\Assets\Spine\Runtime\spine-unity\Asset Types\SkeletonDataCompatibility.cs:157
UnityEngine.Debug:LogError(Object, Object)
Spine.Unity.Editor.AssetUtility:ImportSpineContent(String[], List`1, Boolean) (at Assets/Spine/Editor/spine-unity/Editor/Utility/AssetUtility.cs:296)
Spine.Unity.Editor.AssetUtility:HandleOnPostprocessAllAssets(String[], List`1) (at Assets/Spine/Editor/spine-unity/Editor/Utility/AssetUtility.cs:110)
Spine.Unity.Editor.SpineEditorUtilities:OnPostprocessAllAssets(String[], String[], String[], String[]) (at Assets/Spine/Editor/spine-unity/Editor/Utility/SpineEditorUtilities.cs:94)
UnityEditor.AssetPostprocessingInternal:PostprocessAllAssets(String[], String[], String[], String[], String[])
UnityEditorInternal.InternalEditorUtility:ProjectWindowDrag(HierarchyProperty, Boolean)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)
rapture_20210907104529.jpg



Google Driveにアップロードしたこれら2つのテスト環境を再アップロードしました。
何卒よろしくお願い致します
I re-uploaded these two test environments that I uploaded to Google Drive.
Thank you for your cooperation.
You do not have the required permissions to view the files attached to this post.
User avatar
koyu
  • Posts: 25

Harald

プロジェクトを更新していただきありがとうございます。 問題が解決しないとのことで、ご不便をおかけしております。 最新のspine-unity4.0および3.8ランタイムを使用していることを確認しますか?

前回Spine4.0.26で提供した3.8Spineプロジェクトを開き、最新のspine-unityランタイムを使用して、エラーなしでエクスポートし、Unityにインポートしました。 更新されたプロジェクトはまだチェックできませんでした。
-----
Thanks for updating the projects. Sorry to hear that your problem still persists. Are you sure that you are using the latest spine-unity 4.0 and 3.8 runtimes?

We opened the 3.8 Spine project that you provided last time in Spine 4.0.26, exported it and imported it in Unity without any errors using the latest spine-unity runtime. We did not get to check out the updated projects yet.
User avatar
Harald

Harri
  • Posts: 3353

koyu

はい。何度か確認してみましたが、私はSpine4.026でエクスポートをし、最新のSpine_Unity4.0ランタイム(updated 2021-09-01)を使用してUnityへとインポートしているようです。
このエクスポートしたファイルを"Export 4.062"というGoogle Driveフォルダへアップロードしました。
また、SpineのエクスポートとUnityへのインポートまでを動画で撮影してみました。
なにか足りない手順はありますか?どんな助けでも嬉しいです。
___

Yes. I've checked it a few times and it seems that I'm exporting with Spine4.026 and importing into Unity using the latest Spine_Unity4.0 runtime (updated 2021-09-01).
I uploaded this exported file to a Google Drive folder called "Export 4.062".
Also, I took a video of exporting Spine and importing it into Unity.
Are there any missing steps? I am glad with any help.

User avatar
koyu
  • Posts: 25

Misaki

こちら改めてSpineプロジェクトを確認させていただいたところ、いくつかのアタッチメント及びコンストレイントにスキンの警告が表示されていることがわかりました。(4.0と3.8両方で確認できました)

スキンの警告とは、ツリー上に表示される、添付のように黄色い四角に「!」が書かれているアイコンのことです。スキンの警告はとても重要なもので、ランタイム用にエクスポートする前に必ず解決していただく必要があります。
警告が出ている場合に起こる不具合・解決方法などの基本情報は、ユーザーガイドの以下のページをご覧いただけますと幸いです。
スキン - Spineユーザーガイド: 警告

ただしこちらのプロジェクトに関しては起こっている事象がやや複雑で、一部は解消できると思いますが一部はバグにより警告が出ていると思われる部分があります。

具体的には、現在警告が出ているアタッチメントに「leg_armor_knee」がありますが、こちらはスキンボーンになっている「knee_armor_front」に対してバインドされているので、警告が表示されるのは正しく、スキンプレースホルダーに格納する必要があります。

しかし同階層にある「knee_front1」に関してはどのボーンにもバインドされていないため、警告は出ないのが正しいはずです。こちらは原因を調査いたします。ただ、単に表示のバグだけで実際のデータには影響していない可能性もありますので、ひとまずその他の警告が出ているアタッチメント・コンストレイントの問題を解消してから再度確認させていただけますと幸いです。
お手数ですがよろしくお願いいたします。
You do not have the required permissions to view the files attached to this post.
User avatar
Misaki

Misaki
  • Posts: 182

koyu

プロジェクトファイルのご確認、ならびにご指摘ありがとうございます!
スキンの警告概念をまだ知りませんでした。!マークはそういう意味だったんですね
まずはそちらの修正と再インポートを試して見ようと思います。
User avatar
koyu
  • Posts: 25

Misaki

ご確認ありがとうございます!もし警告の解消後もエラーが表示されるようでしたらお手数ですが再度状況をご共有いただけますと幸いです。よろしくお願いいたします。
User avatar
Misaki

Misaki
  • Posts: 182

koyu

お世話になっております。
表示されていたスキンの警告を解消し、Unityへのインポートをテストしました。その結果、
開発中のUnityゲーム環境下(3.8ランタイム)にて、スキンがいくつか反映されない不具合が解消されました。

rapture_20210909201750.jpg


Koshinunoスキンボーンの警告を修正したことにより、以前は表示されなかった腰布が正常に表示されるようになりました。
ご指摘ありがとうございます。

ただ、残念ながら「leg_armor_knee」などの膝甲パーツの、スキンの警告修正では、膝甲の消失と脚甲の歪みは解消されませんでした。

また、それ以外の
 ・スライムパーツが表示されてしまう
 ・インポート時にマテリアルが生成されずエラーが表示される(4.0ランタイムテスト環境)
等の症状の解消には至りませんでした。
4.0ランタイムテスト環境では先日更新されたVer4.028を試してみましたが引き続きエラーを確認をしました。


Google Driveにテスト環境のTest 4.0 Spine_Unity.zipと、Spineプロジェクトをアップロードしました。
ご査収くださいませ。
You do not have the required permissions to view the files attached to this post.
User avatar
koyu
  • Posts: 25

Harald

4.0でUnityにインポートした時にエラーが発生するプロジェクトを確認しました。 これは、Spineエディターからのエクスポート時に アニメーションクリーンアップが有効になっている場合にのみ発生するようです。お手数ですがアニメーションクリーンアップを無効にして、Spine4.0.30からスケルトンアセットを再エクスポートしてみてください。

また、アニメーションクリーンアップを無効にすると、報告されている他のスキンの問題が修正されるかどうかもお試しいただけますと幸いです。

このバグについて、こちらに課題チケットを作成しました:
https://github.com/EsotericSoftware/spine-runtimes/issues/1951
ご迷惑をおかけして申し訳ございません!
-----
We just had a look at the project regarding the 4.0 error upon import in Unity. This seems to occur only when Animation cleanup is enabled upon export in the Spine Editor. Please have a try re-exporting the skeleton assets from Spine 4.0.30 with Animation cleanup disabled.

Please also have a try if disabling Animation cleanup fixes the other reported issue with skins.

We have created an issue ticket here for this bug:
https://github.com/EsotericSoftware/spine-runtimes/issues/1951
We are sorry for the troubles!
User avatar
Harald

Harri
  • Posts: 3353

koyu

お返事ありがとうございます!
アニメーションクリーンアップ機能を使わずにエクスポートをしたところ、下記の環境別に異なった結果が出ました。

■Spine:ver4.030、Runtime:4.0 (2021-09-01)
インポート時のエラーが解決しました。必要なマテリアルも生成されており、エラー表示されていたatk3aも問題なく動作しているようです。
4.0ランタイム環境で非クリーンアップの4.0出力はOKっぽい.jpg

4.0ランタイム&非クリーンアップではatk3aが正常に表示された.gif


■Spine:ver4.030、Runtime:3.8 (2021-07-12)
最新環境から3.8ランタイム形式で出力したものはインポートエラーが発生し、マテリアルが生成されませんでした。
エラー文章は下記のとおりです。
Failed to read version info at skeleton 'Esther'. It is likely not a valid Spine SkeletonData file.
System.FormatException: Input string was not in a correct format.
at System.Number.StringToNumber (System.String str, System.Globalization.NumberStyles options, System.Number+NumberBuffer& number, System.Globalization.NumberFormatInfo info, System.Boolean parseDecimal) [0x00057] in <7d97106330684add86d080ecf65bfe69>:0
at System.Number.ParseInt32 (System.String s, System.Globalization.NumberStyles style, System.Globalization.NumberFormatInfo info) [0x00013] in <7d97106330684add86d080ecf65bfe69>:0
at System.Int32.Parse (System.String s, System.IFormatProvider provider) [0x00008] in <7d97106330684add86d080ecf65bfe69>:0
at Spine.Unity.SkeletonDataCompatibility.GetVersionInfo (UnityEngine.TextAsset asset, System.Boolean& isSpineSkeletonData, System.String& problemDescription) [0x00214] in C:\Users\kou-mobilestudio\Desktop\Test 3.8 Spine_Unity\Test 3.8 Spine_Unity\Assets\Spine\Runtime\spine-unity\Asset Types\SkeletonDataCompatibility.cs:157
UnityEngine.Debug:LogError(Object, Object)
Spine.Unity.Editor.AssetUtility:ImportSpineContent(String[], List`1, Boolean) (at Assets/Spine/Editor/spine-unity/Editor/Utility/AssetUtility.cs:296)
Spine.Unity.Editor.AssetUtility:HandleOnPostprocessAllAssets(String[], List`1) (at Assets/Spine/Editor/spine-unity/Editor/Utility/AssetUtility.cs:110)
Spine.Unity.Editor.SpineEditorUtilities:OnPostprocessAllAssets(String[], String[], String[], String[]) (at Assets/Spine/Editor/spine-unity/Editor/Utility/SpineEditorUtilities.cs:94)
UnityEditor.AssetPostprocessingInternal:PostprocessAllAssets(String[], String[], String[], String[], String[])
UnityEditorInternal.InternalEditorUtility:ProjectWindowDrag(HierarchyProperty, Boolean)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)
4.030→3.8の非クリーンアップ出力だとエラーが出る.jpg
4.030→3.8の非クリーンアップ出力だとエラーが出る2.jpg

4.030→3.8出力時の設定.jpg

 ※出力時の設定

■Spine:ver3.899、Runtime:3.8
インポート時にエラーは起きませんでした。しかし、スライムパーツの表示問題は残ったままでした
3.899→3.8非クリーンアップ出力時はエラー無くマテリアルが揃う。しかしスライム目は改善されず.jpg
3.899→3.8出力時はスライム目は解決されず.jpg


■本開発環境において一部のメッシュが歪む・表示されない不具合について、
こちらは3.8ランライムを最新にすることで解決ができました。テスト環境では最新のランタイムを使用していましたが、本開発環境ではまだ最新のランタイムでなかったことが原因のようでした。お手間おかけしてすみません!

このメッシュバグは3.8ランタイムが最新でなかったことが原因だった.jpg


検証で分かったことは以上になります。
諸々のご対応、感謝致します! 引き続き何卒宜しくお願いします
You do not have the required permissions to view the files attached to this post.
User avatar
koyu
  • Posts: 25

Misaki

ご報告ありがとうございます!4.0、3.8ともに正常にインポートできたとのことでよかったです。

また、お試しいただいた
最新環境から3.8ランタイム形式で出力
ですが、エクスポート設定ダイアログの「バージョン」の選択ボックスはそういった用途で用意されているものではなく、4.0からは必ずランタイムバージョン4.0用のデータしかエクスポートすることができません。
そちらの選択ボックスは、「4.0で一度保存してしまったSpineプロジェクトを過去のバージョンに戻したい」場合に使用するものになっています。
ちなみに、そちらの選択ボックスを使用して3.8 / 3.7 / 3.6を指定したとしても、旧バージョンへのエクスポートでは全てのデータを完全に移行することはできず、部分的な移行が出来るのみとなっています。
ユーザーガイドの「バージョン設定」(http://ja.esotericsoftware.com/spine-versioning#%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E3%81%AE%E5%90%8C%E6%9C%9F)セクションにて説明されているように、JSONまたはバイナリデータのエクスポートに使用するSpineエディターのメジャーバージョンとマイナーバージョンは、常にSpineランタイムのバージョンと一致している必要があり、例外は無いものとご認識いただければ幸いです。

最後に、プロジェクトデータのご送付や画像付きでのご報告など状況をご共有いただきありがとうございました!
アニメーションクリーンアップの問題についてはご迷惑をおかけして恐れ入りますが、修正まで今しばらくお待ちください。
どうぞよろしくお願いいたします。
User avatar
Misaki

Misaki
  • Posts: 182

koyu

ご解説助かります。
エクスポートのバージョン選択はそのような使い方だったのですね。諸々把握しました。
この度はたくさんのお力添え本当にありがとうございます!
User avatar
koyu
  • Posts: 25

Nate

Thanks for sending the project! We've created an issue for the problem:
プロジェクトをお送りいただきありがとうございました。この問題について、以下に課題を作成しました :
https://github.com/EsotericSoftware/spine-runtimes/issues/1951
It has already been fixed (in spine-csharp).
既に修正は完了しております(spine-csharpにて)。
User avatar
Nate

Nate
  • Posts: 11350

Harald

それに応じてspine-unityを更新する新しいコミットがgitにプッシュされました。 バグ修正を含む新しいspine-unityパッケージをダウンロードできます。
Spine Unity Download: spine unity 4.0
-----
A new commit that updates spine-unity accordingly has been pushed to git. A new spine-unity package which contains your bugfix is available for download:
Spine Unity Download: spine unity 4.0
User avatar
Harald

Harri
  • Posts: 3353

koyu

アニメーションクリーンアップを使用したファイルが正常にインポートされました。
たくさんのご対応をくださって本当にありがとうございます!

The file with animation cleanup was successfully imported.
Thank you so much for all your support!
User avatar
koyu
  • Posts: 25

Harald

良かったです!お返事ありがとうございます。 この度はご不便をおかけしてしまい申し訳ございませんでした。
Glad to hear, thanks for getting back to us. Thank you for your patience and sorry for the troubles.
User avatar
Harald

Harri
  • Posts: 3353


Return to 日本のSpine ユーザー