Choose your operating system:
Windows
macOS
Linux
블렌드 스페이스 는 애님 그래프 에서 샘플링 가능한 특수 애셋으로, 두 입력 값에 따라 애니메이션 블렌딩이 가능합니다. 단일 입력에 따른 두 애니메이션 사이의 단순 블렌딩은 애니메이션 블루프린트에서 사용할 수 있는 표준 블렌드 모드 중 하나를 사용하여 가능합니다. 블렌드 스페이스는 (현재는 둘로 제한되어 있지만) 다수의 값에 따라 다수의 애니메이션에 대해 보다 복잡한 블렌딩을 할 수 있는 방편을 마련해 줍니다.
여기서는 아래와 같이 블렌드 스페이스를 사용하여 캐릭터의 이동 속력과 방향에 따라 걷기/뛰기 애니메이션을 블렌딩하도록 하겠습니다.
단계
여기서는 블루프린트 삼인칭 템플릿 프로젝트에 Animation Starter Pack 를 추가한 것을 사용합니다.
Animation Starter Pack 은 에픽 런처의 마켓플레이스 에서 무료로 받을 수 있습니다.
-
프로젝트의 Content/ThirdPersonBP/Blueprints 폴더에서 ThirdPersonGameMode 를 열고 Default Pawn Class 를 Ue4ASP_Character 로 설정합니다.
이렇게 하면 Animation Starter Pack 프로젝트와 함께 생성된 플레이 캐릭터를 사용할 수 있습니다.
-
레벨에서 ThirdPersonCharacter 를 선택하고 레벨에서 삭제합니다.
레벨에서 이 캐릭터를 지우는 것은, 이전 단계의 캐릭터를 스폰시키기 위함입니다.
-
Content/AnimStarterPack/UE4_Mannequin/Mesh 폴더에서 UE4_Mannequin 에 우클릭 하고 생성 아래 블렌드 스페이스 를 선택하고 이름을 짓습니다.
블렌드 스페이스 애셋은 참조할 스켈레톤 애셋이 필요한데, 여기서는 이 스켈레톤 애셋에서 블렌드 스페이스를 생성하는 단축 방법을 사용하고 있습니다. 그 이름은 MyBlendSpace 입니다.
-
블렌드 스페이스의 애셋 디테일 패널에서 Axis Settings 아래 다음 값을 추가합니다:
Horizontal Axis (가로 축)은 이동 Direction (방향)을 각도 단위로 나타냅니다:
가로 축 세팅
값
Name
Direction
Minimum Axis Value
-180
Maximum Axis Value
180
Number of Grid Divisions
4
Interpolation Time
0
Interpolation Type
Averaged Interpolation
Vertical Axis (세로 축)은 캐릭터의 이동 Speed (속력)을 나타냅니다:
세로 축 세팅
값
Name
Speed
Minimum Axis Value
0
Maximum Axis Value
250
Number of Grid Divisions
4
Interpolation Time
0
Interpolation Type
Averaged Interpolation
-
애셋 브라우저 창에서 Walk_Fwd_Rifle_Ironsights 애니메이션을 끌어 그리드의 중앙 하단 위치에 놓습니다.
그러면 이 블렌드 스페이스에 들어설 때 시작 위치가 됩니다.
-
아래처럼 Walk_Lt_Rifle_Ironsights 애니메이션을 1 위치로, Walk_Rt_Rifle_Ironsights 애니메이션을 2 위치로 끌어 놓습니다.
여기서 좌우로 움직일 때 사용할 애니메이션을 배치합니다.
-
아래처럼 Walk_Bwd_Rifle_Ironsights 애니메이션을 1 과 2 위치로 끌어 놓습니다.
여기서 뒤로 움직일 때 사용할 애니메이션을 배치합니다.
-
애셋 브라우저 에서 Jog_Fwd_Rifle 애니메이션을 그리드 중앙 상단으로 끌어 놓습니다.
이렇게 하면 속력이 최대 250 이면서 좌우로 움직이지 않을 때, 즉 전방으로 뛸 때 다양한 애니메이션을 사용할 수 있습니다.
-
아래처럼 Jog_Lt_Rifle 애니메이션을 1 위치로, Jog_Rt_Rifle 애니메이션을 2 위치로 끌어 놓습니다.
-
아래처럼 Jog_Bwd_Rifle 애니메이션을 1 과 2 위치로 끌어 놓습니다.
-
Content/AnimStarterPack 폴더의 UE4ASP_HeroTPP_AnimBlueprint 를 열고 내 블루프린트 패널에서 Locomotion 그래프에 더블클릭 합니다.
-
Jog 스테이트를 더블클릭하여 그래프를 엽니다.
이 스테이트 머신 에는 이미 Jog 스테이트가, 그 안에는 다양한 Jogging 모션에 대한 블렌드 스페이스가 있습니다.
-
아래와 같이 애셋 브라우저 에서 MyBlendSpace 를 끌어 그래프에 놓고 BS_Jog 블렌드 스페이스를 대체합니다.
기본 블렌드 스페이스는 Walking 스테이트가 포함되어 있지 않지만, 블렌드 스페이스에는 있으니 대체해 줍시다!
-
Content/AnimStarterPack 폴더의 Ue4ASP_Character 를 엽니다.
-
그래프에서 Crouch 라 적힌 부분을 찾아 지우면 경고와 오류가 제거됩니다.
기본적으로 Animation Starter Pack 에는 웅크리기 키 바인딩이 되어 있지만, 우리 프로젝트에는 되어있지 않습니다. 이 예제에서는 웅크려 걷기 기능을 제거하겠습니다.
-
그래프에 우클릭 하고 Left Shift Key Event 를 추가한 뒤, 컴포넌트 탭에서 CharacterMovement 를 끌어 그래프에 놓습니다.
Left Shift 키를 누르고 있으면 걷기에서 달리기로 전환됩니다.
-
CharacterMovement 노드를 끌어 놓고 Pressed 와 Released 에 대한 Set Max Walk Speed 를 각각 250 과 100 으로 설정합니다.
Left Shift 가 눌렸는지에 따라 이동 속력이 변경되고, 그에 따라 게임에서의 캐릭터 이동 속력이 변경됩니다.
-
CharacterMovement 컴포넌트를 클릭한 뒤 디테일 패널에서 Max Walk Speed 를 100 으로 설정합니다.
캐릭터가 걷기 상태로 시작할 수 있도록 기본 이동 속력을 업데이트해 줘야 합니다.
-
컴포넌트 탭에서 CapsuleComponent 를 클릭하고, 디테일 패널에서 Hidden in Game 옵션을 체크합니다.
그러면 게임에서의 콜리전 캡슐 디버그 표시가 꺼집니다.
-
컴파일 후 툴바의 에디터에서 플레이 버튼을 클릭합니다.
최종 결과
에디터에서 플레이하면 WASD 키로 움직이며, 캐릭터는 기본적으로 걸어다니다가 방향을 바꾸면 걷기 애니메이션이 블렌딩됩니다. 서 있을 때 WASD 키를 누르며 왼쪽 Shift 를 누르고 있으면 캐릭터가 걷기/조준 애니메이션에서 낮춘/조준 뛰기 애니메이션으로 블렌딩되어, 사실상 캐릭터의 질주 자세가 됩니다.