Ejemplo n.º 1
0
    private void AutoSetSkirtBones()
    {
        Vector3    before_position = transform.position;
        Quaternion before_rotation = transform.rotation;

        foreach (Transform skirtbone in skirtsParent.transform)
        {
            if (avatarAnimator != null)
            {
                //HumanBoneのGameObjectは除外
                bool exclud = false;
                for (int i = 0; i < (int)HumanBodyBones.LastBone; ++i)
                {
                    if (skirtbone == avatarAnimator.GetBoneTransform((HumanBodyBones)i))
                    {
                        exclud = true;
                        break;
                    }
                }
                if (exclud)
                {
                    continue;
                }
            }
            if (skirtbone.childCount == 0)
            {
                continue;
            }

            BoneSet boneset = new BoneSet();
            boneset.boneObject = skirtbone.gameObject;

            Vector3 targetposition = skirtbone.GetChild(0).position;
            //右足から推定
            transform.position = new Vector3(rightUpperLeg.position.x, targetposition.y, rightUpperLeg.position.z);
            transform.LookAt(targetposition);
            float guess = transform.eulerAngles.y;
            if (guess > 180)
            {
                //左足から推定
                transform.position = new Vector3(leftUpperLeg.position.x, targetposition.y, leftUpperLeg.position.z);
                transform.LookAt(targetposition);
                guess = transform.eulerAngles.y;
                if (guess < 180 || guess > 360)
                {
                    //お尻から推定
                    transform.position = new Vector3(hips.position.x, targetposition.y, hips.position.z);
                    transform.LookAt(targetposition);
                    guess = transform.eulerAngles.y;
                }
            }
            boneset.angle = (int)guess == 360 ? 0 : (int)guess;

            skirtBones.Add(boneset);
        }
        transform.position = before_position;
        transform.rotation = before_rotation;
        Debug.Log(skirtsParent.name + "配下のGameObjectからSkirtBonesを自動設定しました。");
    }
Ejemplo n.º 2
0
        // returns the set of bones used for the tentacle (sort of like a model)
        public static BoneSet GetBoneSet()
        {
            /* TODO: Complete this set */
            BoneSet b = new BoneSet();

            // Bone(Parent, Offset, Origin, Length, Width, Texture, Depth, [angle, color, alpha])

            TextureStatic.Load("fArm", @"Art/body");
            TextureStatic.Load("head1", @"Art/body");
            TextureStatic.Load("lArm", @"Art/body");
            TextureStatic.Load("lHand", @"Art/body");
            TextureStatic.Load("lowerLeg", @"Art/body");
            TextureStatic.Load("rArm", @"Art/body");
            TextureStatic.Load("rHand", @"Art/body");
            TextureStatic.Load("thigh", @"Art/body");
            TextureStatic.Load("torso", @"Art/body");

            float a = 0;
            //float b = 0;

            Bone torso  = new Bone(null, Vector2.Zero, new Vector2(160, 53), 107, 230, "torso", -0.06f);
            Bone rThigh = new Bone(torso, new Vector2(-26, 30), new Vector2(10, 30), 58, 192, "thigh", 0.02f);
            Bone lThigh = new Bone(torso, new Vector2(27, 30), new Vector2(10, 30), 58, 192, "thigh", 0.02f);
            Bone rShin  = new Bone(rThigh, new Vector2(-2, 100), new Vector2(18, 30), 110, 223, "lowerLeg", 0.02f);
            Bone lShin  = new Bone(lThigh, new Vector2(-2, 100), new Vector2(18, 30), 110, 223, "lowerLeg", 0.02f);
            Bone lArm   = new Bone(torso, new Vector2(-35, -116), new Vector2(10, 15), 35, 145, "rArm", 0.021f);
            Bone rArm   = new Bone(torso, new Vector2(42, -116), new Vector2(10, 20), 35, 145, "lArm", 0.021f);
            Bone lFore  = new Bone(lArm, new Vector2(0, 96), new Vector2(8, 12), 26, 137, "fArm", 0.0211f);
            Bone rFore  = new Bone(rArm, new Vector2(0, 96), new Vector2(8, 12), 26, 137, "fArm", 0.0211f);
            Bone lHand  = new Bone(lFore, new Vector2(-1, 90), new Vector2(3, 38), 65, 68, "lHand", 0.022f);
            Bone rHand  = new Bone(rFore, new Vector2(-1, 90), new Vector2(3, 28), 65, 68, "rHand", 0.022f);
            //scale = .5f;
            Bone head = new Bone(torso, new Vector2(0, -154), new Vector2(5, 55), 103, 116, "head1", 0.02f);

            //Bone head = new Bone(torso, new Vector2(0 , -65), new Vector2(3.25f, 35.75f), 103 , 116 , "head1", 0.02f);


            b.AddBone(torso);
            b.AddBone(rThigh);
            b.AddBone(lThigh);
            b.AddBone(rShin);
            b.AddBone(lShin);
            b.AddBone(lArm);
            b.AddBone(rArm);
            b.AddBone(lFore);
            b.AddBone(rFore);
            b.AddBone(lHand);
            b.AddBone(rHand);
            b.AddBone(head);

            return(b);
        }
