[언리얼5 블루프린트] 스테이트 머신을 이용해 상황에 따른 애니메이션 만들기
이전 게시물에선 점프와 달리는 모션만 넣었습니다.
이번에는 상황에 따른 애니메이션을 다양하게 선택해 주도록 만들려 합니다.
캐릭터의 애님 블루프린트에 들어갑니다.
이전 게시물에서 했던 노드를 지우고 State Machine(스테이트 머신) 노드를 연결합니다.
현재 상황에 따라 어떤 애니메이션이 나올지 선택해 주는 머신입니다.
기본상태머신이라고 이름 변경했습니다.
State Machine에 들어갑니다.
블렌드 스페이스로 만든 로코모션을 드래그하여 가져옵니다.
안된다는 빨간 표시는 무시해도 됩니다.
기본으로 있는 Entry와 연결합니다.
테두리 부분에서 화살표를 끌어서 연결할 수 있습니다.
이동에는 좌우, 앞뒤 변수를 연결해줍니다.
이제 점프 애니메이션을 나눠서 점프전, 점프중, 점프후로 만들려고 합니다.
점프키를 눌렀을 때 하나로 된 점프모션이 나오는 것보다 자연스럽습니다.
점프 애니메이션 우클릭 → 생성 → 애님컴포짓 생성을 클릭합니다.
과정을 3번 반복해서 점프다운, 점프업, 점프착지를 만들었습니다.
점프 애니메이션의 초기 단계인 점프업 먼저 만들어보겠습니다.
빨간 버튼을 좌우로 움직이며 시작 시간 및 끝 시간을 조정해 줍니다.
끝 시간은 캐릭터가 지면을 박차고 점프를 하여 최고점에 오른 순간까지입니다.
점프다운도 시작 시간과 끝 시간을 조정해 줍니다.
시작 시간은 점프업의 끝 시간과 동일하며 점프다운의 끝 시간은 지면에 착지하여 동작을 취하기 직전입니다.
마지막으로 점프착지도 시작 시간과 끝 시간을 조정해 줍니다.
점프업의 시작 시간은 점프다운의 끝 시간과 동일하며 점프업의 끝 시간은 1.0으로 애니메이션 끝까지로 설정했습니다.
이제 위에서 만든 State Machine에 점프 동작을 설정해 줄 차례입니다.
애님 블루프린트의 State Machine에 들어가 방금 만든 동작 3가지를 가져옵니다.
이름을 변경해 주고 화살표를 양방향 모두 연결했습니다.
다만 착지 → 점프다운, 점프업 → 이동, 이동 → 점프착지는 불가능하므로 화살표를 연결하지 않았습니다.
이제 화살표 아이콘을 더블클릭 해서 규칙을 만들어야 합니다.
규칙을 통해 각 상태의 전환이 언제, 어디서 이루어질지를 설정하는 과정입니다.
규칙을 모두 만들었습니다.
점프착지 → 이동 화살표를 클릭하여 자동규칙 트리거 시간을 조정합니다.
이 값을 0.2 등 양수로 할 경우 애니메이션으로 끝나기 0.2초 전에 애니메이션이 전환됩니다.
결과적으로 움직임이 자연스러워집니다.
사용한 언리얼 버전: 5.4.1