애니메이션은 게임에 생동감을 불어넣기 위해 필수적인 요소다. 뛰어난 애니메이션은 보통 수준의 게임과 훌륭한 게임ㅇ르 구분하는 주요 요소 중 하나이다.
애니메이션 블루프린트는 스켈레탈 메시의 애니메이션을 제어할 수 있는 기능을 제공하는 블루프린트의 한 종류이다. 애니메이션 블루프린트는 애니메이션과 관련된 작업에 특화된 그래프를 사용자에게 제공한다. 애니메이션 블루프린트는 이벤트 그래프와 애님 그래프라는 두가지 유형의 그래프를 제공한다.
애니메이션 블루프린트의 이벤트 그래프는 애니메이션과 관련된 설정 이벤트를 제공하며 변수 조작 및 로직을 사용할 수 있다. 이벤트 그래프는 주로 애니메이션 블루프린트 안에서 블렌드 스페이스 값을 업데이트 하는데 사용되며, 이를 통해 애님 그래프 안의 애니메이션을 동작시킨다. 여기서 가장 일반적으로 사용되는 이벤트들은 다음과 같다.
애님 그래프는 프레임 단위로 애니메이션ㅇ르 재생하고 스켈레톤의 최종 포즈를 출력하는 일을 담당한다. 애님 그래프는 다양한 로직을 실행하는 특수한 노드를 제공한다. 예를 들어 블랜드 노드는 여러 입력을 받아 현재 실행에 재생할 애니메이션 입력을 결정하는데 사용한다. 이 결정은 일반적으로 외부 입력(alpha) 에 의해 좌우 된다. 애님 그래프는 사용중인 노드의 실행 핀 사이의 실행 흐름에 따라 노드를 평가해 동작하다.
특정 애니메이션의 재생 시점과 특정 로직의 실행 시점은 누가 결정할까? 바로 스테이트 머신이다.
만약에 플레이어가 웅크린 자세에서 서 있는 자세로 전환할 때는 애니메이션도 따라 업데이트 해야한다. 코드에서 애니메이션 블루프린트를 실행하고, 스테이트 머신에 접근해 애니메이션 상태가 변경되었음을 알리면 애니메이션이 자연스럽게 전환된다. 스테이트 머신은 상태 및 규칙으로 구성되는데, 애니메이션의 상태를 묘사하는 것으로 볼 수 있다. 스테이트 머신은 특정 시점에 항상 하나의 상태에만 있을 수 있다. 특정 조건을 만족하면 한 상태에서 다른 상태로 전환한다.
각 트랜지션 룰에는 result라는 이름의 불리언 노드가 포함된다. 이 불리언 값이 참이면 전환이 발생하고 값이 거짓이면 전환이 발생하지 않는다.
여러 애니메이션이 제공되면, 이를 활용해 스테이트 머신을 만들어 애니메이션을 재생할 수 있다. 하지만 한 애니메이션에서 다른 애니메이션으로 전환해야 할 때 문제가 발생한다. 단순히 애니메이션을 전환하면 전환되는 새 애니메이션의 시작포즈가 이전 애니메이션의 종료 포즈와 다를 수 있기 때문에 여기서 문제가 발생하다. 블랜드 스페이스는 Alpha 값을 기반으로 서로 다른 애니메이션을 보간할 때 사용되는 특별한 애셋이다. 블랜드 스페이스는 앞서 설명한 문제를 해결하고 두 애니메이션 사이를 보간해 애니메이션을 부드럽게 변경한다. 블랜드 스페이스는 1차원 또는 2차원으로 생성된다. 블렌드 스페이스는 1~2개의 입력을 기반으로 원하는 수의 애니메이션을 혼합시킨다.