Ejemplo n.º 3
0
        // returns the set of bones used for the tentacle (sort of like a model)
        public static BoneSet GetBoneSet()
        {
            /* TODO: Complete this set */
            BoneSet b = new BoneSet();
            // Bone(Parent, Offset, Origin, Length, Width, Texture, Depth, [angle, color, alpha])


            Bone t6 = new Bone(null, Vector2.Zero, new Vector2(0, 50), 89, 105, "tentacle_base", 0.06f);
            Bone t5 = new Bone(t6, new Vector2(-8, 93), new Vector2(15, 30), 68, 69, "tentacle_5", 0.05f);
            Bone t4 = new Bone(t5, new Vector2(8, 40), new Vector2(2, 40), 63, 64, "tentacle_4", 0.04f);
            Bone t3 = new Bone(t4, new Vector2(-10, 53), new Vector2(12, 22), 53, 54, "tentacle_3", 0.03f);
            Bone t2 = new Bone(t3, new Vector2(-2, 34), new Vector2(4, 15), 33, 35, "tentacle_2", 0.02f);
            Bone t1 = new Bone(t2, new Vector2(0, 28), new Vector2(2, 15), 37, 34, "tentacle_tip_1", 0.01f);

            b.AddBone(t6);
            b.AddBone(t5);
            b.AddBone(t4);
            b.AddBone(t3);
            b.AddBone(t2);
            b.AddBone(t1);

            return(b);
        }
Ejemplo n.º 4
0
        internal Transform[] GetBones(SkinnedMeshRenderer local, SkinnedMeshRenderer model)
        {
            BoneSet boneSet = _bones.FirstOrDefault(b => b.skinnedMeshRenderer == model);

            return(boneSet.bones ?? new BoneTracker(model).Match(local));
        }
