support VRM0/VRM1 SpringBone

This commit is contained in:
kaikoga 2023-10-22 22:41:22 +09:00
parent 5af7c58feb
commit 480563d8ce

View File

@ -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<VRMSpringBone>(true))
{
RetainBoneReferences(c);
}
foreach (var c in avatarGameObject.transform.GetComponentsInChildren<VRMSpringBoneColliderGroup>(true))
{
RetainBoneReferences(c);
}
#endif
#if MA_VRM1
foreach (var c in avatarGameObject.transform.GetComponentsInChildren<VRM10SpringBoneJoint>(true))
{
RetainBoneReferences(c);
}
foreach (var c in avatarGameObject.transform.GetComponentsInChildren<VRM10SpringBoneCollider>(true))
{
RetainBoneReferences(c);
}
foreach (var c in avatarGameObject.transform.GetComponentsInChildren<VRM10SpringBoneColliderGroup>(true))
{
RetainBoneReferences(c);
}
#endif
foreach (var c in avatarGameObject.transform.GetComponentsInChildren<IConstraint>(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
}
}