SpriteStudio / SS6PlayerForUnity

OPTPiX SpriteStudio 6 Player for Unity http://www.webtech.co.jp/spritestudio/
MIT License
21 stars 8 forks source link

v1.1.19 SSPJデータをUnity2018.3にてインポートするとSSAEがボーン周りでクラッシュする #75

Open sakuma-ryoh opened 4 years ago

sakuma-ryoh commented 4 years ago

データのインポートを行うと ボーンのインデックスが範囲外参照を行い停止してしまいます。 再現データはメールで送らせていただきます。 エラーログは以下のとおりです。

ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. Parameter name: index System.ThrowHelper.ThrowArgumentOutOfRangeException (System.ExceptionArgument argument, System.ExceptionResource resource) (at :0) System.ThrowHelper.ThrowArgumentOutOfRangeException () (at :0) System.Collections.Generic.List`1[T].set_Item (System.Int32 index, T value) (at :0) LibraryEditor_SpriteStudio6+Import+SSAE.Parse (LibraryEditor_SpriteStudio6+Import+Setting& setting, System.String nameFile, LibraryEditor_SpriteStudio6+Import+SSPJ+Information informationSSPJ) (at Assets/MiddleWare/SpriteStudio6/Editor/Import/SSAE.cs:237) LibraryEditor_SpriteStudio6+Import.Exec (LibraryEditor_SpriteStudio6+Import+Setting& setting, System.String nameInputFullPathSSPJ, System.String nameOutputAssetFolderBase, System.Boolean flagDisplayProgressBar) (at Assets/MiddleWare/SpriteStudio6/Editor/LibraryEditor_SpriteStudio6.cs:114) MenuItem_SpriteStudio6_ImportProject.OnGUI () (at Assets/MiddleWare/SpriteStudio6/Editor/Tools/Importer.cs:157) System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at :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 :0) System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) (at :0) UnityEditor.HostView.Invoke (System.String methodName, System.Object obj) (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:342) UnityEditor.HostView.Invoke (System.String methodName) (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:336) UnityEditor.HostView.OldOnGUI () (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:129) UnityEngine.Experimental.UIElements.IMGUIContainer.DoOnGUI (UnityEngine.Event evt, UnityEngine.Matrix4x4 worldTransform, UnityEngine.Rect clippingRect, System.Boolean isComputingLayout) (at C:/buildslave/unity/build/Modules/UIElements/IMGUIContainer.cs:266) UnityEngine.Experimental.UIElements.IMGUIContainer.HandleIMGUIEvent (UnityEngine.Event e, UnityEngine.Matrix4x4 worldTransform, UnityEngine.Rect clippingRect) (at C:/buildslave/unity/build/Modules/UIElements/IMGUIContainer.cs:438) UnityEngine.Experimental.UIElements.IMGUIContainer.HandleIMGUIEvent (UnityEngine.Event e) (at C:/buildslave/unity/build/Modules/UIElements/IMGUIContainer.cs:421) UnityEngine.Experimental.UIElements.IMGUIContainer.HandleEvent (UnityEngine.Experimental.UIElements.EventBase evt) (at C:/buildslave/unity/build/Modules/UIElements/IMGUIContainer.cs:401) UnityEngine.Experimental.UIElements.EventDispatcher.ProcessEvent (UnityEngine.Experimental.UIElements.EventBase evt, UnityEngine.Experimental.UIElements.IPanel panel) (at C:/buildslave/unity/build/Modules/UIElements/EventDispatcher.cs:511) UnityEngine.Experimental.UIElements.EventDispatcher.Dispatch (UnityEngine.Experimental.UIElements.EventBase evt, UnityEngine.Experimental.UIElements.IPanel panel, UnityEngine.Experimental.UIElements.DispatchMode dispatchMode) (at C:/buildslave/unity/build/Modules/UIElements/EventDispatcher.cs:307) UnityEngine.Experimental.UIElements.BaseVisualElementPanel.SendEvent (UnityEngine.Experimental.UIElements.EventBase e, UnityEngine.Experimental.UIElements.DispatchMode dispatchMode) (at C:/buildslave/unity/build/Modules/UIElements/Panel.cs:176) UnityEngine.Experimental.UIElements.UIElementsUtility.DoDispatch (UnityEngine.Experimental.UIElements.BaseVisualElementPanel panel) (at C:/buildslave/unity/build/Modules/UIElements/UIElementsUtility.cs:245) UnityEngine.Experimental.UIElements.UIElementsUtility.ProcessEvent (System.Int32 instanceID, System.IntPtr nativeEventPtr) (at C:/buildslave/unity/build/Modules/UIElements/UIElementsUtility.cs:68) UnityEngine.GUIUtility.ProcessEvent (System.Int32 instanceID, System.IntPtr nativeEventPtr) (at C:/buildslave/unity/build/Modules/IMGUI/GUIUtility.cs:179)

MasamiYitsuse commented 4 years ago

sakuma-ryoh 様

お世話になっております。

レポートありがとうございます。 また、検証用のデータのご提供についても心から御礼申し上げます。 検証を行いたいと思います。

ただ、都合でこの週末まで実質開発関係の作業がほぼ行えない状況にございますため、最速来週明けからの対応と解消になってしまいます旨、何卒ご理解とご容赦のほどお願い申し上げます。 お忙しい中大変申し訳ございません。

本件が解消されました際には、本Issueに対応バージョンや原因などを併記しての返信を起こなうことで改修の通知をさせていただきたくお願い申し上げます。

何卒今後ともよろしくお願いいたします。

MasamiYitsuse commented 4 years ago

sakuma-ryoh 様

お世話になっております。

お待たせして申し訳ありませんでした。

レポートいただいた障害を修正したバージョンをdevelop / sampledevelopブランチに Ver.1.1.20 として更新いたしました。

原因としては、SpriteStudio6.3以降のバージョンでエディットしている際に、データ内部のボーンのインデックスの連番状態を保証しきれない場合が生じており、そのデータをインポートすることによってSS6PU側が配列外参照を出していた……となります。

丁寧なレポートと再現データのご提供いただき、心から感謝申し上げます。 今後とも何卒よろしくお願いいたします。

sakuma-ryoh commented 4 years ago

Ver.1.1.20を使用したところ無事にインポートできるようになりました。 ありがとうございました。

MasamiYitsuse commented 4 years ago

sakuma-ryoh 様

お世話になっております。 こちらのご質問はほかのユーザー様への共有のためopenにさせていただきます。 ご了承ください。