Ejemplo n.º 5
0
        // returns the set of bones used for the tentacle (sort of like a model)
        public static BoneSet GetBoneSet()
        {
            /* TODO: Complete this set */
            BoneSet b = new BoneSet();
            // Bone(Parent, Offset, Origin, Length, Width, Texture, Depth, [angle, color, alpha])

            int rando = Cloud.randCloud.Next(1, 14);

            string a = "lArm";
            string d = "rArm";
            string c = "torso";

            switch (rando)
            {
            case 1:
                a = "lArmBeta";
                d = "rArmBeta";
                c = "torsoBeta";
                break;

            case 2:
                a = "lArmDelt";
                d = "rArmDelt";
                c = "torsoDelt";
                break;

            case 3:
                a = "lArmDeltaChi";
                d = "rArmDeltaChi";
                c = "torsoDeltaChi";
                break;

            case 4:
                a = "lArmDU";
                d = "rArmDU";
                c = "torsoDU";
                break;

            case 5:
                a = "lArmFIJI";
                d = "rArmFIJI";
                c = "torsoFIJI";
                break;

            case 6:
                a = "lArmPhiKappaTheta";
                d = "rArmPhiKappaTheta";
                c = "torsoPhiKappaTheta";
                break;

            case 7:
                a = "lArmPhiPsi";
                d = "rArmPhiPsi";
                c = "torsoPhiPsi";
                break;

            case 8:
                a = "lArmPhiTau";
                d = "rArmPhiTau";
                c = "torsoPhiTau";
                break;

            case 14:
                a = "lArmSigChi";
                d = "rArmSigChi";
                c = "torsoSigChi";
                break;

            case 9:
                a = "lArmSigEp";
                d = "rArmSigEp";
                c = "torsoSigEp";
                break;

            case 10:
                a = "lArmSigNu";
                d = "rArmSigNu";
                c = "torsoSigNu";
                break;

            case 11:
                a = "lArmThetaChi";
                d = "rArmThetaChi";
                c = "torsoThetaChi";
                break;

            case 12:
                a = "lArmZBT";
                d = "rArmZBT";
                c = "torsoZBT";
                break;

            case 13:
                a = "lArmZetaPsi";
                d = "rArmZetaPsi";
                c = "torsoZetaPsi";
                break;

            default:
                break;
            }
            TextureStatic.Load("fArm", @"Art/body");
            TextureStatic.Load("head2", @"Art/body");
            TextureStatic.Load(a, @"Art/body");
            TextureStatic.Load("lHand", @"Art/body");
            TextureStatic.Load("lowerLeg", @"Art/body");
            TextureStatic.Load(d, @"Art/body");
            TextureStatic.Load("rHand", @"Art/body");
            TextureStatic.Load("thigh", @"Art/body");
            TextureStatic.Load(c, @"Art/body");

            //float a = 0;
            //float b = 0;

            Bone torso  = new Bone(null, Vector2.Zero, new Vector2(160, 53), 107, 230, c, -0.06f);
            Bone rThigh = new Bone(torso, new Vector2(-26, 30), new Vector2(10, 30), 58, 192, "thigh", 0.02f);
            Bone lThigh = new Bone(torso, new Vector2(27, 30), new Vector2(10, 30), 58, 192, "thigh", 0.02f);
            Bone rShin  = new Bone(rThigh, new Vector2(-2, 100), new Vector2(18, 30), 110, 223, "lowerLeg", 0.02f);
            Bone lShin  = new Bone(lThigh, new Vector2(-2, 100), new Vector2(18, 30), 110, 223, "lowerLeg", 0.02f);
            Bone lArm   = new Bone(torso, new Vector2(-35, -116), new Vector2(10, 15), 35, 145, d, 0.021f);
            Bone rArm   = new Bone(torso, new Vector2(42, -116), new Vector2(10, 20), 35, 145, a, 0.021f);
            Bone lFore  = new Bone(lArm, new Vector2(0, 96), new Vector2(8, 12), 26, 137, "fArm", 0.0211f);
            Bone rFore  = new Bone(rArm, new Vector2(0, 96), new Vector2(8, 12), 26, 137, "fArm", 0.0211f);
            Bone lHand  = new Bone(lFore, new Vector2(-1, 90), new Vector2(3, 38), 65, 68, "lHand", 0.022f);
            Bone rHand  = new Bone(rFore, new Vector2(-1, 90), new Vector2(3, 28), 65, 68, "rHand", 0.022f);
            //scale = .5f;
            Bone head = new Bone(torso, new Vector2(0, -154), new Vector2(5, 55), 103, 116, "head2", 0.02f);

            //Bone head = new Bone(torso, new Vector2(0 , -65), new Vector2(3.25f, 35.75f), 103 , 116 , "head1", 0.02f);


            b.AddBone(torso);
            b.AddBone(rThigh);
            b.AddBone(lThigh);
            b.AddBone(rShin);
            b.AddBone(lShin);
            b.AddBone(lArm);
            b.AddBone(rArm);
            b.AddBone(lFore);
            b.AddBone(rFore);
            b.AddBone(lHand);
            b.AddBone(rHand);
            b.AddBone(head);

            return(b);
        }
