2D 블렌드 스페이스
저번 강의에서 Blend 함수를 통해 애니메이션을 블렌딩 해줬지만, 블렌드 스페이스라는 더 좋은 방법이 존재한다.
우선 이를 생성해보자.
블렌드 스페이스를 생성할 때도 기본이 될 스켈레톤 메시를 선택해주어야한다.
생성하고 나면 다음과 같은 화면이 존재하며, 뷰포트 바로 아래 공간이 우리가 작업할 공간이다.
우선 해당 공간에 상하좌우 이동을 할당해보자.
할당할 애니메이션은 우측 하단의 에셋 브라우저에서 가져오면 된다.
할당한 후에는 컨트롤을 누르면 아래와 같이 초록색 X 표가 보이는데, 이를 통해 해당 X가 위치한 곳의 애니메이션이 재생된다.
그리고 블렌드 스페이스 내에 좌측 상단 3가지 중 가운데 표시를 누르면 할당한 내용의 이름을 볼 수 있다.
현재 블렌드 스페이스 좌측과 하단에 None으로 작성되어있는데 이는 우측 Asset Details에서 수정이 가능하다.
수직에 대해서는 Vertical Axis의 값을, 수평에대해서는 Horizontal Axis의 값을 수정해주면 된다.
우선 테스트로 수직은 상하로, 수평은 좌우로 네이밍을 하고 값을 할당했다.
최소는 왼쪽(아래), 최대는 오른쪽(위)에 해당하는 값이다.
그리고 Grid Divisions의 값을 통해 블렌드 스페이스에 추가적인 선을 긋는 것이 가능하다. (Grid 추가)
이제 X표가 위로 가면 앞으로, 뒤로 가면 뒤로, 좌측으로 가면 좌로, 우측으로 가면 우로 간다는 것을 다소 직관적으로 알 수 있다.
그리고 상하좌우 모서리에 위치한 값 또한 직접 설정한 (-1, 1)로 설정된 것을 볼 수 있다.
이를 좀 더 응용해보자.
수평에 대한 값을 각도로, 수직에 대한 값을 속도로 설정해보자.
이러면 캐릭터를 기준으로 원을 생각하면 된다.
현재 위치 기준 (각도가 0이면) 앞으로 이동할 것이고, 현재 위치에서 180 or -180도를 회전하면 뒤로 이동하게 될 것이다.
현재 위치 기준 각도가 -90도이면 완전히 좌측을 바라볼 것이고, 현재 위치 기준 각도가 90도이면 완전한 우측을 바라볼 것이다.
이렇게 바라본 상태의 스피드를 100 (최대값) 으로 설정하고, 스피드가 0 (최소값)일 때는 idle 동작을 할당하여 움직이지 않도록 해주자.
이제 현재 캐릭터 각도에 따라서 자연스럽게 애니메이션이 변경된다.
현재 앞으로 가고 있을 때는 각도가 0이므로 앞으로 가는 애니메이션만 동작할 것이고, 각도가 0에서 -90도로 바뀌고 있다면 이에 맞게 블렌딩되어 점점 좌측으로 이동하는 애니메이션이 동작할 것이다.
속도도 따른 애니메이션도 마찬가지로 속도가 100이다가 0으로 점점 낮아지면 이에 맞게 캐릭터의 움직임이 점차 멈출 것이다.
지금은 걷는 애니메이션과 idle에 대한 애니메이션만 있지만 추가로 뛰는 애니메이션도 넣어보자.
이제 속도에 따라 멈춤 -> 걷기 -> 뛰기가 자연스럽게 이뤄질 것이고 이는 캐릭터의 각도(방향)가 변경될때 마다 자연스럽게 적용된다.
현재 idle의 값에 가까이 위치를 설정하면 캐릭터가 버벅되는 모습이 관찰되어 더 정적인 idle 모션으로 교체해주었다.
이제 이렇게 만든 애니메이션을 실제로 적용시켜주어야 하는데 이는 다음 강의에 이어서 하게 된다.
'Unreal > Udemy 강의' 카테고리의 다른 글
Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 6-10 (0) | 2024.05.01 |
---|---|
Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 6-9 (0) | 2024.05.01 |
Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 6-7 (0) | 2024.04.30 |
Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 6-6 (0) | 2024.04.30 |
Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 6-5 (0) | 2024.04.29 |