Exemple #1
0
 static void AssignHumanoid(List <Node> nodes, VrmProtobuf.HumanBone humanBone, VrmLib.HumanoidBones key)
 {
     if (humanBone.Node.HasValue)
     {
         nodes[humanBone.Node.Value].HumanoidBone = key;
     }
 }
Exemple #2
0
        public void ExportVrmHumanoid(Dictionary <HumanoidBones, Node> map, List <Node> nodes)
        {
            Gltf.Extensions.VRMCVrm.Humanoid = new VrmProtobuf.Humanoid();
            foreach (var kv in map.OrderBy(kv => kv.Key))
            {
                var humanoidBone = new VrmProtobuf.HumanBone
                {
                    Node = nodes.IndexOfThrow(kv.Value),
                };

                switch (kv.Key)
                {
                case HumanoidBones.hips: Gltf.Extensions.VRMCVrm.Humanoid.HumanBones.Hips = humanoidBone; break;

                case HumanoidBones.leftUpperLeg: Gltf.Extensions.VRMCVrm.Humanoid.HumanBones.LeftUpperLeg = humanoidBone; break;

                case HumanoidBones.rightUpperLeg: Gltf.Extensions.VRMCVrm.Humanoid.HumanBones.RightUpperLeg = humanoidBone; break;

                case HumanoidBones.leftLowerLeg: Gltf.Extensions.VRMCVrm.Humanoid.HumanBones.LeftLowerLeg = humanoidBone; break;

                case HumanoidBones.rightLowerLeg: Gltf.Extensions.VRMCVrm.Humanoid.HumanBones.RightLowerLeg = humanoidBone; break;

                case HumanoidBones.leftFoot: Gltf.Extensions.VRMCVrm.Humanoid.HumanBones.LeftFoot = humanoidBone; break;

                case HumanoidBones.rightFoot: Gltf.Extensions.VRMCVrm.Humanoid.HumanBones.RightFoot = humanoidBone; break;

                case HumanoidBones.spine: Gltf.Extensions.VRMCVrm.Humanoid.HumanBones.Spine = humanoidBone; break;

                case HumanoidBones.chest: Gltf.Extensions.VRMCVrm.Humanoid.HumanBones.Chest = humanoidBone; break;

                case HumanoidBones.neck: Gltf.Extensions.VRMCVrm.Humanoid.HumanBones.Neck = humanoidBone; break;

                case HumanoidBones.head: Gltf.Extensions.VRMCVrm.Humanoid.HumanBones.Head = humanoidBone; break;

                case HumanoidBones.leftShoulder: Gltf.Extensions.VRMCVrm.Humanoid.HumanBones.LeftShoulder = humanoidBone; break;

                case HumanoidBones.rightShoulder: Gltf.Extensions.VRMCVrm.Humanoid.HumanBones.RightShoulder = humanoidBone; break;

                case HumanoidBones.leftUpperArm: Gltf.Extensions.VRMCVrm.Humanoid.HumanBones.LeftUpperArm = humanoidBone; break;

                case HumanoidBones.rightUpperArm: Gltf.Extensions.VRMCVrm.Humanoid.HumanBones.RightUpperArm = humanoidBone; break;

                case HumanoidBones.leftLowerArm: Gltf.Extensions.VRMCVrm.Humanoid.HumanBones.LeftLowerArm = humanoidBone; break;

                case HumanoidBones.rightLowerArm: Gltf.Extensions.VRMCVrm.Humanoid.HumanBones.RightLowerArm = humanoidBone; break;

                case HumanoidBones.leftHand: Gltf.Extensions.VRMCVrm.Humanoid.HumanBones.LeftHand = humanoidBone; break;

                case HumanoidBones.rightHand: Gltf.Extensions.VRMCVrm.Humanoid.HumanBones.RightHand = humanoidBone; break;

                case HumanoidBones.leftToes: Gltf.Extensions.VRMCVrm.Humanoid.HumanBones.LeftToes = humanoidBone; break;

                case HumanoidBones.rightToes: Gltf.Extensions.VRMCVrm.Humanoid.HumanBones.RightToes = humanoidBone; break;

                case HumanoidBones.leftEye: Gltf.Extensions.VRMCVrm.Humanoid.HumanBones.LeftEye = humanoidBone; break;

                case HumanoidBones.rightEye: Gltf.Extensions.VRMCVrm.Humanoid.HumanBones.RightEye = humanoidBone; break;

                case HumanoidBones.jaw: Gltf.Extensions.VRMCVrm.Humanoid.HumanBones.Jaw = humanoidBone; break;

                case HumanoidBones.leftThumbProximal: Gltf.Extensions.VRMCVrm.Humanoid.HumanBones.LeftThumbProximal = humanoidBone; break;

                case HumanoidBones.leftThumbIntermediate: Gltf.Extensions.VRMCVrm.Humanoid.HumanBones.LeftThumbIntermediate = humanoidBone; break;

                case HumanoidBones.leftThumbDistal: Gltf.Extensions.VRMCVrm.Humanoid.HumanBones.LeftThumbDistal = humanoidBone; break;

                case HumanoidBones.leftIndexProximal: Gltf.Extensions.VRMCVrm.Humanoid.HumanBones.LeftIndexProximal = humanoidBone; break;

                case HumanoidBones.leftIndexIntermediate: Gltf.Extensions.VRMCVrm.Humanoid.HumanBones.LeftIndexIntermediate = humanoidBone; break;

                case HumanoidBones.leftIndexDistal: Gltf.Extensions.VRMCVrm.Humanoid.HumanBones.LeftIndexDistal = humanoidBone; break;

                case HumanoidBones.leftMiddleProximal: Gltf.Extensions.VRMCVrm.Humanoid.HumanBones.LeftMiddleProximal = humanoidBone; break;

                case HumanoidBones.leftMiddleIntermediate: Gltf.Extensions.VRMCVrm.Humanoid.HumanBones.LeftMiddleIntermediate = humanoidBone; break;

                case HumanoidBones.leftMiddleDistal: Gltf.Extensions.VRMCVrm.Humanoid.HumanBones.LeftMiddleDistal = humanoidBone; break;

                case HumanoidBones.leftRingProximal: Gltf.Extensions.VRMCVrm.Humanoid.HumanBones.LeftRingProximal = humanoidBone; break;

                case HumanoidBones.leftRingIntermediate: Gltf.Extensions.VRMCVrm.Humanoid.HumanBones.LeftRingIntermediate = humanoidBone; break;

                case HumanoidBones.leftRingDistal: Gltf.Extensions.VRMCVrm.Humanoid.HumanBones.LeftRingDistal = humanoidBone; break;

                case HumanoidBones.leftLittleProximal: Gltf.Extensions.VRMCVrm.Humanoid.HumanBones.LeftLittleProximal = humanoidBone; break;

                case HumanoidBones.leftLittleIntermediate: Gltf.Extensions.VRMCVrm.Humanoid.HumanBones.LeftLittleIntermediate = humanoidBone; break;

                case HumanoidBones.leftLittleDistal: Gltf.Extensions.VRMCVrm.Humanoid.HumanBones.LeftLittleDistal = humanoidBone; break;

                case HumanoidBones.rightThumbProximal: Gltf.Extensions.VRMCVrm.Humanoid.HumanBones.RightThumbProximal = humanoidBone; break;

                case HumanoidBones.rightThumbIntermediate: Gltf.Extensions.VRMCVrm.Humanoid.HumanBones.RightThumbIntermediate = humanoidBone; break;

                case HumanoidBones.rightThumbDistal: Gltf.Extensions.VRMCVrm.Humanoid.HumanBones.RightThumbDistal = humanoidBone; break;

                case HumanoidBones.rightIndexProximal: Gltf.Extensions.VRMCVrm.Humanoid.HumanBones.RightIndexProximal = humanoidBone; break;

                case HumanoidBones.rightIndexIntermediate: Gltf.Extensions.VRMCVrm.Humanoid.HumanBones.RightIndexIntermediate = humanoidBone; break;

                case HumanoidBones.rightIndexDistal: Gltf.Extensions.VRMCVrm.Humanoid.HumanBones.RightIndexDistal = humanoidBone; break;

                case HumanoidBones.rightMiddleProximal: Gltf.Extensions.VRMCVrm.Humanoid.HumanBones.RightMiddleProximal = humanoidBone; break;

                case HumanoidBones.rightMiddleIntermediate: Gltf.Extensions.VRMCVrm.Humanoid.HumanBones.RightMiddleIntermediate = humanoidBone; break;

                case HumanoidBones.rightMiddleDistal: Gltf.Extensions.VRMCVrm.Humanoid.HumanBones.RightMiddleDistal = humanoidBone; break;

                case HumanoidBones.rightRingProximal: Gltf.Extensions.VRMCVrm.Humanoid.HumanBones.RightRingProximal = humanoidBone; break;

                case HumanoidBones.rightRingIntermediate: Gltf.Extensions.VRMCVrm.Humanoid.HumanBones.RightRingIntermediate = humanoidBone; break;

                case HumanoidBones.rightRingDistal: Gltf.Extensions.VRMCVrm.Humanoid.HumanBones.RightRingDistal = humanoidBone; break;

                case HumanoidBones.rightLittleProximal: Gltf.Extensions.VRMCVrm.Humanoid.HumanBones.RightLittleProximal = humanoidBone; break;

                case HumanoidBones.rightLittleIntermediate: Gltf.Extensions.VRMCVrm.Humanoid.HumanBones.RightLittleIntermediate = humanoidBone; break;

                case HumanoidBones.rightLittleDistal: Gltf.Extensions.VRMCVrm.Humanoid.HumanBones.RightLittleDistal = humanoidBone; break;

                case HumanoidBones.upperChest: Gltf.Extensions.VRMCVrm.Humanoid.HumanBones.UpperChest = humanoidBone; break;
                }

                // Gltf.Extensions.VRMCVrm.Humanoid.HumanBones.Add(kv.Key.ToString(), humanoidBone);
            }
        }