보행이동 기반 블렌딩

캐릭터의 걷기에서 달리기 애니메이션 블렌딩에 블렌드 스페이스를 사용하는 예제입니다.

Windows
MacOS
Linux

블렌드 스페이스애님 그래프 에서 샘플링 가능한 특수 애셋으로, 두 입력 값에 따라 애니메이션 블렌딩이 가능합니다. 단일 입력에 따른 두 애니메이션 사이의 단순 블렌딩은 애니메이션 블루프린트에서 사용할 수 있는 표준 블렌드 모드 중 하나를 사용하여 가능합니다. 블렌드 스페이스는 (현재는 둘로 제한되어 있지만) 다수의 값에 따라 다수의 애니메이션에 대해 보다 복잡한 블렌딩을 할 수 있는 방편을 마련해 줍니다.

여기서는 아래와 같이 블렌드 스페이스를 사용하여 캐릭터의 이동 속력과 방향에 따라 걷기/뛰기 애니메이션을 블렌딩하도록 하겠습니다.

EndResultImage.png

단계

여기서는 블루프린트 삼인칭 템플릿 프로젝트에 Animation Starter Pack 를 추가한 것을 사용합니다.

AnimationAssetPack.png

Animation Starter Pack 은 에픽 런처의 마켓플레이스 에서 무료로 받을 수 있습니다.

  1. 프로젝트의 Content/ThirdPersonBP/Blueprints 폴더에서 ThirdPersonGameMode 를 열고 Default Pawn ClassUe4ASP_Character 로 설정합니다.

    BlendSpace1.png

    이렇게 하면 Animation Starter Pack 프로젝트와 함께 생성된 플레이 캐릭터를 사용할 수 있습니다.

  2. 레벨에서 ThirdPersonCharacter 를 선택하고 레벨에서 삭제합니다.

    BlendSpace2.png

    레벨에서 이 캐릭터를 지우는 것은, 이전 단계의 캐릭터를 스폰시키기 위함입니다.

  3. Content/AnimStarterPack/UE4_Mannequin/Mesh 폴더에서 UE4_Mannequin우클릭 하고 생성 아래 블렌드 스페이스 를 선택하고 이름을 짓습니다.

    BlendSpace3.png

    블렌드 스페이스 애셋은 참조할 스켈레톤 애셋이 필요한데, 여기서는 이 스켈레톤 애셋에서 블렌드 스페이스를 생성하는 단축 방법을 사용하고 있습니다. 그 이름은 MyBlendSpace 입니다.

  4. 블렌드 스페이스의 애셋 디테일 패널에서 Axis Settings 아래 다음 값을 추가합니다:

    BlendSpace4.png

    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

  5. 애셋 브라우저 창에서 Walk_Fwd_Rifle_Ironsights 애니메이션을 끌어 그리드의 중앙 하단 위치에 놓습니다.

    BlendSpace5.png

    그러면 이 블렌드 스페이스에 들어설 때 시작 위치가 됩니다.

  6. 아래처럼 Walk_Lt_Rifle_Ironsights 애니메이션을 1 위치로, Walk_Rt_Rifle_Ironsights 애니메이션을 2 위치로 끌어 놓습니다.

    BlendSpace6.png

    여기서 좌우로 움직일 때 사용할 애니메이션을 배치합니다.

  7. 아래처럼 Walk_Bwd_Rifle_Ironsights 애니메이션을 12 위치로 끌어 놓습니다.

    BlendSpace7.png

    여기서 뒤로 움직일 때 사용할 애니메이션을 배치합니다.

  8. 애셋 브라우저 에서 Jog_Fwd_Rifle 애니메이션을 그리드 중앙 상단으로 끌어 놓습니다.

    BlendSpace8.png

    이렇게 하면 속력이 최대 250 이면서 좌우로 움직이지 않을 때, 즉 전방으로 뛸 때 다양한 애니메이션을 사용할 수 있습니다.

  9. 아래처럼 Jog_Lt_Rifle 애니메이션을 1 위치로, Jog_Rt_Rifle 애니메이션을 2 위치로 끌어 놓습니다.

    BlendSpace9.png

  10. 아래처럼 Jog_Bwd_Rifle 애니메이션을 12 위치로 끌어 놓습니다.

    BlendSpace10.png

  11. Content/AnimStarterPack 폴더의 UE4ASP_HeroTPP_AnimBlueprint 를 열고 내 블루프린트 패널에서 Locomotion 그래프에 더블클릭 합니다.

    BlendSpace11.png

  12. Jog 스테이트를 더블클릭하여 그래프를 엽니다.

    BlendSpace12.png

    스테이트 머신 에는 이미 Jog 스테이트가, 그 안에는 다양한 Jogging 모션에 대한 블렌드 스페이스가 있습니다.

  13. 아래와 같이 애셋 브라우저 에서 MyBlendSpace 를 끌어 그래프에 놓고 BS_Jog 블렌드 스페이스를 대체합니다.

    BlendSpace13.png

    기본 블렌드 스페이스는 Walking 스테이트가 포함되어 있지 않지만, 블렌드 스페이스에는 있으니 대체해 줍시다!

  14. Content/AnimStarterPack 폴더의 Ue4ASP_Character 를 엽니다.

  15. 그래프에서 Crouch 라 적힌 부분을 찾아 지우면 경고와 오류가 제거됩니다.

    BlendSpace14.png

    기본적으로 Animation Starter Pack 에는 웅크리기 키 바인딩이 되어 있지만, 우리 프로젝트에는 되어있지 않습니다. 이 예제에서는 웅크려 걷기 기능을 제거하겠습니다.

  16. 그래프에 우클릭 하고 Left Shift Key Event 를 추가한 뒤, 컴포넌트 탭에서 CharacterMovement 를 끌어 그래프에 놓습니다.

    BlendSpace15.png

    Left Shift 키를 누르고 있으면 걷기에서 달리기로 전환됩니다.

  17. CharacterMovement 노드를 끌어 놓고 PressedReleased 에 대한 Set Max Walk Speed 를 각각 250100 으로 설정합니다.

    BlendSpace17.png

    Left Shift 가 눌렸는지에 따라 이동 속력이 변경되고, 그에 따라 게임에서의 캐릭터 이동 속력이 변경됩니다.

  18. CharacterMovement 컴포넌트를 클릭한 뒤 디테일 패널에서 Max Walk Speed100 으로 설정합니다.

    BlendSpace20.png

    캐릭터가 걷기 상태로 시작할 수 있도록 기본 이동 속력을 업데이트해 줘야 합니다.

  19. 컴포넌트 탭에서 CapsuleComponent 를 클릭하고, 디테일 패널에서 Hidden in Game 옵션을 체크합니다.

    BlendSpace18.png

    그러면 게임에서의 콜리전 캡슐 디버그 표시가 꺼집니다.

  20. 컴파일 후 툴바의 에디터에서 플레이 버튼을 클릭합니다.

최종 결과

에디터에서 플레이하면 WASD 키로 움직이며, 캐릭터는 기본적으로 걸어다니다가 방향을 바꾸면 걷기 애니메이션이 블렌딩됩니다. 서 있을 때 WASD 키를 누르며 왼쪽 Shift 를 누르고 있으면 캐릭터가 걷기/조준 애니메이션에서 낮춘/조준 뛰기 애니메이션으로 블렌딩되어, 사실상 캐릭터의 질주 자세가 됩니다.

Select Skin
Light
Dark

새로운 언리얼 엔진 4 문서 사이트에 오신 것을 환영합니다!

문서 사이트에 대한 의견을 모을 수 있는 피드백 시스템을 포함해서 여러가지 새로운 기능을 준비하고 있습니다. 아래 Documentation Feedback 포럼(영문) 또는 언리얼 엔진 네이버 공식 카페(한글) 중 편하신 곳에 의견이나 문제점을 알려 주세요.

새 시스템이 준비되면 알려 드리겠습니다.

네이버 카페
공식 포럼