Ejemplo n.º 6
0
        // returns a given stance (these are premade)
        public static Stance Get(player2Stance s)
        {
            /* TODO: Add stances */
            Stance  st;
            BoneSet b = new BoneSet();
            Bone    torso;
            Bone    rThigh;
            Bone    lThigh;
            Bone    rShin;
            Bone    lShin;
            Bone    lArm;
            Bone    rArm;
            Bone    lFore;
            Bone    rFore;
            Bone    lHand;
            Bone    rHand;
            Bone    head;


            switch (s)
            {
            case player2Stance.Idle:


                //torso = new Bone(null, Vector2.Zero, new Vector2(53, 160), 107, 230, "torso", 0.06f, (float)Math.PI * .5f, Color.White, 1.0f);
                torso  = new Bone(null, Vector2.Zero, new Vector2(0, 0), 107, 230, "torso", 0.06f, (float)Math.PI * .49f, Color.White, 1.0f);
                rThigh = new Bone(torso, new Vector2(60, -26), new Vector2(10, 30), 58, 192, "thigh", 0.05f, (float)Math.PI * .5f, Color.White, 1.0f);
                lThigh = new Bone(torso, new Vector2(60, 27), new Vector2(10, 30), 58, 192, "thigh", 0.04f, (float)Math.PI * .5f, Color.White, 1.0f);
                rShin  = new Bone(rThigh, new Vector2(170, -2), new Vector2(18, 30), 110, 223, "lowerLeg", 0.03f, (float)Math.PI * .45f, Color.White, 1.0f);
                lShin  = new Bone(lThigh, new Vector2(-2, 170), new Vector2(18, 30), 110, 223, "lowerLeg", 0.02f, (float)Math.PI * .5f, Color.White, 1.0f);
                lArm   = new Bone(torso, new Vector2(-122, -15), new Vector2(10, 20), 35, 145, "rArm", 0.02f, (float)Math.PI * .4f, Color.White, 1.0f);
                rArm   = new Bone(torso, new Vector2(-122, 32), new Vector2(10, 15), 35, 145, "lArm", 0.02f, (float)Math.PI * .7f, Color.White, 1.0f);
                lFore  = new Bone(lArm, new Vector2(126, 0), new Vector2(8, 12), 26, 137, "fArm", 0.02f, (float)Math.PI * .5f, Color.White, 1.0f);
                rFore  = new Bone(rArm, new Vector2(126, 0), new Vector2(8, 12), 26, 137, "fArm", 0.02f, (float)Math.PI * .0f, Color.White, 1.0f);
                lHand  = new Bone(lFore, new Vector2(124, -1), new Vector2(3, 38), 65, 68, "lHand", 0.02f, (float)Math.PI * -.5f, Color.White, 1.0f);
                rHand  = new Bone(rFore, new Vector2(124, -1), new Vector2(3, 28), 65, 68, "rHand", 0.02f, (float)Math.PI * -.1f, Color.White, 1.0f);
                head   = new Bone(torso, new Vector2(0, 0), new Vector2(0, 0), 103, 116, "head2", 0.02f, (float)Math.PI * -.5f, Color.White, 1.0f);

                b.AddBone(torso);
                b.AddBone(rThigh);
                b.AddBone(lThigh);
                b.AddBone(rShin);
                b.AddBone(lShin);
                b.AddBone(lArm);
                b.AddBone(rArm);
                b.AddBone(lFore);
                b.AddBone(rFore);
                b.AddBone(lHand);
                b.AddBone(rHand);
                b.AddBone(head);

                st      = new Stance(b);
                st.Type = (int)player2Stance.Idle;

                return(st);


            case player2Stance.Idle1:


                //torso = new Bone(null, Vector2.Zero, new Vector2(53, 160), 107, 230, "torso", 0.06f, (float)Math.PI * .5f, Color.White, 1.0f);
                torso  = new Bone(null, Vector2.Zero, new Vector2(0, 0), 107, 230, "torso", 0.06f, (float)Math.PI * .50f, Color.White, 1.0f);
                rThigh = new Bone(torso, new Vector2(60, -26), new Vector2(10, 30), 58, 192, "thigh", 0.05f, (float)Math.PI * .5f, Color.White, 1.0f);
                lThigh = new Bone(torso, new Vector2(60, 27), new Vector2(10, 30), 58, 192, "thigh", 0.04f, (float)Math.PI * .5f, Color.White, 1.0f);
                rShin  = new Bone(rThigh, new Vector2(170, -2), new Vector2(18, 30), 110, 223, "lowerLeg", 0.03f, (float)Math.PI * .45f, Color.White, 1.0f);
                lShin  = new Bone(lThigh, new Vector2(-2, 170), new Vector2(18, 30), 110, 223, "lowerLeg", 0.02f, (float)Math.PI * .5f, Color.White, 1.0f);
                lArm   = new Bone(torso, new Vector2(-122, -15), new Vector2(10, 20), 35, 145, "Arm", 0.02f, (float)Math.PI * .39f, Color.White, 1.0f);
                rArm   = new Bone(torso, new Vector2(-122, 32), new Vector2(10, 15), 35, 145, "lArm", 0.02f, (float)Math.PI * .71f, Color.White, 1.0f);
                lFore  = new Bone(lArm, new Vector2(126, 0), new Vector2(8, 12), 26, 137, "fArm", 0.02f, (float)Math.PI * .50f, Color.White, 1.0f);
                rFore  = new Bone(rArm, new Vector2(126, 0), new Vector2(8, 12), 26, 137, "fArm", 0.02f, (float)Math.PI * .0f, Color.White, 1.0f);
                lHand  = new Bone(lFore, new Vector2(124, -1), new Vector2(3, 38), 65, 68, "lHand", 0.02f, (float)Math.PI * -.51f, Color.White, 1.0f);
                rHand  = new Bone(rFore, new Vector2(124, -1), new Vector2(3, 28), 65, 68, "rHand", 0.02f, (float)Math.PI * -.1f, Color.White, 1.0f);
                head   = new Bone(torso, new Vector2(0, 0), new Vector2(0, 0), 103, 116, "head2", 0.02f, (float)Math.PI * -.52f, Color.White, 1.0f);

                b.AddBone(torso);
                b.AddBone(rThigh);
                b.AddBone(lThigh);
                b.AddBone(rShin);
                b.AddBone(lShin);
                b.AddBone(lArm);
                b.AddBone(rArm);
                b.AddBone(lFore);
                b.AddBone(rFore);
                b.AddBone(lHand);
                b.AddBone(rHand);
                b.AddBone(head);

                st      = new Stance(b);
                st.Type = (int)player2Stance.Idle1;

                return(st);

            case player2Stance.Answer:
                //torso = new Bone(null, Vector2.Zero, new Vector2(53, 160), 107, 230, "torso", 0.06f, (float)Math.PI * .5f, Color.White, 1.0f);
                torso  = new Bone(null, Vector2.Zero, new Vector2(0, 0), 107, 230, "torso", 0.06f, (float)Math.PI * .51f, Color.White, 1.0f);
                rThigh = new Bone(torso, new Vector2(60, -26), new Vector2(10, 30), 58, 192, "thigh", 0.05f, (float)Math.PI * .5f, Color.White, 1.0f);
                lThigh = new Bone(torso, new Vector2(60, 27), new Vector2(10, 30), 58, 192, "thigh", 0.04f, (float)Math.PI * .5f, Color.White, 1.0f);
                rShin  = new Bone(rThigh, new Vector2(170, -2), new Vector2(18, 30), 110, 223, "lowerLeg", 0.03f, (float)Math.PI * .45f, Color.White, 1.0f);
                lShin  = new Bone(lThigh, new Vector2(-2, 170), new Vector2(18, 30), 110, 223, "lowerLeg", 0.02f, (float)Math.PI * .5f, Color.White, 1.0f);
                lArm   = new Bone(torso, new Vector2(-122, -15), new Vector2(10, 20), 35, 145, "Arm", 0.02f, (float)Math.PI * .39f, Color.White, 1.0f);
                rArm   = new Bone(torso, new Vector2(-122, 32), new Vector2(10, 15), 35, 145, "lArm", 0.02f, (float)Math.PI * .70f, Color.White, 1.0f);
                lFore  = new Bone(lArm, new Vector2(126, 0), new Vector2(8, 12), 26, 137, "fArm", 0.02f, (float)Math.PI * .50f, Color.White, 1.0f);
                rFore  = new Bone(rArm, new Vector2(126, 0), new Vector2(8, 12), 26, 137, "fArm", 0.02f, (float)Math.PI * .25f, Color.White, 1.0f);
                lHand  = new Bone(lFore, new Vector2(124, -1), new Vector2(3, 38), 65, 68, "lHand", 0.02f, (float)Math.PI * -.5f, Color.White, 1.0f);
                rHand  = new Bone(rFore, new Vector2(124, -1), new Vector2(3, 28), 65, 68, "rHand", 0.02f, (float)Math.PI * .5f, Color.White, 1.0f);
                head   = new Bone(torso, new Vector2(0, 0), new Vector2(0, 0), 103, 116, "head2", 0.02f, (float)Math.PI * -.51f, Color.White, 1.0f);

                b.AddBone(torso);
                b.AddBone(rThigh);
                b.AddBone(lThigh);
                b.AddBone(rShin);
                b.AddBone(lShin);
                b.AddBone(lArm);
                b.AddBone(rArm);
                b.AddBone(lFore);
                b.AddBone(rFore);
                b.AddBone(lHand);
                b.AddBone(rHand);
                b.AddBone(head);

                st      = new Stance(b);
                st.Type = (int)player2Stance.Answer;

                return(st);


            default:
                return(null);
            }
        }
