#How to add a mesh to an existing skeleton / remap bones

1 messages · Page 1 of 1 (latest)

clear sail
#

How to add a mesh to an existing skeleton / remap bones

#
        Transform? hip = player.refs.rigRoot.transform.Find("Rig/Armature/Hip");
        Transform? arm_r = player.refs.rigRoot.transform.Find("Rig/Armature/Hip/Torso/Arm_R");
        Transform? elbow_r = player.refs.rigRoot.transform.Find("Rig/Armature/Hip/Torso/Arm_R/Elbow_R");

        if (arm_r != null && elbow_r != null && hip != null)
        {
            // instantiation
            GameObject arm_sleeve = Instantiate(StrongArmVisualPrefab, arm_r);
             // transform adjustments 
            arm_sleeve.transform.localPosition = new UnityEngine.Vector3(-0.05f, 2.15f, 0.14f);

            arm_sleeve.transform.localRotation = UnityEngine.Quaternion.Euler(-0.33f, 1.585f, 94.004f);
            arm_sleeve.transform.localScale = new UnityEngine.Vector3(11.3f, 11.3f, 11.3f);

            var skinnedMeshRenderer = arm_sleeve.GetComponentInChildren<SkinnedMeshRenderer>(true);
            skinnedMeshRenderer.bones[0] = arm_r;
            skinnedMeshRenderer.bones[1] = elbow_r;
            skinnedMeshRenderer.rootBone = hip; // tried with arm_r as the root too
        }

Am I missing something ? Is there a better way to do it? Are there resources about this ? Thanks.