vrm-c / UniVRM

UniVRM is a gltf-based VRM format implementation for Unity. English is here https://vrm.dev/en/ . 日本語 はこちら https://vrm.dev/
https://vrm.dev/en
MIT License
2.64k stars 424 forks source link

ArguementNullException: Value cannot be null . Parameter name : key #411

Closed FreynaHime closed 4 years ago

FreynaHime commented 4 years ago

Unity 2018.4.20f1 UniVRM-0.55.0

ArgumentNullException: Value cannot be null. Parameter name: key System.Collections.Generic.Dictionary2[TKey,TValue].FindEntry (TKey key) (at <e1319b7195c343e79b385cd3aa43f5dc>:0) System.Collections.Generic.Dictionary2[TKey,TValue].ContainsKey (TKey key) (at :0) VRM.BoneNormalizer+<>c__DisplayClass6_0.b__0 (UnityEngine.Transform x) (at Assets/VRM/UniVRM/Scripts/SkinnedMeshUtility/BoneNormalizer.cs:291) System.Linq.Enumerable+WhereSelectArrayIterator2[TSource,TResult].ToArray () (at <fbb5ed17eb6e46c680000f8910ebb50c>:0) System.Linq.Enumerable.ToArray[TSource] (System.Collections.Generic.IEnumerable1[T] source) (at :0) VRM.BoneNormalizer.NormalizeSkinnedMesh (UnityEngine.Transform src, UnityEngine.Transform dst, System.Collections.Generic.Dictionary2[TKey,TValue] boneMap, System.Boolean clearBlendShape) (at Assets/VRM/UniVRM/Scripts/SkinnedMeshUtility/BoneNormalizer.cs:290) VRM.BoneNormalizer.Execute (UnityEngine.GameObject go, System.Boolean forceTPose, System.Boolean clearBlendShapeBeforeNormalize) (at Assets/VRM/UniVRM/Scripts/SkinnedMeshUtility/BoneNormalizer.cs:557) VRM.VRMExportSettings.Export (System.String path, System.Collections.Generic.List1[T] destroy) (at Assets/VRM/UniVRM/Scripts/Format/VRMExportSettings.cs:291) VRM.VRMExportSettings.Export (System.String path) (at Assets/VRM/UniVRM/Scripts/Format/VRMExportSettings.cs:263) VRM.VRMExporterWizard.OnWizardCreate () (at Assets/VRM/UniVRM/Editor/Format/VRMExporterMenu.cs:42) 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.ScriptableWizard.OnGUI () (at C:/buildslave/unity/build/Editor/Mono/ScriptableWizard.cs:79) 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)

hiroj commented 4 years ago

Thank you for reporting. Please tell me the procedure for issuing the error.

FreynaHime commented 4 years ago

Using a created Prefab which has been put together in unity. the Animator Avatar is not a the complete version of the model. (is my theory) (Used a Booth Prefab model)

hiroj commented 4 years ago

SkinnedMeshRenderer.bones seems to be null. Could you please check if nodes are being edited after deploying the model in Unity?

FreynaHime commented 4 years ago

I am unsure however upon attempting normalization again I do get another issue

AvatarBuilder 'maid dress Supica (1)(normalized)': Ambiguous Transform 'Armature/Hips' and 'Hips' found in hierarchy for human bone 'Hips'. Transform name mapped to a human bone must be unique. UnityEngine.AvatarBuilder:BuildHumanAvatar(GameObject, HumanDescription) UniHumanoid.AvatarDescription:CreateAvatar(Transform) (at Assets/VRM/UniHumanoid/Scripts/AvatarDescription.cs:100) VRM.BoneNormalizer:NormalizeHierarchy(GameObject, Dictionary2) (at Assets/VRM/UniVRM/Scripts/SkinnedMeshUtility/BoneNormalizer.cs:116) VRM.BoneNormalizer:Execute(GameObject, Boolean, Boolean) (at Assets/VRM/UniVRM/Scripts/SkinnedMeshUtility/BoneNormalizer.cs:544) VRM.VRMExportSettings:Export(String, List1) (at Assets/VRM/UniVRM/Scripts/Format/VRMExportSettings.cs:291) VRM.VRMExportSettings:Export(String) (at Assets/VRM/UniVRM/Scripts/Format/VRMExportSettings.cs:263) VRM.VRMExporterWizard:OnWizardCreate() (at Assets/VRM/UniVRM/Editor/Format/VRMExporterMenu.cs:42) UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

hiroj commented 4 years ago

image Can you check if the imported model is Humanoid? It may not contain the bones necessary for the formation of a humanoid.

hiroj commented 4 years ago

v0.56.2 has been released so please try again. If you have any problems, please reopen the issue.