본문 바로가기
[ Unity ]/- 유니티 실습

유니티 Movement 애니메이션(걷기, 뛰기)

by MRG 2024. 9. 28.
728x90
반응형

 

 

 

▣ 애니메이터(Animator) 설정
Step 1: Animator에서 Blend Tree 만들기
Animator Controller를 생성하고, 캐릭터에 추가합니다.
Base Layer에서 상태(State)를 하나 추가한 후, 그 상태를 Blend Tree로 변경합니다.
Blend Tree를 선택한 후, Blend Tree에서 파라미터를 사용해 애니메이션을 제어합니다.
파라미터로는 Horizontal(A, D 키)과 Vertical(W, S 키)를 사용합니다.


Step 2: Blend Tree에 애니메이션 추가
Blend Type을 2D Simple Directional로 설정합니다.
각각의 방향에 따른 애니메이션 클립을 Blend Tree에 추가합니다.
예를 들어, W 키로 앞으로 이동할 때는 Forward 애니메이션을, S 키로 뒤로 이동할 때는 Backward 애니메이션을 설정합니다.
A는 좌측 이동 애니메이션, D는 우측 이동 애니메이션을 설정합니다.

 

 

 

▣ 코드 설명:
Animator와 CharacterController 컴포넌트 가져오기:
Start()에서 Animator와 CharacterController 컴포넌트를 가져옵니다.
Animator는 Blend Tree에서 사용하는 파라미터들을 설정하기 위해 필요합니다.


Input.GetAxis()로 W, A, S, D 입력을 받기:
Input.GetAxis("Horizontal")은 A/D 키로 인한 좌우 입력을 처리하며, -1은 A, +1은 D입니다.
Input.GetAxis("Vertical")은 W/S 키로 인한 전후 입력을 처리하며, +1은 W, -1은 S입니다.


animator.SetFloat()로 Blend Tree 파라미터 설정:
animator.SetFloat("Horizontal", horizontal)과 animator.SetFloat("Vertical", vertical)로 Blend Tree에서 사용할 파라미터를 업데이트합니다.
Blend Tree에서 이 파라미터들을 기반으로 각 방향에 맞는 애니메이션이 자동으로 전환됩니다.


캐릭터 이동 처리:
transform.right * horizontal과 transform.forward * vertical로 입력된 방향에 따라 캐릭터가 움직이도록 설정합니다.
CharacterController의 Move() 메서드를 사용하여 캐릭터를 실제로 이동시킵니다.

 

 

▣ 애니메이터(Animator) 설정
Step 1: 애니메이터에 달리기 파라미터 추가
Animator Controller에서 걷기와 달리기 애니메이션을 구분하기 위해 isRunning이라는 새로운 Bool 파라미터를 추가합니다.
기존의 Blend Tree는 걷기 상태로 두고, 달리기 상태로 전환하는 트랜지션(Transition)을 만듭니다.
isRunning 값이 true일 때 달리기 애니메이션으로 전환되도록 설정합니다.
isRunning 값이 false일 때 다시 걷기 애니메이션으로 전환됩니다.


Step 2: 달리기 애니메이션 추가
Blend Tree에서 걷기와 달리기를 구분하는 새로운 트리 구조를 설정할 수도 있지만, 단순한 트랜지션으로 처리할 수도 있습니다.
달리기 애니메이션을 Animator에 추가하고, isRunning 값에 따라 달리기 애니메이션을 재생하도록 설정합니다.

 

 

 

▣ 코드 설명:
Shift 입력 감지:
Input.GetKey(KeyCode.LeftShift)를 사용하여 Shift 키가 눌린 상태를 확인합니다.
Shift가 눌리면 isRunning 변수를 true로 설정하여 달리기 모드로 전환하고, 그렇지 않으면 false로 설정하여 걷기 모드로 되돌립니다.


애니메이터 파라미터 업데이트:
animator.SetBool("isRunning", isRunning)을 사용하여 isRunning 상태를 애니메이터에 전달합니다. 이 값에 따라 걷기와 달리기 애니메이션이 전환됩니다.


이동 속도 조정:
달리기 상태일 때 속도를 runSpeed로, 걷기 상태일 때 속도를 walkSpeed로 설정합니다.
isRunning 값에 따라 currentSpeed가 변경되며, 이 값을 이용해 캐릭터의 이동 속도를 결정합니다.

 

https://docs.unity3d.com/kr/560/Manual/class-BlendTree.html

 

블렌드 트리 - Unity 매뉴얼

게임 애니메이션에서는 두 가지 이상의 모션을 블렌드하는 작업을 자주 합니다. 가장 흔한 예로 캐릭터의 속도에 따른 걷기와 달리기 애니메이션 블렌딩을 들 수 있습니다. 또 다른 예로는 캐릭

docs.unity3d.com

https://assetstore.unity.com/packages/3d/characters/survivalist-character-181470

 

Survivalist character | 3D 캐릭터 | Unity Asset Store

Elevate your workflow with the Survivalist character asset from Slayver. Find this & other 캐릭터 options on the Unity Asset Store.

assetstore.unity.com

https://assetstore.unity.com/packages/3d/animations/basic-motions-free-154271

 

Basic Motions FREE | 3D 애니메이션 | Unity Asset Store

Elevate your workflow with the Basic Motions FREE asset from Kevin Iglesias. Find this & other 애니메이션 options on the Unity Asset Store.

assetstore.unity.com

 

728x90
반응형

댓글