From 84248730d52fcfb2a94a63ed8b20f0e387d260c4 Mon Sep 17 00:00:00 2001 From: ousttrue Date: Wed, 16 Apr 2025 15:49:34 +0900 Subject: [PATCH] =?UTF-8?q?BuildHumanAvatarFromMap=20=E3=81=AE=E4=B8=AD?= =?UTF-8?q?=E3=81=A7=20ForceTransformUniqueName.Process=20=E3=81=97?= =?UTF-8?q?=E3=81=AA=E3=81=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/UniGLTF/Runtime/UniHumanoid/AvatarDescription.cs | 6 ++++-- Assets/UniGLTF/Runtime/UniHumanoid/Humanoid.cs | 3 ++- Assets/UniGLTF/Runtime/UniHumanoid/HumanoidLoader.cs | 9 ++------- .../UniGLTF/Runtime/UniHumanoid/IO/BvhImporterContext.cs | 5 ++++- Assets/UniGLTF_Samples/UniHumanoid/HumanBuilderTest.cs | 3 ++- Assets/VRM/Runtime/IO/VRMImporterContext.cs | 2 +- .../Vrm10Runtime/ControlRig/Vrm10RuntimeControlRig.cs | 2 +- Assets/VRM10/Runtime/IO/VrmAnimationImporter.cs | 2 +- 8 files changed, 17 insertions(+), 15 deletions(-) diff --git a/Assets/UniGLTF/Runtime/UniHumanoid/AvatarDescription.cs b/Assets/UniGLTF/Runtime/UniHumanoid/AvatarDescription.cs index e9a956b21..c2277a48f 100644 --- a/Assets/UniGLTF/Runtime/UniHumanoid/AvatarDescription.cs +++ b/Assets/UniGLTF/Runtime/UniHumanoid/AvatarDescription.cs @@ -103,7 +103,8 @@ namespace UniHumanoid public Avatar CreateAvatarAndSetup(Transform root) { - var avatar = HumanoidLoader.BuildHumanAvatarFromMap(root, ToHumanoidMap(root), forceRename: true); + ForceTransformUniqueName.Process(root); + var avatar = HumanoidLoader.BuildHumanAvatarFromMap(root, ToHumanoidMap(root)); avatar.name = name; if (root.TryGetComponent(out var animator)) @@ -269,7 +270,8 @@ namespace UniHumanoid modAvatarDesc(avatarDescription); } avatarDescription.SetHumanBones(map); - var avatar = HumanoidLoader.BuildHumanAvatarFromMap(dst.transform, avatarDescription.ToHumanoidMap(dst.transform), true); + ForceTransformUniqueName.Process(dst.transform); + var avatar = HumanoidLoader.BuildHumanAvatarFromMap(dst.transform, avatarDescription.ToHumanoidMap(dst.transform)); avatar.name = "created"; return avatar; } diff --git a/Assets/UniGLTF/Runtime/UniHumanoid/Humanoid.cs b/Assets/UniGLTF/Runtime/UniHumanoid/Humanoid.cs index 9de767364..f77ea31cc 100644 --- a/Assets/UniGLTF/Runtime/UniHumanoid/Humanoid.cs +++ b/Assets/UniGLTF/Runtime/UniHumanoid/Humanoid.cs @@ -159,7 +159,8 @@ namespace UniHumanoid /// public Avatar CreateAvatar() { - return HumanoidLoader.BuildHumanAvatarFromMap(transform, BoneMap, forceRename: true); + ForceTransformUniqueName.Process(transform); + return HumanoidLoader.BuildHumanAvatarFromMap(transform, BoneMap); } public Transform GetBoneTransform(HumanBodyBones bone) diff --git a/Assets/UniGLTF/Runtime/UniHumanoid/HumanoidLoader.cs b/Assets/UniGLTF/Runtime/UniHumanoid/HumanoidLoader.cs index e5cfc99cd..61f07d70b 100644 --- a/Assets/UniGLTF/Runtime/UniHumanoid/HumanoidLoader.cs +++ b/Assets/UniGLTF/Runtime/UniHumanoid/HumanoidLoader.cs @@ -10,13 +10,8 @@ namespace UniHumanoid public static class HumanoidLoader { - public static Avatar BuildHumanAvatarFromMap(Transform root, BoneMap boneMap, bool forceRename) + public static Avatar BuildHumanAvatarFromMap(Transform root, BoneMap boneMap) { - if (forceRename) - { - ForceTransformUniqueName.Process(root); - } - var description = new HumanDescription { skeleton = root.GetComponentsInChildren() @@ -74,7 +69,7 @@ namespace UniHumanoid .Select(x => (animator.GetBoneTransform(x), x)) .Where(x => x.Item1 != null) ; - var newAvatar = HumanoidLoader.BuildHumanAvatarFromMap(animator.transform, map, false); + var newAvatar = BuildHumanAvatarFromMap(animator.transform, map); newAvatar.name = "re-created"; // var newAvatar = LoadHumanoidAvatarFromAnimator(animator); diff --git a/Assets/UniGLTF/Runtime/UniHumanoid/IO/BvhImporterContext.cs b/Assets/UniGLTF/Runtime/UniHumanoid/IO/BvhImporterContext.cs index e491668dd..748356454 100644 --- a/Assets/UniGLTF/Runtime/UniHumanoid/IO/BvhImporterContext.cs +++ b/Assets/UniGLTF/Runtime/UniHumanoid/IO/BvhImporterContext.cs @@ -4,6 +4,8 @@ using System.Collections.Generic; using UnityEngine; using System.IO; using System.Text; +using UniGLTF.Utils; + #if UNITY_EDITOR using UnityEditor; #endif @@ -111,7 +113,8 @@ namespace UniHumanoid // // avatar // - Avatar = HumanoidLoader.BuildHumanAvatarFromMap(Root.transform, description.ToHumanoidMap(Root.transform), forceRename: true); + ForceTransformUniqueName.Process(Root.transform); + Avatar = HumanoidLoader.BuildHumanAvatarFromMap(Root.transform, description.ToHumanoidMap(Root.transform)); Avatar.name = "Avatar"; AvatarDescription = description; var animator = Root.AddComponent(); diff --git a/Assets/UniGLTF_Samples/UniHumanoid/HumanBuilderTest.cs b/Assets/UniGLTF_Samples/UniHumanoid/HumanBuilderTest.cs index 0a78188a2..3dcbb2a17 100644 --- a/Assets/UniGLTF_Samples/UniHumanoid/HumanBuilderTest.cs +++ b/Assets/UniGLTF_Samples/UniHumanoid/HumanBuilderTest.cs @@ -128,7 +128,8 @@ namespace UniHumanoid { throw new System.ArgumentException("no animator"); } - animator.avatar = HumanoidLoader.BuildHumanAvatarFromMap(root, builder.Map(), forceRename: true); + // ForceTransformUniqueName.Process(root); + animator.avatar = HumanoidLoader.BuildHumanAvatarFromMap(root, builder.Map()); // create SkinnedMesh for bone visualize var renderer = SkeletonMeshUtility.CreateRenderer(animator); diff --git a/Assets/VRM/Runtime/IO/VRMImporterContext.cs b/Assets/VRM/Runtime/IO/VRMImporterContext.cs index 7dedaeea2..7e03ce134 100644 --- a/Assets/VRM/Runtime/IO/VRMImporterContext.cs +++ b/Assets/VRM/Runtime/IO/VRMImporterContext.cs @@ -259,7 +259,7 @@ namespace VRM { AvatarDescription = VRM.humanoid.ToDescription(Nodes); AvatarDescription.name = "AvatarDescription"; - HumanoidAvatar = UniHumanoid.HumanoidLoader.BuildHumanAvatarFromMap(Root.transform, AvatarDescription.ToHumanoidMap(Root.transform), forceRename: false); + HumanoidAvatar = UniHumanoid.HumanoidLoader.BuildHumanAvatarFromMap(Root.transform, AvatarDescription.ToHumanoidMap(Root.transform)); if (!HumanoidAvatar.isValid || !HumanoidAvatar.isHuman) { throw new Exception("fail to create avatar"); diff --git a/Assets/VRM10/Runtime/Components/Vrm10Runtime/ControlRig/Vrm10RuntimeControlRig.cs b/Assets/VRM10/Runtime/Components/Vrm10Runtime/ControlRig/Vrm10RuntimeControlRig.cs index fc44bc808..e98286d12 100644 --- a/Assets/VRM10/Runtime/Components/Vrm10Runtime/ControlRig/Vrm10RuntimeControlRig.cs +++ b/Assets/VRM10/Runtime/Components/Vrm10Runtime/ControlRig/Vrm10RuntimeControlRig.cs @@ -38,7 +38,7 @@ namespace UniVRM10 _hipBone.ControlBone.SetParent(_controlRigRoot); var transformBonePairs = _bones.Select(kv => (kv.Value.ControlBone, kv.Key)); - _controlRigAvatar = HumanoidLoader.BuildHumanAvatarFromMap(vrmRoot, transformBonePairs, forceRename: false); + _controlRigAvatar = HumanoidLoader.BuildHumanAvatarFromMap(vrmRoot, transformBonePairs); _controlRigAvatar.name = "Runtime Control Rig"; if (vrmRoot.TryGetComponent(out var animator)) diff --git a/Assets/VRM10/Runtime/IO/VrmAnimationImporter.cs b/Assets/VRM10/Runtime/IO/VrmAnimationImporter.cs index 27afd8e8b..152d1d77d 100644 --- a/Assets/VRM10/Runtime/IO/VrmAnimationImporter.cs +++ b/Assets/VRM10/Runtime/IO/VrmAnimationImporter.cs @@ -262,7 +262,7 @@ namespace UniVRM10 // // avatar // - var avatar = HumanoidLoader.BuildHumanAvatarFromMap(Root.transform, humanMap, forceRename: false); + var avatar = HumanoidLoader.BuildHumanAvatarFromMap(Root.transform, humanMap); avatar.name = "Avatar"; var animator = Root.AddComponent(); animator.avatar = avatar;