From 6dc08a99b2e8a5f786d558f1c89f1ae76ef2bc5d Mon Sep 17 00:00:00 2001 From: Arare Date: Wed, 30 Nov 2022 15:01:06 +0900 Subject: [PATCH] =?UTF-8?q?=E7=B4=A0=E4=BD=93=E3=81=A8=E3=82=B9=E3=82=B1?= =?UTF-8?q?=E3=83=BC=E3=83=AB=E3=81=AE=E9=81=95=E3=81=86=E8=A1=A3=E8=A3=85?= =?UTF-8?q?=E3=82=92=E7=9D=80=E3=81=9B=E3=82=8B=E6=99=82=E3=80=81=E3=83=90?= =?UTF-8?q?=E3=82=A6=E3=83=B3=E3=83=87=E3=82=A3=E3=83=B3=E3=82=B0=E3=83=9C?= =?UTF-8?q?=E3=83=83=E3=82=AF=E3=82=B9=E3=81=8C=E3=82=B5=E3=82=A4=E3=82=BA?= =?UTF-8?q?=E5=B7=AE=E3=81=AE=E5=88=86=E5=A4=89=E3=82=8F=E3=81=A3=E3=81=A6?= =?UTF-8?q?=E3=81=97=E3=81=BE=E3=81=86=E3=83=90=E3=82=B0=E3=81=AE=E4=BF=AE?= =?UTF-8?q?=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Editor/MeshRetargeter.cs | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/Packages/nadena.dev.modular-avatar/Editor/MeshRetargeter.cs b/Packages/nadena.dev.modular-avatar/Editor/MeshRetargeter.cs index 0461a1c0..ae4de30d 100644 --- a/Packages/nadena.dev.modular-avatar/Editor/MeshRetargeter.cs +++ b/Packages/nadena.dev.modular-avatar/Editor/MeshRetargeter.cs @@ -200,7 +200,26 @@ namespace nadena.dev.modular_avatar.core.editor dst.bindposes = newBindPoses; renderer.bones = newBones; renderer.sharedMesh = dst; - renderer.rootBone = BoneDatabase.GetRetargetedBone(renderer.rootBone, true); + + var newRootBone = BoneDatabase.GetRetargetedBone(renderer.rootBone, true); + + var oldLossyScale = renderer.rootBone.transform.lossyScale; + var newLossyScale = newRootBone.transform.lossyScale; + + var bounds = renderer.localBounds; + bounds.extents = new Vector3( + bounds.extents.x * oldLossyScale.x / newLossyScale.x, + bounds.extents.y * oldLossyScale.y / newLossyScale.y, + bounds.extents.z * oldLossyScale.z / newLossyScale.z + ); + bounds.center = new Vector3( + bounds.center.x * oldLossyScale.x / newLossyScale.x, + bounds.center.y * oldLossyScale.y / newLossyScale.y, + bounds.center.z * oldLossyScale.z / newLossyScale.z + ); + renderer.localBounds = bounds; + + renderer.rootBone = newRootBone; renderer.probeAnchor = BoneDatabase.GetRetargetedBone(renderer.probeAnchor, true); } }