Ejemplo n.º 7
0
        // returns a given stance (these are premade)
        public static Stance Get(tentacleStance s)
        {
            /* TODO: Add stances */
            Stance  st;
            BoneSet b = new BoneSet();
            Bone    t6;
            Bone    t5;
            Bone    t4;
            Bone    t3;
            Bone    t2;
            Bone    t1;


            switch (s)
            {
            case tentacleStance.Idle:
                t6 = new Bone(null, Vector2.Zero, new Vector2(42, 12), 89, 105, "tentacle_base", 0.06f, (float)Math.PI * 1.5f, Color.White, 1.0f);
                t5 = new Bone(t6, new Vector2(40, 30), new Vector2(0, 55), 68, 69, "tentacle_5", 0.05f, (float)Math.PI * 1.77f, Color.White, 1.0f);
                t4 = new Bone(t5, new Vector2(68, 40), new Vector2(2, 25), 64, 50, "tentacle_4", 0.04f, (float)Math.PI * 1.93f, Color.White, 1.0f);
                t3 = new Bone(t4, new Vector2(44, 22), new Vector2(12, 22), 54, 53, "tentacle_3", 0.03f, (float)Math.PI * 1.75f, Color.White, 1.0f);
                t2 = new Bone(t3, new Vector2(44, 21), new Vector2(4, 15), 35, 33, "tentacle_2", 0.02f, (float)Math.PI * 1.70f, Color.White, 1.0f);
                t1 = new Bone(t2, new Vector2(30, 20), new Vector2(2, 15), 34, 37, "tentacle_tip_1", 0.01f, (float)Math.PI * 1.75f, Color.White, 1.0f);

                b.AddBone(t6);
                b.AddBone(t5);
                b.AddBone(t4);
                b.AddBone(t3);
                b.AddBone(t2);
                b.AddBone(t1);

                st      = new Stance(b);
                st.Type = (int)tentacleStance.Idle;

                return(st);

            case tentacleStance.Walk1:
                t6 = new Bone(null, Vector2.Zero, new Vector2(12, 42), 105, 89, "tentacle_base", 0.06f, (float)Math.PI * 1.25f, Color.White, 1.0f);
                t5 = new Bone(t6, new Vector2(40, 75), new Vector2(0, 60), 69, 68, "tentacle_5", 0.05f, (float)Math.PI * 1.35f, Color.White, 1.0f);
                t4 = new Bone(t5, new Vector2(68, 35), new Vector2(2, 25), 64, 50, "tentacle_4", 0.04f, (float)Math.PI * 1.25f, Color.White, 1.0f);
                t3 = new Bone(t4, new Vector2(44, 22), new Vector2(12, 22), 54, 53, "tentacle_3", 0.03f, (float)Math.PI * 1.1f, Color.White, 1.0f);
                t2 = new Bone(t3, new Vector2(44, 21), new Vector2(4, 15), 35, 33, "tentacle_2", 0.02f, (float)Math.PI * 1.0f, Color.White, 1.0f);
                t1 = new Bone(t2, new Vector2(30, 15), new Vector2(2, 15), 34, 37, "tentacle_tip_1", 0.01f, (float)Math.PI * 1.0f, Color.White, 1.0f);

                b.AddBone(t6);
                b.AddBone(t5);
                b.AddBone(t4);
                b.AddBone(t3);
                b.AddBone(t2);
                b.AddBone(t1);

                st      = new Stance(b);
                st.Type = (int)tentacleStance.Walk1;

                return(st);

            case tentacleStance.Walk2:
                t6 = new Bone(null, Vector2.Zero, new Vector2(12, 42), 105, 89, "tentacle_base", 0.06f, (float)Math.PI * 1.55f, Color.White, 1.0f);
                t5 = new Bone(t6, new Vector2(40, 75), new Vector2(0, 60), 69, 68, "tentacle_5", 0.05f, (float)Math.PI * 1.69f, Color.White, 1.0f);
                t4 = new Bone(t5, new Vector2(68, 35), new Vector2(2, 25), 64, 50, "tentacle_4", 0.04f, (float)Math.PI * 1.58f, Color.White, 1.0f);
                t3 = new Bone(t4, new Vector2(44, 22), new Vector2(12, 22), 54, 53, "tentacle_3", 0.03f, (float)Math.PI * 1.34f, Color.White, 1.0f);
                t2 = new Bone(t3, new Vector2(44, 21), new Vector2(4, 15), 35, 33, "tentacle_2", 0.02f, (float)Math.PI * 1.33f, Color.White, 1.0f);
                t1 = new Bone(t2, new Vector2(30, 15), new Vector2(2, 15), 34, 37, "tentacle_tip_1", 0.01f, (float)Math.PI * 1.35f, Color.White, 1.0f);
                b.AddBone(t6);
                b.AddBone(t5);
                b.AddBone(t4);
                b.AddBone(t3);
                b.AddBone(t2);
                b.AddBone(t1);

                st      = new Stance(b);
                st.Type = (int)tentacleStance.Walk2;

                return(st);

            case tentacleStance.Walk3:
                t6 = new Bone(null, Vector2.Zero, new Vector2(12, 42), 105, 89, "tentacle_base", 0.06f, (float)Math.PI * (1.25f - .75f), Color.White, 1.0f);
                t5 = new Bone(t6, new Vector2(40, 75), new Vector2(0, 60), 69, 68, "tentacle_5", 0.05f, (float)Math.PI * (1.35f - .69f), Color.White, 1.0f);
                t4 = new Bone(t5, new Vector2(68, 35), new Vector2(2, 25), 64, 50, "tentacle_4", 0.04f, (float)Math.PI * (1.25f - .78f), Color.White, 1.0f);
                t3 = new Bone(t4, new Vector2(44, 22), new Vector2(12, 22), 54, 53, "tentacle_3", 0.03f, (float)Math.PI * (1.1f - .77f), Color.White, 1.0f);
                t2 = new Bone(t3, new Vector2(44, 21), new Vector2(4, 15), 35, 33, "tentacle_2", 0.02f, (float)Math.PI * (1.0f - .72f), Color.White, 1.0f);
                t1 = new Bone(t2, new Vector2(30, 15), new Vector2(2, 15), 34, 37, "tentacle_tip_1", 0.01f, (float)Math.PI * (1.0f - .75f), Color.White, 1.0f);

                b.AddBone(t6);
                b.AddBone(t5);
                b.AddBone(t4);
                b.AddBone(t3);
                b.AddBone(t2);
                b.AddBone(t1);

                st      = new Stance(b);
                st.Type = (int)tentacleStance.Walk1;

                return(st);

            case tentacleStance.Walk4:
                t6 = new Bone(null, Vector2.Zero, new Vector2(12, 42), 105, 89, "tentacle_base", 0.06f, (float)Math.PI * (1.25f - 1.75f), Color.White, 1.0f);
                t5 = new Bone(t6, new Vector2(40, 75), new Vector2(0, 60), 69, 68, "tentacle_5", 0.05f, (float)Math.PI * (1.35f - 1.69f), Color.White, 1.0f);
                t4 = new Bone(t5, new Vector2(68, 35), new Vector2(2, 25), 64, 50, "tentacle_4", 0.04f, (float)Math.PI * (1.25f - 1.78f), Color.White, 1.0f);
                t3 = new Bone(t4, new Vector2(44, 22), new Vector2(12, 22), 54, 53, "tentacle_3", 0.03f, (float)Math.PI * (1.1f - 1.77f), Color.White, 1.0f);
                t2 = new Bone(t3, new Vector2(44, 21), new Vector2(4, 15), 35, 33, "tentacle_2", 0.02f, (float)Math.PI * (1.0f - 1.72f), Color.White, 1.0f);
                t1 = new Bone(t2, new Vector2(30, 15), new Vector2(2, 15), 34, 37, "tentacle_tip_1", 0.01f, (float)Math.PI * (1.0f - 1.75f), Color.White, 1.0f);

                b.AddBone(t6);
                b.AddBone(t5);
                b.AddBone(t4);
                b.AddBone(t3);
                b.AddBone(t2);
                b.AddBone(t1);

                st      = new Stance(b);
                st.Type = (int)tentacleStance.Walk1;

                return(st);

            case tentacleStance.Walk5:
                t6 = new Bone(null, Vector2.Zero, new Vector2(12, 42), 105, 89, "tentacle_base", 0.06f, (float)Math.PI * (1.25f + .84f), Color.White, 1.0f);
                t5 = new Bone(t6, new Vector2(40, 75), new Vector2(0, 60), 69, 68, "tentacle_5", 0.05f, (float)Math.PI * (1.35f + .8f), Color.White, 1.0f);
                t4 = new Bone(t5, new Vector2(68, 35), new Vector2(2, 25), 64, 50, "tentacle_4", 0.04f, (float)Math.PI * (1.25f + .89f), Color.White, 1.0f);
                t3 = new Bone(t4, new Vector2(44, 22), new Vector2(12, 22), 54, 53, "tentacle_3", 0.03f, (float)Math.PI * (1.1f + .78f), Color.White, 1.0f);
                t2 = new Bone(t3, new Vector2(44, 21), new Vector2(4, 15), 35, 33, "tentacle_2", 0.02f, (float)Math.PI * (1.0f + .88f), Color.White, 1.0f);
                t1 = new Bone(t2, new Vector2(30, 15), new Vector2(2, 15), 34, 37, "tentacle_tip_1", 0.01f, (float)Math.PI * (1.0f + .9f), Color.White, 1.0f);

                b.AddBone(t6);
                b.AddBone(t5);
                b.AddBone(t4);
                b.AddBone(t3);
                b.AddBone(t2);
                b.AddBone(t1);

                st      = new Stance(b);
                st.Type = (int)tentacleStance.Walk1;

                return(st);

            case tentacleStance.Walk6:
                t6 = new Bone(null, Vector2.Zero, new Vector2(12, 42), 105, 89, "tentacle_base", 0.06f, (float)Math.PI * (1.25f + .41f), Color.White, 1.0f);
                t5 = new Bone(t6, new Vector2(40, 75), new Vector2(0, 60), 69, 68, "tentacle_5", 0.05f, (float)Math.PI * (1.35f + .49f), Color.White, 1.0f);
                t4 = new Bone(t5, new Vector2(68, 35), new Vector2(2, 25), 64, 50, "tentacle_4", 0.04f, (float)Math.PI * (1.25f + .42f), Color.White, 1.0f);
                t3 = new Bone(t4, new Vector2(44, 22), new Vector2(12, 22), 54, 53, "tentacle_3", 0.03f, (float)Math.PI * (1.1f + .37f), Color.White, 1.0f);
                t2 = new Bone(t3, new Vector2(44, 21), new Vector2(4, 15), 35, 33, "tentacle_2", 0.02f, (float)Math.PI * (1.0f + .46f), Color.White, 1.0f);
                t1 = new Bone(t2, new Vector2(30, 15), new Vector2(2, 15), 34, 37, "tentacle_tip_1", 0.01f, (float)Math.PI * (1.0f + .5f), Color.White, 1.0f);

                b.AddBone(t6);
                b.AddBone(t5);
                b.AddBone(t4);
                b.AddBone(t3);
                b.AddBone(t2);
                b.AddBone(t1);

                st      = new Stance(b);
                st.Type = (int)tentacleStance.Walk1;

                return(st);

            case tentacleStance.Walk7:
                t6 = new Bone(null, Vector2.Zero, new Vector2(12, 42), 105, 89, "tentacle_base", 0.06f, (float)Math.PI * (1.25f - 1.0f), Color.White, 1.0f);
                t5 = new Bone(t6, new Vector2(40, 75), new Vector2(0, 60), 69, 68, "tentacle_5", 0.05f, (float)Math.PI * (1.35f - .96f), Color.White, 1.0f);
                t4 = new Bone(t5, new Vector2(68, 35), new Vector2(2, 25), 64, 50, "tentacle_4", 0.04f, (float)Math.PI * (1.25f - 1.08f), Color.White, 1.0f);
                t3 = new Bone(t4, new Vector2(44, 22), new Vector2(12, 22), 54, 53, "tentacle_3", 0.03f, (float)Math.PI * (1.1f - 1.03f), Color.White, 1.0f);
                t2 = new Bone(t3, new Vector2(44, 21), new Vector2(4, 15), 35, 33, "tentacle_2", 0.02f, (float)Math.PI * (1.0f - 1.06f), Color.White, 1.0f);
                t1 = new Bone(t2, new Vector2(30, 15), new Vector2(2, 15), 34, 37, "tentacle_tip_1", 0.01f, (float)Math.PI * (1.0f - 1.1f), Color.White, 1.0f);

                b.AddBone(t6);
                b.AddBone(t5);
                b.AddBone(t4);
                b.AddBone(t3);
                b.AddBone(t2);
                b.AddBone(t1);

                st      = new Stance(b);
                st.Type = (int)tentacleStance.Walk1;

                return(st);

            default:
                return(null);
            }
        }