Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
        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);
            }
        }
Ejemplo n.º 3
0
        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;
            }
        }
Ejemplo n.º 4
0
        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);
            }
        }