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を自動設定しました。"); }
// 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); }
// 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); }
internal Transform[] GetBones(SkinnedMeshRenderer local, SkinnedMeshRenderer model) { BoneSet boneSet = _bones.FirstOrDefault(b => b.skinnedMeshRenderer == model); return(boneSet.bones ?? new BoneTracker(model).Match(local)); }
// 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); }
// 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); } }
// 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); } }