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); }
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; }
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); }
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); }
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)); }