public leftLegAnimation(bool ninverted) { inverted = ninverted; int invert = 1; if (inverted) { invert = -1; } currentTarget = new MovementTarget(Quaternion.Identity, 1); rotation = Quaternion.Identity; currentAnimation = AnimationType.none; walkArmSwingAmount = MathHelper.ToRadians(30); walkArmSwingSpeed = .04f; swungForward = Quaternion.CreateFromYawPitchRoll(0, walkArmSwingAmount, 0); swungBackward = Quaternion.CreateFromYawPitchRoll(0, -walkArmSwingAmount, 0); if (inverted) { swungForward = AnimationFunctions.mirror(swungForward); swungBackward = AnimationFunctions.mirror(swungBackward); } }
public LowerLeftArmAnimation(bool ninverted) { inverted = ninverted; int invert = 1; if (inverted) { invert = -1; } currentTarget = new MovementTarget(Quaternion.Identity, 1); rotation = Quaternion.Identity; currentAnimation = AnimationType.none; walkArmSwingAmount = MathHelper.ToRadians(25); walkArmSwingSpeed = .02f; swungForward = Quaternion.CreateFromYawPitchRoll(MathHelper.ToRadians(-90), 0, MathHelper.ToRadians(10)); rest = Quaternion.CreateFromYawPitchRoll(MathHelper.ToRadians(0), 0, MathHelper.ToRadians(10)); extended = Quaternion.CreateFromYawPitchRoll(MathHelper.ToRadians(0), 0, .001f); folded = Quaternion.CreateFromYawPitchRoll(MathHelper.ToRadians(-90), 0, .001f); if (inverted) { swungForward = AnimationFunctions.mirror(swungForward); rest = AnimationFunctions.mirror(rest); } }
public void lerpRotation() { //if (float.IsNaN()) //{ // rotation = currentTarget.goal; //} float angleBetween = AnimationFunctions.angleBetweenQuaternions(rotation, currentTarget.goal); if (MathHelper.ToDegrees(angleBetween) < 10) { rotation = Quaternion.Lerp(rotation, currentTarget.goal, .2f); return; } float amountToUse = currentTarget.speed / angleBetween; float speedLimit = .4f; if (amountToUse > speedLimit) { amountToUse = speedLimit; } rotation = Quaternion.Lerp(rotation, currentTarget.goal, amountToUse); if (float.IsNaN(rotation.W)) { rotation = currentTarget.goal; } }
public leftArmAnimation(bool ninverted) { inverted = ninverted; int invert = 1; if (inverted) { invert = -1; } currentTarget = new MovementTarget(Quaternion.Identity, 1); rotation = Quaternion.Identity; raised = Quaternion.CreateFromYawPitchRoll(MathHelper.ToRadians(180), MathHelper.ToRadians(10), MathHelper.ToRadians(-110)); lowered = Quaternion.CreateFromYawPitchRoll(0, 0, MathHelper.ToRadians(80)); loweredHammer = Quaternion.CreateFromYawPitchRoll(0, MathHelper.ToRadians(20), MathHelper.ToRadians(80)); //forward = Quaternion.CreateFromYawPitchRoll(MathHelper.ToRadians(-90), 0, 0); //stabbedForward = Quaternion.CreateFromYawPitchRoll(MathHelper.ToRadians(45), MathHelper.ToRadians(90), MathHelper.ToRadians(90)); stabbedForward = Quaternion.CreateFromYawPitchRoll(MathHelper.ToRadians(0), MathHelper.ToRadians(90), MathHelper.ToRadians(90)); stabbedForward *= Quaternion.CreateFromAxisAngle(Vector3.UnitX, MathHelper.ToRadians(-45)); walkArmSwingAmount = MathHelper.ToRadians(19); walkArmSwingSpeed = .02f; swungForward = Quaternion.CreateFromYawPitchRoll(MathHelper.ToRadians(0), walkArmSwingAmount, MathHelper.ToRadians(90)); swungBackward = Quaternion.CreateFromYawPitchRoll(MathHelper.ToRadians(0), -walkArmSwingAmount, MathHelper.ToRadians(90)); if (inverted) { raised = AnimationFunctions.mirror(raised); lowered = AnimationFunctions.mirror(lowered); stabbedForward = AnimationFunctions.mirror(stabbedForward); swungForward = AnimationFunctions.mirror(swungForward); swungBackward = AnimationFunctions.mirror(swungBackward); } }