[Unity] 3D Model / Animations

Southbig·2023년 3월 27일
0

FBX

Model

Rig

캐릭터의 뼈대를 만들어 심거나 뼈대를 할당하여 캐릭터가 움직일 수 있는 상태로 만드는 것

Optimize Game Object

Animation Type: Generic

Animation Type: Humanoid

Avatar configure - Mapping

Avatar Configure - Muscles & Settings

Animation

Materials

Mecanim Animation System

외부에서 가져온 fbx 모델은 Hierachy 뷰로 드래그 앤 드롭 했을때,
캐릭터, 적, 지형등 화면에 보이는 오브젝트로 활용된다

애니메이션을 재생하기 위한 과정을 살펴보면 fbx 자식으로 애니메이션과 아바타 마스크를 가지게 된다

애니메이션은 애니메이터 컨트롤러에 등록하여 개발자가 원하는 여러상황에 애니메이션이 재생될 수 있도록 설정하게 되고, 설정이 완료된 애니메이터 컨트롤러와 아바타 마스크를 캐릭터 오브젝트의 컴포넌트로 사요되는 애니메이터 컴포넌트에 등록하게 된다

애니메이터 컴포넌트에 등록된 애니메이터 컨트롤러의 여러애니메이션은 스트립트를 이용해 원하는 동작을 상황에 맞게 재생하게 된다

Animator 컴포넌트

Animator controller Asset

Animation Asset (*.anim)

using UnityEngine;

public class PlayerController : MonoBehaviour
{
	private Animator animator;

	private void Awake()
	{
		animator = GetComponent<Animator>();
	}

	private void Update()
	{
		if ( Input.GetKeyDown(KeyCode.I) )
		{
			//animator.Play("Idle");
			animator.SetFloat("moveSpeed", 0.0f);
		}
		else if ( Input.GetKeyDown(KeyCode.R) )
		{
			//animator.Play("RUN00_F");
			animator.SetFloat("moveSpeed", 5.0f);
		}
	}
}

애니메이션 전환 - Play()

Animator.Play()를 이용해 애니메이션을 전환하는 경우
"A 애니메이션에서 B로 전환이 불가능하다"와 같이 모든 애니메이션 제어에 대한 조건을 코드로 작성해야 한다 또한 애니메이션 사이의 관계를 알기가 어렵기 때문에 지양하는 방식이다

애니메이션 전환 - 상태전이(Transition)

profile
즐겁게 살자

0개의 댓글