언리얼 블루프린트(3)

민혁 공부방·2024년 10월 19일

우선 BS(Blend Space)는 여러 애니메이션 동작을 자연스럽게 연출하기 위함으로서, 변수의 값을 통해 Idle, Walk, Run 이렇게 분류할수있다.

만들어준 BS를 애니메이션에 적용시키기 위해서는 ABP에다가 적용을 시켜주면 된다.

보시다시피 새로운 변수(Speed)값으로 연결시켜주면 되는 부분

FSM에서는 캐릭터의 현재 상태를 애니메이션동작에 따라서 바꿔주어야 한다.

위에 사진을보면 '스페이스바'키를 누르면 점프가 되듯이, 스페이스바를 누르면 In Air이 true가 되어야하고, 점프애니메이션 동작이 다 끝나다보면 In Air이 false가 되어야하는데 이것들이 다 상태기 때문에 'Can Enter Transition'을 사용하여야 한다.

보시다시피 Jump Start > Jump Loop > Jump End 로 가게되는데, 애니메이션의 동작의 길이는 'Time Remaining(ratio)'를 들고와주면된다.
ratio는 비율을 나타내는 것이기에 해당 일정동작만큼 진행하게되면 상태를 변환할 수 있다.

칼을 들어야지 공격이 가능하다.
칼을 든 변수(Bool)형태로 상태 전환이 가능하다.


추가적으로 BS_Sword에 Direction과 Speed를 받는 부분은
왼쪽으로 가는 방향 동작과 오른쪽으로 가는 방향 동작들이 전부 다르기 때문에 Direction이라는 변수, 그리고 아까 말했다시피 Speed변수를 통해 Idle, Walk, Run의 동작을 따로 구분하기 위해서 설정해두었다. (Blend Space)

  • Get Control Rotation : 카메라나 캐릭터같은 컨트롤러가 가진 현재의 회전값(Rotation)을 반환하는 함수입니다.
    해당 게임에서는 좌표값이 3개이지만 Forward, Right 방향만 이동하기때문에 방향값 위쪽을 나타내는 'z(Yaw)'를 기준으로 회전을 한다.
  • Make Rotator : 특정한 각도 값(Pitch, Yaw, Roll)을 사용하여 회전값을 만드는 노드

우리가 프로젝트 세팅 > 입력에서 만들었던, 축 매핑에서 WASD키를 통해 MoveForward, MoveRight 을 만들었는데, 그 값을 들고와서 무기를 착용, 해제 중일 때는 동작할 수 없도록 그에대한 bool변수 Can Move를 들고와서 회전을 정규화해주는 노드를 방향으로 잡아서 연결해주는 것이다.


Jumping은 입력 '액션'으로 들어감.
이는 한번만 실행이되는 액션매핑이기 때문.
해당 키를 Press(누름)하게 되면, Jump라는 함수를 동작시키고,
Release(뗌)하게 되면, Stop Jumping이라는 함수를 동작시키는 것.

Sword에 대한 부분은 다음 글에서 쓰겠다.

profile
한번 더 복습하기 위한 개인 공간입니다!

0개의 댓글