From 480563d8ced2bf59cfaa60c87304f7edeb6ededc Mon Sep 17 00:00:00 2001 From: kaikoga Date: Sun, 22 Oct 2023 22:41:22 +0900 Subject: [PATCH] support VRM0/VRM1 SpringBone --- Editor/MergeArmatureHook.cs | 40 +++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/Editor/MergeArmatureHook.cs b/Editor/MergeArmatureHook.cs index e5be6ec1..d5742227 100644 --- a/Editor/MergeArmatureHook.cs +++ b/Editor/MergeArmatureHook.cs @@ -36,6 +36,15 @@ using nadena.dev.modular_avatar.editor.ErrorReporting; using UnityEditor; using UnityEngine; using UnityEngine.Animations; + +#if MA_VRM0 +using VRM; +#endif + +#if MA_VRM1 +using UniVRM10; +#endif + using Object = UnityEngine.Object; #endregion @@ -109,6 +118,35 @@ namespace nadena.dev.modular_avatar.core.editor } #endif +#if MA_VRM0 + foreach (var c in avatarGameObject.transform.GetComponentsInChildren(true)) + { + RetainBoneReferences(c); + } + + foreach (var c in avatarGameObject.transform.GetComponentsInChildren(true)) + { + RetainBoneReferences(c); + } +#endif + +#if MA_VRM1 + foreach (var c in avatarGameObject.transform.GetComponentsInChildren(true)) + { + RetainBoneReferences(c); + } + + foreach (var c in avatarGameObject.transform.GetComponentsInChildren(true)) + { + RetainBoneReferences(c); + } + + foreach (var c in avatarGameObject.transform.GetComponentsInChildren(true)) + { + RetainBoneReferences(c); + } +#endif + foreach (var c in avatarGameObject.transform.GetComponentsInChildren(true)) { RetainBoneReferences(c as Component); @@ -477,5 +515,7 @@ namespace nadena.dev.modular_avatar.core.editor } } #endif + + // TODO - deduplicate VRM0/1 SpringBone components... doesn't break avatars either } } \ No newline at end of file