유니티 3D 개발일지 2
뭔가 어떤게임을 만들겠다 라고 목표를 정하고 만드는게 아닌데 개발일지라고 적는게 맞는가 싶다. 우선 3d 액션 게임의 기본적인 시스템을 만들기 위해 시작했다. 캐릭터의 모델링과 애니메이션을 적용해보자.
캐릭터 모델링
3D모델링은 할줄모르니 애셋 스토어의 무료 애셋으로 적용해보자. 바나나맨이라는 재미있어 보이는 모델링이 있어 임포트 하였다.
캐릭터 애니메이션
믹사모(https://www.mixamo.com/
)에서 기본 애니메이션을 적용해보자 Idle과 Run부터 믹사모 페이지에 바나나맨 모델링을 업로드하고 원하는 애니메이션을 선택후 다운로드 하면 된다. 모델링과 애니메이션을 따로 구하여 적용하는건 리깅이 안맞을때도 있고 다른 이슈가 발생할 여지가 있으니 이렇게 하였다. 애니메이션의 경우 In Place
항목을 체크하고 다운 받았다. 애니메이션에 의한 이동을 하지 않기 위해서다.
다운받은 파일을 프로젝트 안에 넣고 적용을 해보자 추가한 애니메이션들의 Inspector 창에서 Rig 탭의 AnimationType을 Humanoid로 Avatar Definition을 Copy From Other Avatar로 설정했다. 다른 강좌글을 따라서 하다보니 해당값으로 설정했는데 믹사모에서 캐릭터가 적용된 상태로 애니메이션을 추출한 것이니 Create From This Model로 해도 동작은 되었었다.
이제 애니메이션을 캐릭터에 적용해보자
- Player Object에 Animator Controller를 추가
- Animator 창에서 Idle과 Run을 애니메이션 추가
- Idle과 Run 애니메이션을 Transition으로 서로 연결
- Parameter에 IsRun항목 추가
- Transition의 Condition을 IsRun True/False로 제어
- Player Object에 Animator Component를 추가
- 추가한 Animator Controller 항목을 지정
- Player의 스크립트에서 이동시 Animator의 파라미터값 설정하도록 수정
private Animator charAnimator;
void Start()
{
charAnimator = GetComponentInChildren<Animator>();
}
void Update()
{
float hAxis = Input.GetAxisRaw("Horizontal");
float vAxis = Input.GetAxisRaw("Vertical");
/*... 중략*/
Vector3 inputDir = new Vector3(hAxis, 0, vAxis).normalized;
charAnimator.SetBool("IsRun", inputDir != Vector3.zero);
}
idle과 run 애니메이션이 적용됨을 확인하였다.
반응형