Exemple #1
0
    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;
        }
    }
Exemple #2
0
        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);
    }
Exemple #5
0
    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;
    }