[Unity] 캐릭터 애니메이션 설정하기 (3D)

네,가능합니다 ㅣ 2024. 10. 25. 17:24

지금 개인과제 중인데, 캐릭터 애니메이션을 적용하려고 하는데 어질어질하다..

 

애니메이터를 잘 몰라서 너무 오래 걸린것같다 ㅜ 그래서 다시 까먹지 않으려고 한번 정리를 해보려고 한다.

 

기본상태, 앞으로갈때, 뒤로갈때의 애니메이션을 설정해보겠다.

 

사실 너무 간단하다 애니메이터를 켜고 각각의 애니메이션 상태(State)를 만들어준 뒤

 

Idle를 기본으로 설정하고 아래와 같이 파라미터에서 float형식의 MoveDirection하나를 만들어주자

 

Idle 상태에서 WalkForward로 전환: MoveDirection이 0보다 클 때

Idle 상태에서 WalkBackward로 전환: MoveDirection이 0보다 작을 때

WalkForward에서 Idle로 전환: MoveDirection이 0일 때

WalkBackward에서 Idle로 전환: MoveDirection이 0일 때

 

예시

 

기본 에서 앞으로걷기 = Greater 0

앞으로걷기 에서 기본 = Greater - 0.01 / Less 0.01

 

기본에서 뒤로걷기 = Less 0

뒤로걷기에서 기본 = Greater -0.01 / Less 0.01

 

그리고 이동방향을 결정하는 코드에서

 

    public void OnMoveInput(InputAction.CallbackContext context)
    {
        if (context.phase == InputActionPhase.Performed)
        {
            curMovementInput = context.ReadValue<Vector2>();

            float moveDirection = curMovementInput.y; // y 값이 앞으로(1), 뒤로(-1)를 결정
            animator.SetFloat("MoveDirection", moveDirection); 
        }
        else if (context.phase == InputActionPhase.Canceled)
        {
            curMovementInput = Vector2.zero;
            animator.SetFloat("MoveDirection", 0); // 0이면 정지
        }