From cef8a92a2d5ddeb599b8992450d544eb097c01b5 Mon Sep 17 00:00:00 2001 From: tliks Date: Mon, 13 May 2024 23:59:28 +0900 Subject: [PATCH 1/6] commit --- Editor/ModuleCreator.cs | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/Editor/ModuleCreator.cs b/Editor/ModuleCreator.cs index 364a9c6..0a617c2 100644 --- a/Editor/ModuleCreator.cs +++ b/Editor/ModuleCreator.cs @@ -158,8 +158,17 @@ private void CleanUpHierarchy(GameObject new_root, int skin_index) GameObject skin = AllChildren[skin_index].gameObject; objectsToSave.Add(skin); + SkinnedMeshRenderer skinnedMeshRenderer = skin.GetComponent(); + + // SkinnedMeshRendererのrootBoneとanchor overrideに設定されているオブジェクトを追加 + Transform rootBone = skinnedMeshRenderer.rootBone; + Transform anchor = skinnedMeshRenderer.probeAnchor; + if (rootBone) objectsToSave.Add(rootBone.gameObject); + if (anchor) objectsToSave.Add(anchor.gameObject); + // ウェイトをつけているオブジェクトを追加 - HashSet weightedBones = CheckBoneWeight(skin); + HashSet weightedBones = GetWeightedBones(skinnedMeshRenderer); + Debug.Log($"Bones weighting {skin.name}: {weightedBones.Count}/{skinnedMeshRenderer.bones.Length}"); objectsToSave.UnionWith(weightedBones); // PhysBoneに関連するオブジェクトを追加 @@ -172,16 +181,6 @@ private void CleanUpHierarchy(GameObject new_root, int skin_index) CheckAndDeleteRecursive(new_root, objectsToSave); } - private HashSet CheckBoneWeight(GameObject targetObject) - { - SkinnedMeshRenderer skinnedMeshRenderer = targetObject.GetComponent(); - // 指定のメッシュにウェイトを付けてるボーンの一覧を取得 - HashSet weightedBones = GetWeightedBones(skinnedMeshRenderer); - - Debug.Log($"Bones weighting {targetObject.name}: {weightedBones.Count}/{skinnedMeshRenderer.bones.Length}"); - return weightedBones; - } - private HashSet GetWeightedBones(SkinnedMeshRenderer skinnedMeshRenderer) { BoneWeight[] boneWeights = skinnedMeshRenderer.sharedMesh.boneWeights; From 327135322a764701d93289a7d317947b091c0e0a Mon Sep 17 00:00:00 2001 From: tliks Date: Tue, 14 May 2024 00:07:17 +0900 Subject: [PATCH 2/6] Update README --- CHANGELOG.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a3b22c3..2635b8f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,10 +10,12 @@ ### Removed ### Fixed +- rootbone of skinned mesh is not held +- anchor of skinned mesh is not held ### Security -## [0.4.0] - 20204-05-09 +## [0.4.0] - 2024-05-09 ### Added - window to Window/Module Creator - option to disable PhysBone/PhysBoneColider output From 02a287b47d7b6f817a6bd6631a8df5ba12661d6b Mon Sep 17 00:00:00 2001 From: tliks Date: Thu, 16 May 2024 01:24:29 +0900 Subject: [PATCH 3/6] Add SavePrefabAsset --- Editor/ModuleCreator.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Editor/ModuleCreator.cs b/Editor/ModuleCreator.cs index 0a617c2..e1c56ec 100644 --- a/Editor/ModuleCreator.cs +++ b/Editor/ModuleCreator.cs @@ -35,6 +35,8 @@ public void CheckAndCopyBones(GameObject sourceObject) CleanUpHierarchy(new_root, skin_index); + PrefabUtility.SavePrefabAsset(new_root); + PrefabUtility.InstantiatePrefab(new_root); Debug.Log("Saved to " + variantPath); From ba5dc8b9e77716617db2b355d5e054fb3a941add Mon Sep 17 00:00:00 2001 From: tliks Date: Thu, 16 May 2024 18:16:55 +0900 Subject: [PATCH 4/6] fix error --- Editor/ModuleCreator.cs | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/Editor/ModuleCreator.cs b/Editor/ModuleCreator.cs index e1c56ec..e61900b 100644 --- a/Editor/ModuleCreator.cs +++ b/Editor/ModuleCreator.cs @@ -40,12 +40,16 @@ public void CheckAndCopyBones(GameObject sourceObject) PrefabUtility.InstantiatePrefab(new_root); Debug.Log("Saved to " + variantPath); + } + catch (InvalidOperationException ex) + { + Debug.LogError("[Module Creator] " + ex.Message); } catch (Exception ex) { - Debug.LogError(ex); Debug.LogError(ex.StackTrace); + Debug.LogError(ex); } } @@ -53,8 +57,8 @@ public void CheckAndCopyBones(GameObject sourceObject) { Checktarget(targetObject); GameObject root = CheckRoot(targetObject); - CheckHips(root); CheckSkin(targetObject); + CheckHips(root); //skin_index: 複製先でSkinnedMeshRendererがついたオブジェクトを追跡するためのインデックス Transform[] AllChildren = GetAllChildren(root); @@ -84,6 +88,16 @@ GameObject CheckRoot(GameObject targetObject) return root; } + void CheckSkin(GameObject targetObject) + { + SkinnedMeshRenderer skinnedMeshRenderer = targetObject.GetComponent(); + if (skinnedMeshRenderer == null) + { + + throw new InvalidOperationException($"'{targetObject.name}' does not have a SkinnedMeshRenderer."); + } + } + void CheckHips(GameObject root) { GameObject hips = null; @@ -105,15 +119,6 @@ void CheckHips(GameObject root) } } - void CheckSkin(GameObject targetObject) - { - SkinnedMeshRenderer skinnedMeshRenderer = targetObject.GetComponent(); - if (skinnedMeshRenderer == null) - { - - throw new InvalidOperationException($"{targetObject.name} does not have a SkinnedMeshRenderer."); - } - } } private (GameObject, string) CopyRootObject(GameObject root_object, string source_name) From 27ec7963794cd131186fa4b19b03e5ee8b1debcd Mon Sep 17 00:00:00 2001 From: tliks Date: Fri, 17 May 2024 16:12:52 +0900 Subject: [PATCH 5/6] fix log messeage --- Editor/ModuleCreator.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Editor/ModuleCreator.cs b/Editor/ModuleCreator.cs index e61900b..762c90f 100644 --- a/Editor/ModuleCreator.cs +++ b/Editor/ModuleCreator.cs @@ -39,7 +39,7 @@ public void CheckAndCopyBones(GameObject sourceObject) PrefabUtility.InstantiatePrefab(new_root); - Debug.Log("Saved to " + variantPath); + Debug.Log("Saved prefab to " + variantPath); } catch (InvalidOperationException ex) From 811d49c6877ba12d9fe6d93aabefc269287eafdd Mon Sep 17 00:00:00 2001 From: tliks Date: Fri, 17 May 2024 16:13:09 +0900 Subject: [PATCH 6/6] Update CHANGELOG --- CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2635b8f..7569df1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,7 +4,7 @@ ### Added ### Changed - +- Change log message to appropriate format ### Deprecated ### Removed @@ -12,6 +12,7 @@ ### Fixed - rootbone of skinned mesh is not held - anchor of skinned mesh is not held +- Prefab Asset is not updated ### Security