본문 바로가기
게임 프로그래밍/게임개발 중급

게임개발 중급(60) - Monster Killer(22)

by jyppro 2023. 6. 23.

Monster Killer(22)

어제는 몬스터가 움직임에 따라 카메라, 즉 플레이어의 시점도 따라 움직이도록 만들어 보았습니다. 오늘은 몬스터가 움직이는 애니메이션을 만들어 주고, 다른 애니메이션들과 자연스럽게 이어지도록 만들겠습니다.

 

애니메이션 만들기

제가 그동안 몬스터 애니메이션에 대해 이야기 할 때, 이미 있는 에셋을 사용했기 때문에 만들어진 애니메이션을 연결하는 것만 알려드렸는데, 다시 애니메이션 파트를 이야기 하게 된 김에 애니메이션을 만드는 과정에 대해서 말해볼까 합니다.

 

유니티에서 애니메이션을 만드는 방법에는 여러 가지 방법이 있습니다. 가장 일반적인 방법은 아래와 같은 단계를 따르는 것입니다:

1. 애니메이션 클립 만들기
애니메이션 클립을 만들 폴더를 선택한 후, 우클릭하여 "Create" > "Animation"을 선택합니다.
생성된 애니메이션 클립 파일을 더블 클릭하여 애니메이션 창을 엽니다.

 

2. 애니메이션 창에서 애니메이션 제작
애니메이션 창에서 애니메이션 클립의 시간축을 조작하여 키프레임을 추가하고 편집합니다.

 

3.애니메이션 컨트롤러 만들기
유니티 에디터에서 프로젝트 창에서 Controller 폴더를 만들거나 기존 폴더를 사용합니다.
애니메이션 컨트롤러 파일을 만들 폴더를 선택한 후, 우클릭하여 "Create" > "Animator Controller"를 선택합니다.
생성된 애니메이션 컨트롤러 파일을 더블 클릭하여 애니메이션 컨트롤러 창을 엽니다.

 

4.애니메이션 컨트롤러 창에서 애니메이션 연결
애니메이션 컨트롤러 창에서 애니메이션 클립을 드래그 앤 드롭하여 애니메이션 스테이트를 생성합니다.
스테이트를 연결하여 원하는 순서로 애니메이션을 전환하도록 설정합니다.
파라미터를 추가하여 조건에 따라 애니메이션을 전환할 수도 있습니다.

 

5.애니메이션 컨트롤러를 캐릭터에 적용
애니메이션 컨트롤러를 캐릭터에 적용하기 위해 Animator 컴포넌트를 캐릭터에 추가합니다.
애니메이션 컨트롤러 파일을 Animator 컴포넌트의 Controller 속성에 할당합니다.

 

쉽게 정리하자면, 애니메이션 클립을 만들고 클립으로 애니메이션을 만들고 애니메이션 컨트롤러를 만들고 넣어준 뒤에 컨트롤러를 애니메이션을 플레이 할 캐릭터에 들어있는 Animator 컴포넌트에 연결시켜 주면 됩니다.

 

걷는 애니메이션

기존에는 idle에서 attack, die등 한쪽에서만 갈래가 뻗어나왔지만, 이제는 몬스터가 idle 이외에도 걸어다니는 애니메이션을 추가해 주어야 합니다. 이전에 작성했던 MonsterMovement 스크립트에 애니메이터를 연결시키고, bool타입 파라미터 Move를 통해 움직일 때 애니메이션을 재생하도록 만들어 줍니다. 

 

하지만, 이렇게만 하면 실행시켰을 때 움직임이 상당히 부자연스러워 집니다. 그 이유는 idle에서 걷는 애니메이션 갈래가 하나 늘어난 상태이기 때문에 걷는 애니메이션에서 다른 애니메이션을 거쳐가려면 idle를 지나쳐 가기 때문입니다.

 

그렇기에 저희는 walk 애니메이션에도 idle과 같이 갈래를 만들어 주고, HasExitTime을 적절하게 체크해제 시켜줘야 합니다. 제가 만든 애니메이션 트리는 이렇게 생겼습니다.

애니메이션-트리
애니메이션 트리

이렇게 만들고 게임을 실행시켜 확인해보도록 하겠습니다.

 

게임 실행

걷는-애니메이션
걷는 애니메이션

walk 애니메이션이 잘 작동하는 모습을 확인할 수 있습니다.

공격-애니메이션
공격 애니메이션

움직임과 공격 등 다른 애니메이션들과 트랜지션이 자연스럽게 이어지는 것을 확인 할 수 있었습니다.

 

<NEXT>

오늘은 몬스터 움직임에 따라 걷는 애니메이션을 연결시켜 주고, 다른 애니메이션과의 트랜지션이 자연스럽게 이루어 지도록 연결시켜주는 과정을 다뤄보았습니다. 다음은 기존에 만들었던 UI를 업그레이드 혹은 추가하는 과정을 진행해보겠습니다. 감사합니다.