Example #1
0
        public static AnimationState UpdateAnimsAWA(Ped ped, AnimId aimWithArm_LowerAnim)
        {
            // aim with arm
            // eg: pistol, tec9, sawnoff

            var model = ped.PlayerModel;

            model.Play2Anims(new AnimId(AnimGroup.Colt45, AnimIndex.colt45_fire), aimWithArm_LowerAnim);

            var state = model.LastAnimState;

            model.LastAnimState.wrapMode = WrapMode.ClampForever;

            model.RemoveAllMixingTransforms(model.LastAnimState);
            model.AddMixingTransform(model.LastAnimState, model.RightClavicle, true);

            model.AddMixingTransform(model.LastSecondaryAnimState, model.LeftClavicle, true);
            model.AddMixingTransforms(model.LastSecondaryAnimState, model.Pelvis, model.Belly, model.Spine, model.UpperSpine, model.RBreast, model.LBreast, model.Neck);

            if (model.AnimsChanged)
            {
                // reset model state
                model.ResetModelState();
                // sample the animation, because otherwise, model will remain in original state for 1 frame
                model.AnimComponent.Sample();
            }

            return(state);
        }
Example #2
0
        public AnimationState PlayAnim(AnimId animId, PlayMode playMode = PlayMode.StopAll)
        {
            this.FirstAnimChanged = this.SecondAnimChanged = false;

            var animState = LoadAnim(animId);

            if (null == animState)
            {
                return(null);
            }

            this.FirstAnimChanged  = !animId.Equals(LastAnimId);
            this.SecondAnimChanged = !m_invalidAnimId.Equals(LastSecondaryAnimId);

            LastAnimId             = animId;
            LastSecondaryAnimId    = m_invalidAnimId;
            LastAnimState          = animState;
            LastSecondaryAnimState = null;

            // reset velocity axis
            this.VelocityAxis = 2;

            //animState.layer = 0;
            RemoveAllMixingTransforms(animState);

            _anim.Play(animState.name, playMode);

            return(animState);
        }
        void PlayAnim(AnimId animId)
        {
            Ped.Instance.PlayerModel.ResetModelState();
            var state = Ped.Instance.PlayerModel.PlayAnim(animId);

            state.wrapMode = WrapMode.Loop;
        }
Example #4
0
        public bool Play2Anims(AnimId animIdA, AnimId animIdB)
        {
            // load anims

            var stateA = LoadAnim(animIdA);
            var stateB = LoadAnim(animIdB);

            if (null == stateA || null == stateB)
            {
                return(false);
            }

            // reset model state if anims changed

            bool animsChanged = !animIdA.Equals(LastAnimId) || !animIdB.Equals(LastSecondaryAnimId);

            if (animsChanged)
            {
                //ResetModelState ();
            }

            // reset velocity axis
            this.VelocityAxis = 2;

            // play anims

            // are mixing transforms and layers preserved ? - probably

            RemoveAllMixingTransforms(stateA);
            RemoveAllMixingTransforms(stateB);

            AddMixingTransform(stateA, this.Spine, true);

            AddMixingTransform(stateB, _root.transform, false);
            AddMixingTransform(stateB, this.L_Thigh, true);
            AddMixingTransform(stateB, this.R_Thigh, true);

            stateA.layer = 0;
            stateB.layer = 1;

            this.AnimComponent.Play(stateA.clip.name, PlayMode.StopSameLayer);
            this.AnimComponent.Play(stateB.clip.name, PlayMode.StopSameLayer);


            // assign last anims

            LastAnimId             = animIdA;
            LastSecondaryAnimId    = animIdB;
            LastAnimState          = stateA;
            LastSecondaryAnimState = stateB;


            return(true);
        }
Example #5
0
        public AnimationState PlayAnim(AnimId animId, bool resetModelStateIfAnimChanged, bool resetAnimStateIfAnimChanged)
        {
            bool animChanged = !animId.Equals(LastAnimId) || !m_invalidAnimId.Equals(LastSecondaryAnimId);

            if (resetModelStateIfAnimChanged && animChanged)
            {
                this.ResetModelState();
            }

            var state = PlayAnim(animId);

            if (resetAnimStateIfAnimChanged && animChanged)
            {
                state.enabled        = true;
                state.normalizedTime = 0;
                state.speed          = 1;
                state.weight         = 1;
                state.wrapMode       = this.AnimComponent.wrapMode;
            }

            return(state);
        }
Example #6
0
 private AnimationState LoadAnim(AnimId animId)
 {
     return(animId.UsesAnimGroup ? LoadAnim(animId.AnimGroup, animId.AnimIndex) : LoadAnim(animId.AnimName, animId.FileName));
 }
 public AnimationState PlayAnim(AnimId animId, bool resetModelStateIfAnimChanged, bool resetAnimStateIfAnimChanged)
 {
     return(PlayAnim(animId.AnimGroup, animId.AnimIndex, resetModelStateIfAnimChanged, resetAnimStateIfAnimChanged));
 }
 public AnimationState PlayAnim(AnimId animId)
 {
     return(PlayAnim(animId.AnimGroup, animId.AnimIndex));
 }