Unity3D_MMO - Animation (2)

k_hyun·2022년 10월 11일
0

Unity_MMO_Project

목록 보기
6/33

Animation Blending

여러 애니메이션을 섞어 자연스러운 동작 연출을 위해 사용한다.

Animator에서 From New Blend Tree를 선택하여 노드를 생성한다.

Blend Tree에서 섞을 애니메이션을 추가해주고 Parameter를 설정한다.

Parameter의 값이 0에 가까우면 WAIT, 1에 가까우면 RUN의 비율이 더 많아진다.

PlayerController.cs

float wait_run_ratio = 0;

    void Update()
    {
        ...

        if (_moveToDest)
        {
            wait_run_ratio = Mathf.Lerp(wait_run_ratio, 1, 10.0f * Time.deltaTime);
            Animator anim = GetComponent<Animator>();
            anim.SetFloat("wait_run_ration", wait_run_ratio);
            anim.Play("WAIT_RUN");
        }
        else
        {
            wait_run_ratio = Mathf.Lerp(wait_run_ratio, 0, 10.0f * Time.deltaTime);
            Animator anim = GetComponent<Animator>();
            anim.SetFloat("wait_run_ration", wait_run_ratio);
            anim.Play("WAIT_RUN");
        }
    }

wait_run_ration의 값을 Lerp함수를 사용하여 변화를 주었다.

그 값을 animator의 BlendTree의 wait_run_ration parameter에 넘겨주어 애니메이션을 섞도록 한다.

실행 결과

플레이어가 갑자기 멈추는 모션을 취하지 않고 자연스럽게 멈추는 모션을 취했다.

0개의 댓글