diff options
| author | tylermurphy534 <tylermurphy534@gmail.com> | 2022-11-06 15:12:42 -0500 |
|---|---|---|
| committer | tylermurphy534 <tylermurphy534@gmail.com> | 2022-11-06 15:12:42 -0500 |
| commit | eb84bb298d2b95aec7b2ae12cbf25ac64f25379a (patch) | |
| tree | efd616a157df06ab661c6d56651853431ac6b08b /VRCSDK3AvatarsLegacy/Assets/ReassignBoneWeigthsToNewMesh.cs | |
| download | unityprojects-eb84bb298d2b95aec7b2ae12cbf25ac64f25379a.tar.gz unityprojects-eb84bb298d2b95aec7b2ae12cbf25ac64f25379a.tar.bz2 unityprojects-eb84bb298d2b95aec7b2ae12cbf25ac64f25379a.zip | |
move to self host
Diffstat (limited to '')
| -rw-r--r-- | VRCSDK3AvatarsLegacy/Assets/ReassignBoneWeigthsToNewMesh.cs | 54 | ||||
| -rw-r--r-- | VRCSDK3AvatarsLegacy/Assets/ReassignBoneWeigthsToNewMesh.cs.meta | 11 |
2 files changed, 65 insertions, 0 deletions
diff --git a/VRCSDK3AvatarsLegacy/Assets/ReassignBoneWeigthsToNewMesh.cs b/VRCSDK3AvatarsLegacy/Assets/ReassignBoneWeigthsToNewMesh.cs new file mode 100644 index 00000000..70baa835 --- /dev/null +++ b/VRCSDK3AvatarsLegacy/Assets/ReassignBoneWeigthsToNewMesh.cs @@ -0,0 +1,54 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + + +[ExecuteInEditMode] +public class ReassignBoneWeigthsToNewMesh : MonoBehaviour +{ + public Transform newArmature; + public string rootBoneName = "Hips"; + public bool PressToReassign; + + void Update() + { + if (PressToReassign) + Reassign(); + PressToReassign = false; + } + + // [ContextMenu("Reassign Bones")] + public void Reassign() + { + if (newArmature == null) + { + Debug.Log("No new armature assigned"); + return; + } + + if (newArmature.Find(rootBoneName) == null) + { + Debug.Log("Root bone not found"); + return; + } + + Debug.Log("Reassingning bones"); + SkinnedMeshRenderer rend = gameObject.GetComponent<SkinnedMeshRenderer>(); + Transform[] bones = rend.bones; + + rend.rootBone = newArmature.Find(rootBoneName); + + Transform[] children = newArmature.GetComponentsInChildren<Transform>(); + + for (int i = 0; i < bones.Length; i++) + for (int a = 0; a < children.Length; a++) + if (bones[i].name == children[a].name) + { + bones[i] = children[a]; + break; + } + + rend.bones = bones; + } + +}
\ No newline at end of file diff --git a/VRCSDK3AvatarsLegacy/Assets/ReassignBoneWeigthsToNewMesh.cs.meta b/VRCSDK3AvatarsLegacy/Assets/ReassignBoneWeigthsToNewMesh.cs.meta new file mode 100644 index 00000000..d092038d --- /dev/null +++ b/VRCSDK3AvatarsLegacy/Assets/ReassignBoneWeigthsToNewMesh.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1134c96ca9c3e014db7708daf4af1491 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: |