[Unity]07.레거시 애니메이션

안녕하세요 유랑입니다.



지난 시간에 이어서 캐릭터의 이동을 구현할텐데, 이번에는 애니메이션을 추가해보겠습니다.

유니티에서는 레거시 애니메이션과 메카님 애니메이션이 존재합니다.

* 레거시는 3D Animation Tool을 이용

* 메카님은 모션 캡처애니메이션을 이용




1. 레거시 애니메이션



3D 모델을 불러와 이동시켜 보고 애니메이션을 적용하는 단계까지 왔습니다.

레거시 애니메이션은 휴머노이드에 비해 잘 안쓰이지만, 어떤 방식인지 알아보도록 하겠습니다.




1-1) 애니메이션 불러오기



애니메이션을 불러와 적용해 보도록 하겠습니다.

Import하여 추가시켜 주세요.

여기 처음 오신분들은 05.3D 모델편을 참고해주세요^^







1-2) 애니메이션 세



플레이어 오브젝트를 선택하면 인스펙터뷰에서 다음 항목이 보입니다.

Rig => Animation Type을 통해서 None, Legacy, Generic, Humanoid로 변경가능합니다.

우리는 레거시 애니메이션을 쓸 예정이므로 다음과 같이 바꿔줍니다.






혹시 불러온 캐릭터의 크기가 예상했던 것과 다를 수 있습니다.

Transform에서 스케일 값들을 변경하는 방법도 있지만 이러면 나중에 문제가 생깁니다.

Model => Scale Factor의 비율을 변경하면 해당 오브젝트의 크기가 달라지게 됩니다.







1-3) 애니메이션 적용



애니메이션을 적용해 보겠습니다.

하이어라키뷰에 있는 Player를 클릭해 인스펙터뷰를 확인해 주세요.

Animation과 Animations이 보이실텐데,

Animation은 처음에 동작하는 애니메이션을 의미합니다.

추가적으로 Animations는 Size를 변경해 애니메이션 클립들을 추가 가능합니다.

다음과 같이 추가하고 게임시작을 눌러 확인해보세요.






게임이 시작되면 캐릭터는 Idle 애니메이션을 시작하게됩니다.

Idle 애니메이션 클립은 총을 들고 있는 애니메이션이기때문에 

다음과 같은 화면이 보여집니다.






1-4) 애니메이션 컨트롤



애니메이션 클립을 직접 옮기는 방법은 너무 어려웁니다.

게임상에도 문제가 있구요. 코드 상에서 움직임에 따라 전진, 후진 좌우 애니메이션이 

실행되도록 구성해 보겠습니다

우선 PlayerAnim class를 구성하여 애니메이션 클립들을 모아주었습니다.

이 때 우리가 사용하는 클래스는 PlayerController이므로 인스펙터창에 클립들이 보여지지 않습니다.

[System.Serializable]을 작성하면 인스펙터 뷰에 노출되게 됩니다.

start 함수는 처음에 한번 실행되기 때문에 Idle을 넣어주겠습니다.

그러면 게임 시작시 Idle 애니메이션이 실행되며 키보드 상화좌우 키값에 따라 애니메이션을 실행시켜보았습니다.

추가적으로 Animation은 [HideInInspector]















게임을 실행하게 되면 방향키에 따라 해당 애니메이션이 실행되는걸 볼 수 있습니다.

애니메이션 적용 결과를 보기위해 좌우 회전을 마우스 입력값을 이용해 변경시켜보았습니다.





2. 마무리




오늘 강의는 여기까지입니다.

방향키에 따라 레거시 애니메이션을 동작시켜 보았습니다.

이제 제법 모양새가 잡혔네요. 하지만 총과 총알이 없고, 총도 없네요.

다음 시간에는 이것들을 추가해서 좀더 fps 게임같은 느낌을 살려보겠습니다.

오늘도 고생하셨습니다.

감사합니다.




수업자료: https://github.com/YouRang12/-Tistory-Unity---Basic

댓글

Designed by JB FACTORY