유니티

유니티 07. Animation Layer, Blend Tree 실습

채채_._. 2024. 5. 22. 11:22

AnimationLayer

- 씬 제작 및 AnimationController 컴포넌트도 추가.

- Animator에 Walk Layer 추가.

- 게임 실행하면 걷는 애니메이션 생김

 

- Asset에 UpperBodyAvatar을 생성하여 humaniod에서 아래 다리 고정 시킴.

- Animator에 새로운 Layer 생성

- 가중치를 1 / Mask를 해당 Avatar로 설정

- Walk 대기 자세의 애니메이션 추가

- layer 순서 : Base Layer > UpperLayer

- 결과 

  • UpperLayer : 상체 / 대기 애니메이션 재생
  • BaseLayer : 전체 / 걷기 애니메이션 재생

 

Blend Tree 1D

- 이전 실습과 동일하게 새로운 씬을 만들고 AnimationController 컴포넌트도 추가.

- Animator에서 오른쪽 클릭을 하여 BlendTree 생성.

- Blend Tree를 더블 클릭하여 이름을 moveSpeed로 바꿔주고 모션 추가.

- 모션을 3개가지 추가하여 Wait / Walk / Run으로 구성.

- Treshot은 0 / 0.5 / 1로 자동 설정된 것을 알 수 있음.

 

- 걷기와 달리기 구분을 위해 shift 키를 단축키로 등록

  Edit > Project Settings > Input Manager

 

[Script]

- float vertical = Input.GetAxis("Vertical");

  : 앞 뒤 방향키를 누르면 vertical 변수의 값은 -1에서 1 사이의 값.

 

- float offset = 0.5f + Input.GetAxis("Sprint") * 0.5f;

  : shift 키의 입력에 따라 오프셋의 값이 0.5에서 1 사이의 값.

 

- float moveParameter = Mathf.Abs(vertical * offset);

  : 블렌드 트레이에 등록된 애니메이션 이동에 대한 구분이 없기 때문에 vertical 값을 절대값으로 0에서 1 값

    shift 키를 누르지 않으면 최대 0.57 / 누르면 최대 1

 

- Animator.SetFloat("moveSpeed", moveParameter);

  : 스피드 파라미터에 값을 설정할 때 아무것도 누르지 않으면 0이 입력되어 wait 애니메이션 재생.

 

Blend Tree 2D Simple Directional

- 새로운 씬 생성 및 AnimationDirectional 컴포넌트 생성.

- Animator View로 가서 Blend Tree 생성 및 내부로 이동.

- 기존 파라미터를 Horizontal로 설정 / 하나 더 추가하여 Vertical 파라미터 생성.

- 모션 5개로 추가.

- 대기 / 앞으로 걷기 / 뒤로 걷기 / 왼쪽으로 걷기 / 오른쪽으로 걷기 등

- x, y 설정 후 각 방향에 대해 이동이 등록됨.

 

[Script]

 

Blend Tree 2D Freeform Directional

- 새로운 씬 생성 및 2DFreeformDirectional 컴포넌트 생성.

- Animator View로 가서 Blend Tree 생성 및 내부로 이동.

- 기존 파라미터를 Horizontal로 설정 / 하나 더 추가하여 Vertical 파라미터 생성.

- 모션을 9개 추가함.

- Wait, 각각의 방향에 대해 걷기, 앞으로 달리기, 왼쪽으로 달리기, 오른쪽으로 달리기, 뒤로 달리기가 없기에

 뒤로 걷기 다시 설정.

- x,y 설정.

 

[Script]

 

[결과]
- 방향키에 따라 뛰는 것까지 가능.

 

Blend Tree 2D Freeform Catesian

- 새로운 씬 생성 및 2DFreeformCatesian 컴포넌트 생성.

- Animator View로 가서 Blend Tree 생성 및 내부로 이동.

- 기존 파라미터를 Horizontal로 설정 / 하나 더 추가하여 Vertical 파라미터 생성.

- 모션을 3개 더 추가함.

- Wait, 앞으로 달리기, 왼쪽으로 달리기, 오른쪽으로 달리기 모션 추.

- x,y 로 범위 설정.

 

[Script]

- 앞서 작성한 Player2DController과 동일하게 작성.

 

[결과]

- 사선으로 회전해서 뛰기 가능.

'유니티' 카테고리의 다른 글

유니티 09. Terrian Map  (0) 2024.06.05
유니티 08. 3D Animations / Simple Combat  (0) 2024.05.29
유니티 07. Animation Layer, Blend Tree  (0) 2024.05.22
유니티 06. 3D Model / Animations  (0) 2024.05.15
유니티 06. Navigation Mesh 응용  (0) 2024.05.15