키쿄 바디에 마누카 머리를

그냥 옷 입히듯이 유니티 상에서 마누카 Neck본과 Head본을 키쿄 Neck본과 Head본의 하위로 넣고 메쉬를 옮기는 식으로 작업했음.

당연히 브챗에서는 아무 문제없음.


VRM Converter for VRChat을 사용해서 해당 아바타를 VRM으로 변환하는 과정에서 오류가 발생함.

변환 전 이런 경고문구가 뜨는데 스킨드메쉬에 들어간 본이 중복됐다는거 보니 뭔가 여기 관련인거 같긴 한데, 원래도 유니티에서 이런식으로 작업했었고, 브챗 아바타는 이때까지 문제가 없었어서 무슨 소리인지 모르겠음.

머리 뚜따한 아바타 VRM 변환은 이번이 처음이라...


그리구 중복본 어쩌고 하는게 본 문제일 수도 있을 것 같아서 마누카의 Hips, Spine, Chest까지 전부 하위본으로 넣는 방식으로도 작업해봤는데, 여전히 VRM 변환은 동일한 오류를 내뱉으면서 안됨.


유니티 상에서 고칠 수 있는 방법이 있을까요...?

블렌더로 가서 머리 합치고 오면 유니티 작업 다시 해야하니까 귀찮아서 지금 이러고 있는데... ㅠ


아래는 에러 뜰 때 나오는 로그

Unity Editor: 2022.3.6f1

VRM Converter for VRChat: 41.0.0

UniVRM: 0.119.0


System.NullReferenceException: Object reference not set to an instance of an object

  at UniGLTF.MeshUtility.MeshAttachInfo+<>c__DisplayClass4_0.<ReplaceMesh>b__0 (UnityEngine.Transform x) [0x00000] in .\Packages\com.vrmc.gltf\Runtime\MeshUtility\MeshAttachInfo.cs:23 

  at (wrapper delegate-invoke) System.Func`2[UnityEngine.Transform,UnityEngine.Matrix4x4].invoke_TResult_T(UnityEngine.Transform)

  at System.Linq.Enumerable+SelectArrayIterator`2[TSource,TResult].ToArray () [0x00012] in <de4a1a1490a74771a34fee0d1d586658>:0 

  at System.Linq.Enumerable.ToArray[TSource] (System.Collections.Generic.IEnumerable`1[T] source) [0x0001f] in <de4a1a1490a74771a34fee0d1d586658>:0 

  at UniGLTF.MeshUtility.MeshAttachInfo.ReplaceMesh (UnityEngine.GameObject dst) [0x00029] in .\Packages\com.vrmc.gltf\Runtime\MeshUtility\MeshAttachInfo.cs:23 

  at UniGLTF.MeshUtility.BoneNormalizer.Replace (UnityEngine.GameObject go, System.Collections.Generic.Dictionary`2[TKey,TValue] meshMap, System.Boolean FreezeRotation, System.Boolean FreezeScaling) [0x000f1] in .\Packages\com.vrmc.gltf\Runtime\MeshUtility\BoneNormalizer.cs:101 

  at VRM.VRMBoneNormalizer.Execute (UnityEngine.GameObject go, System.Boolean forceTPose) [0x00040] in .\Packages\com.vrmc.univrm\Runtime\SkinnedMeshUtility\VRMBoneNormalizer.cs:85 

  at Esperecyan.Unity.VRMConverterForVRChat.VRChatToVRM.VRChatToVRMConverter.Convert (System.String version, System.String outputPath, UnityEngine.GameObject instance, VRM.VRMMetaObject meta, System.Collections.Generic.IDictionary`2[TKey,TValue] presetVRChatBindingPairs, System.Boolean keepUnusedShapeKeys) [0x0020b] in .\Packages\jp.pokemori.vrm-converter-for-vrchat\Editor\VRChatToVRM\VRChatToVRMConverter.cs:167 

  at Esperecyan.Unity.VRMConverterForVRChat.UI.VRChatToVRMWizard.OnWizardCreate () [0x001b2] in .\Packages\jp.pokemori.vrm-converter-for-vrchat\Editor\UI\VRChatToVRMWizard.cs:309 

  at (wrapper managed-to-native) System.Reflection.RuntimeMethodInfo.InternalInvoke(System.Reflection.RuntimeMethodInfo,object,object[],System.Exception&)

  at System.Reflection.RuntimeMethodInfo.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x0006a] in <eef08f56e2e042f1b3027eca477293d9>:0 

  at UniGLTF.MeshUtility.MeshAttachInfo+<>c__DisplayClass4_0.<ReplaceMesh>b__0 (UnityEngine.Transform x) [0x00000] in .\Packages\com.vrmc.gltf\Runtime\MeshUtility\MeshAttachInfo.cs:23 

  at (wrapper delegate-invoke) System.Func`2[UnityEngine.Transform,UnityEngine.Matrix4x4].invoke_TResult_T(UnityEngine.Transform)

  at System.Linq.Enumerable+SelectArrayIterator`2[TSource,TResult].ToArray () [0x00012] in <de4a1a1490a74771a34fee0d1d586658>:0 

  at System.Linq.Enumerable.ToArray[TSource] (System.Collections.Generic.IEnumerable`1[T] source) [0x0001f] in <de4a1a1490a74771a34fee0d1d586658>:0 

  at UniGLTF.MeshUtility.MeshAttachInfo.ReplaceMesh (UnityEngine.GameObject dst) [0x00029] in .\Packages\com.vrmc.gltf\Runtime\MeshUtility\MeshAttachInfo.cs:23 

  at UniGLTF.MeshUtility.BoneNormalizer.Replace (UnityEngine.GameObject go, System.Collections.Generic.Dictionary`2[TKey,TValue] meshMap, System.Boolean FreezeRotation, System.Boolean FreezeScaling) [0x000f1] in .\Packages\com.vrmc.gltf\Runtime\MeshUtility\BoneNormalizer.cs:101 

  at VRM.VRMBoneNormalizer.Execute (UnityEngine.GameObject go, System.Boolean forceTPose) [0x00040] in .\Packages\com.vrmc.univrm\Runtime\SkinnedMeshUtility\VRMBoneNormalizer.cs:85 

  at Esperecyan.Unity.VRMConverterForVRChat.VRChatToVRM.VRChatToVRMConverter.Convert (System.String version, System.String outputPath, UnityEngine.GameObject instance, VRM.VRMMetaObject meta, System.Collections.Generic.IDictionary`2[TKey,TValue] presetVRChatBindingPairs, System.Boolean keepUnusedShapeKeys) [0x0020b] in .\Packages\jp.pokemori.vrm-converter-for-vrchat\Editor\VRChatToVRM\VRChatToVRMConverter.cs:167 

  at Esperecyan.Unity.VRMConverterForVRChat.UI.VRChatToVRMWizard.OnWizardCreate () [0x001b2] in .\Packages\jp.pokemori.vrm-converter-for-vrchat\Editor\UI\VRChatToVRMWizard.cs:309 

  at (wrapper managed-to-native) System.Reflection.RuntimeMethodInfo.InternalInvoke(System.Reflection.RuntimeMethodInfo,object,object[],System.Exception&)

  at System.Reflection.RuntimeMethodInfo.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x0006a] in <eef08f56e2e042f1b3027eca477293d9>:0