public void GenerateStateChangeEvents(ref CharAnimState animState) { if (animState.charLocoState != previousLocoState) { if (animState.charLocoState == CharacterPredictedState.StateData.LocoState.DoubleJump) { onDoubleJump = true; } if (animState.charLocoState == CharacterPredictedState.StateData.LocoState.Stand || animState.charLocoState == CharacterPredictedState.StateData.LocoState.GroundMove) { if (previousLocoState == CharacterPredictedState.StateData.LocoState.InAir || previousLocoState == CharacterPredictedState.StateData.LocoState.DoubleJump) { onLand = true; } } if (animState.charLocoState == CharacterPredictedState.StateData.LocoState.Jump) { onJumpStart = true; } previousLocoState = animState.charLocoState; } }
CharacterAnimationState GetAnimState(ref CharAnimState presentationState) { // Set animation state var animState = CharacterAnimationState.Stand; switch (presentationState.charLocoState) { case CharacterPredictedState.StateData.LocoState.Stand: animState = CharacterAnimationState.Stand; break; case CharacterPredictedState.StateData.LocoState.GroundMove: animState = CharacterAnimationState.Run; break; case CharacterPredictedState.StateData.LocoState.Jump: animState = CharacterAnimationState.Jump; break; case CharacterPredictedState.StateData.LocoState.DoubleJump: animState = CharacterAnimationState.InAir; break; case CharacterPredictedState.StateData.LocoState.InAir: animState = CharacterAnimationState.InAir; break; case CharacterPredictedState.StateData.LocoState.Dead: animState = CharacterAnimationState.Dead; break; } return(animState); }
void DebugSceneView(CharAnimState animState) { if (m_template.footIK.debugIdlePos) { var rotation = Quaternion.Euler(0f, animState.rotation, 0f); var leftIdlePos = rotation * m_template.footIK.leftToeStandPos + animState.position; var rightIdlePos = rotation * m_template.footIK.rightToeStandPos + animState.position; DebugDraw.Sphere(leftIdlePos, 0.01f, Color.green); DebugDraw.Sphere(leftIdlePos, 0.04f, Color.green); DebugDraw.Sphere(rightIdlePos, 0.01f, Color.red); DebugDraw.Sphere(rightIdlePos, 0.04f, Color.red); } if (m_template.footIK.debugRayCast) { DebugDraw.Sphere(m_LeftFootPos, 0.025f, Color.yellow); DebugDraw.Sphere(m_RightFootPos, 0.025f, Color.yellow); DebugDraw.Sphere(m_LeftHit.point, 0.015f); DebugDraw.Sphere(m_RightHit.point, 0.015f); Debug.DrawLine(m_LeftHit.point, m_LeftHit.point + m_LeftHit.normal, Color.green); Debug.DrawLine(m_RightHit.point, m_RightHit.point + m_RightHit.normal, Color.red); } }
public void Update(Vector3 target, Settings settings, CharAnimState animationState, AnimationScriptPlayable playable) { var job = playable.GetJobData <AimDragJob>(); job.settings = settings; job.animState = animationState; playable.SetJobData(job); }
public void Update(CharAnimState animState, Settings settings, AnimationScriptPlayable playable) { var job = playable.GetJobData <BankingJob>(); job.animState = animState; job.bankAmount = animState.banking; job.settings = settings; playable.SetJobData(job); }
void DebugUpdatePresentation(CharAnimState animState) { if (debugStandIk.IntValue > 0) { var charIndex = s_Instances.IndexOf(this); var lineIndex = charIndex * 3 + 3; var debugString = "Char " + charIndex + " - IK Offset: " + animState.footIkOffset.x.ToString("0.000") + ", " + animState.footIkOffset.y.ToString("0.000"); DebugOverlay.Write(s_DebugColors[charIndex % s_DebugColors.Length], 2, lineIndex, debugString); GameDebug.Log(debugString); } }
public void Update(ref CharAnimState animState) { // Set supported animation state bools for (var i = 0; i < m_supportedAnimStates.Length; i++) { m_animatorController.SetBool(m_supportedAnimStates[i].hash, animState.charLocoState == m_supportedAnimStates[i].state); } // Set supported action state bools for (var i = 0; i < m_supportedActionStates.Length; i++) { m_animatorController.SetBool(m_supportedActionStates[i].hash, animState.charAction == m_supportedActionStates[i].action); } // Set supported triggers if (animState.charAction != m_lastActionTriggered || animState.charActionTick != lastActionTick) { // Clear last trigger if (m_lastActionTriggered != CharacterPredictedState.StateData.Action.None) { m_animatorController.ResetTrigger(m_supportedActionTriggers[(int)m_lastActionTriggered]); } m_lastActionTriggered = CharacterPredictedState.StateData.Action.None; // Trigger new action trigger if it is supported if (m_supportedActionTriggers[(int)animState.charAction] != 0) { m_lastActionTriggered = animState.charAction; m_animatorController.SetTrigger(m_supportedActionTriggers[(int)m_lastActionTriggered]); } } lastActionTick = animState.charActionTick; m_animatorController.SetBool(m_sprintState, animState.sprinting == 1); if (animState.damageTick > m_lastReactionTick + m_waitFor) { m_animatorController.SetTrigger(m_hitReaction); m_lastReactionTick = animState.damageTick; Random.InitState(animState.damageTick); m_waitFor = Random.Range(4, 6); } }
public static void Update(ItemActionTimelineTrigger behavior, CharAnimState animState) { var newAction = behavior.m_prevAction != animState.charAction; var newActionTick = behavior.m_prevActionTick != animState.charActionTick; if (newAction || newActionTick) { PlayableDirector director; if (behavior.m_actionTimelines.TryGetValue(animState.charAction, out director)) { if (behavior.m_currentActionTimeline != null && director != behavior.m_currentActionTimeline) { behavior.m_currentActionTimeline.Stop(); } behavior.m_currentActionTimeline = director; behavior.m_currentActionTimeline.time = 0; behavior.m_currentActionTimeline.Play(); } } behavior.m_prevAction = animState.charAction; behavior.m_prevActionTick = animState.charActionTick; }