언리얼5에서 기본으로 제공되는 애니메이션 블루프린트인 ABP_Manny
를 이용하여 애니메이션 블루프린트에 대해 정리해보겠다.
ABP_Manny
를 열어보면 아래와 같은 창을 볼 수 있다.
이 포스트에서는 애니메이션 블루프린트가 작동되는 과정과 스테이트 머신에 대해 알아볼 것이다.
(컨트롤 릭과 DefaultSlot은 다음에 알아보겠다.)
스테이트 머신은 스켈레탈 메시의 애니메이션을 스테이트로 분해하여 그래프로 표시해주는 기능으로 각 스테이트는 트랜지션 룰에 따라 한 스테이트에서 다른 스테이트로 이동한다.
위의 사진에서는 Main States
와 Locomotion
이 스테이트 머신에 해당한다. 스테이트 머신은 스테이트와 룰로 구성되며, 더블클릭하여 스테이트 머신의 해부도를 확인할 수 있다.
아래의 사진은 Main States
의 해부도이다.
Entry는 스테이트 머신의 시작점으로 Entry의 회살표를 드래그해서 연결하는 것으로 스테이트 머신이 실행될 때 가장 먼저 실행될 노드를 선택할 수 있다.
스테이트는 캐릭터나 스켈레탈 메시가 정기적으로 드나드는 애님 그래프의 한 부분으로 각 스테이트는 한개의 애니메이션을 가지고 있을 수 있다. 스테이트를 더블클릭해 내부를 확인할 수 있다.
스테이트가 실행할 애니메이션은 스테이트 내부 우측 하단의 에셋 브라우저에서 실행할 애니메이션을 스테이트 내부에 배치하고 애니메이션 핀을 Result에 연결하는 것ㅇ로 지정할 수 있다.
스테이트 외부 테두리에서 선을 끌어(블루프린트와 비슷하게) 스테이트를 연결하거나 새로운 스테이트를 만들 수 있다.
한 스테이트에서 연결된 다른 스테이트로의 전환을 제어하는 규칙으로 선을 끌어 스테이트를 연결할 때 자동으로 성생된다.
더블클릭하여 내부를 확인할 수 있으며, 변수 값에 대한 검사를 통해 true, false 값을 출력하고 이 출력된 값을 통해 스테이트가 해당 트렌지션을 통해 다른 스테이트로 전환 가능한지를 확인한다.
아래는 To Falling
스테이트와 Jump
스테이트 사이의 트렌지션 룰이다.
스테이트 에일리어스는 별도의 진입부 없이 조건을 만족하면 자동으로 접근하는 스테이트이다. 일반적인 스테이트는 동그라미로 표시되는데 반해 양방향 화살표로 표시되며 스테이트 에일리어스를 클릭하면 디테일 패널에서 해당 스테이트가 포함된 스테이트 머신 내의 모든 스테이트의 목록을 확인할 수 있다.(To Land는 같은 스테이트 에일리어스이기 때문에 표시되지 않는다.)
스테이트 에일리어스에서 선택한 스테이트가 실행중일 때 스테이트 에일리어스에 연결된 트랜지션 룰을 만족하면 실행중이던 스테이트에서 스테이트 에일리어스에 연결된 스테이트로 전환된다.
위의 사진에서 To Falling
스테이트 에일리어스에서 선택된 Locomotion
이나 Land
가 실행중일 때 스테이트 에일리어스에서 Fall Loop
스테이트로 연결된 트랜지션 룰인 isFalling 변수가 true가 될 경우 이전에 실행하던 노드에서 Fall Loop
노드로 전환된다.
Main States
스테이트 머신의 Locomotion
스테이트를 더블 클릭해보면 어떤 노드와 연결되어 있는 것을 확인할수 있다. 캐시 포즈는 스테이트 머신을 캐시 포즈로 저장해 다른 스테이트에서 복합적인 애니메이션을 실행할 때 사용한다.
해당 노드를 클릭하면 캐시 포즈가 저장된 곳으로 이동하며 캐시 포즈 저장노드와 연결된 스테이트 머신을 더블 클릭하면 캐시 포즈 노드 실행시 작동될 스테이트 머신을 확인할 수 있다.