Animation Blueprint(이하 애니메이션 블루프린트)는 스켈레톤 메시의 애니메이션을 제어하는 특수 블루프린트이다.
즉, 애니메이션 블루프린트를 통해 스켈레톤에 보일 애니메이션을 결정할 수 있다.
Unity에서 Animation Controller랑 비슷한 느낌이라 보면 될 것 같다.
1. Animation Blueprint 생성
콘텐츠 브라우저에서 우클릭->애니메이션->애니메이션 블루프린트로 생성할 수 있다.
스켈레톤은 원하는 스켈레톤으로, AnimInstance는 직접 만든 AnimInstance를 선택하자.
생성 후 파일을 열면 우리가 만든 AnimInstance에서 선언한 변수들이 노출되어 있는 것을 볼 수 있다.
2. 애니메이션 연결
일단 애니메이션은 에픽 게임즈에서 주는 “애니메이션 스타터 팩”을 가지고 진행할 것이다.
이 파일 기준으로 설명할 것이기 때문에 받고 프로젝트에 적용 후에 아래 글을 읽자
다운로드하였으면 파일 안에 “BS_Jog”라는 블랜드 스페이스 파일이 있을 것이다.
열어보면 아래와 같이 창이 뜰 텐데 하나씩 살펴보면 아래와 같다.
1번
- 2번에 따른 애니메이션을 보여준다.
2번
- Ctrl 키를 누르고 마우스 포인터를 특정 위치에 두면 그 값에 해당하는 애니메이션을 확인할 수 있다.
- X: Direction, Y: Speed 라 되어 있는데 이 값은 좌측 에셋 디테일 -> Axis Settings에서 확인할 수 있다.
- X는 Direction이기 때문에 -180 ~ 180 값을 가지고 있다.
- 180, -180은 반대 방향을 의미하기 때문에 뒤로 움직이는 애니메이션이 재생됨을 볼 수 있다.
- 90, -90은 우측, 좌측을 의미하기 때문에 이에 맞는 애니메이션이 재생되는 걸 볼 수 있다.
- Y는 Speed를 나타내기 때문에 Y축 변화량에 따라 달린다거나 걷는 등의 애니메이션을 블랜딩 할 수 있다.
이제 이 블랜드 스페이스를 생성한 애니메이션 블루프린트로 가져오자.
에셋 브라우저에 검색을 한 뒤 드래그 앤 드랍으로 AnimGraph에 넣을 수 있다.
넣고 난 뒤 우클릭->characteraniminstacne을 검색하면 Direction, Movement Speed를 Getter로 얻을 수 있는데 이걸 BS_Jog에 연결하자.
연결 후 플레이를 해보면 아래와 같이 애니메이션 적용이 되지 않는 걸 볼 수 있다
이유는 우리가 만든 캐릭터에 애니메이션 블루프린트를 지정해주지 않았기 때문이다.
그러므로, 캐릭터 BP(Blueprint)를 열고 메시를 클릭하면 디테일 창에 애니메이션이 있는데
거기에 아래와 같이 생성한 애니메이션 블루프린트를 넣어주자.
3. 결과
달리는 모션만 있다보니 애니메이션이 되게 이상하다.
다음 장에서 State Machine을 이용해서 다른 애님들과 조합하는 방법에 대해 알아보면서 이 문제를 해결해보자.