Development/Unity Engine

[Retro유니티] 플레이어 캐릭터 생성 및 Blend Tree Animator 분석

사이바 미도리 2024. 12. 11. 00:25

미리 준비한 3D 캐릭터 모델을 사용한다.

 

3D 모델 사용하기 & RigidBody/CapsuleCollider/AudioSource Component 넣기

3D모델 에셋은 FBX 파일이다.

해당 파일을 드래그해서 오브젝트를 생성할 수 있다.

 

3D모델로 생성된 Game Object는, Animator Component를 가진다.

Angular Drag: 각 항력 -> 너무 낮으면, 충돌시 휘리릭 회전하는 수가 있다.

Freeze Rotation: Y축에 대해서만 회전가능하게 한다.

 

이제 Collider를 추가하여 물리적 표면을 만들자.

Capsule 형태로 Collider를 만들었다.

 

이제 Audio Source를 넣자.

 

이제 기초중의 기초를 만들었다.

다음은 Animator를 설정하자.

 

Animator 설정

미리 제공된 ShooterAnimiator 애니메이터 컨트롤러를 사용하자.

ShooterAnimator에는 걷기/달리기/재장전/조준에 대한 Animation의 FSM이 정의되어있다.

 

Animator창을 띄우려면, Project > Animations > ShooterAnimator 를 클릭하거나

아니면 Window > Animation > Animator로 띄울 수 있다.

Layer가 2개 있는걸 확인할 수 있는데,

FSM에서는 1개의 State만이 존재할 수 있지만, 여러 FSM을 병렬실행해서 중첩시킬 수 있다.
여러 Animation 상태가 하나의 Game Object에 중첩되게 할 수 있다.

예를 들어, 상반신과 하반신의 Animation을 별도로 유지시킬 수 있다는 말.

 

Layer와 마찬가지로 Parameter도 동일한 방법으로 확인할 수 있는데

Parameter는 Animator 의 State를 transition하는 condition으로 사용된다.

이 Parameter는 Script를 통해 Set 될 것이다.

 

Base Movement 레이어 분석

 

Entry, 즉 처음 Animator가 활성화되면 Movement로 간다.

어떤 State이던지, 사망하면 Die를 재생한다.

Die트리거는 해당 Edge를 클릭하여 확인할수있다.

 

Blend Tree

Die 상태에서는, Human Death Animation Clip 이 할당되어있다.

이렇게, 일반적으로 Animator State마다 Animator Clip이 할당된다.

하지만 평범한 Animator Clip이 아닌, 특수한 Motion(움직임을 나타내는 Asset)의 Animator Clip 을 할당하는것도 가능하다.

 

Blend Tree 모션을 통해 Animation Clip을 혼합할 수 있다.

Blend Tree 를 가진 상태는 아래와 같이 생성할 수 있고,

 

Die는 Animation Clip으로,

Movement 는 Blend Tree가 할당되어있음을 확인가능하다.

Movement를 더블클릭하면, 아래와 같이 Blend Tree의 Graph를 확인할 수 있다.

각 사각형은 Node라고 한다.

Movement Tree Node를 클릭하면, 해당 Movement Tree 의 정보를 알 수 있다.

해당 Movement Tree 의 Blend Type은, 1D이다. 이것은 Parameter를 단 1개만 사용한다는 뜻이다.

=> 속도에 따라, 어느 Animation을 재생할지를 결정한다.

 

Parameter 변화에 따라 실제로 다른 Animation이 재생되는것을 확인할수있다.

 

1.4.6 Upper Body 레이어 또한 유사하다.

이부터는 다음에 공부하기로 한다.