블렌드 스페이스 개요

블렌드 스페이스 애셋 사용 방법 및 여러가지 블렌드 스페이스 애셋 유형에 대한 설명입니다.

Choose your operating system:

Windows

macOS

Linux

Blend Space (블렌드 스페이스)의 목적은 애니메이션 블렌딩을 위해 개별 하드코딩 노드를 만들기보다는, 특정 프로퍼티 또는 조건에 따라 블렌딩을 수행하는 애셋으로 대체하기 위한 것입니다. 애니메이터 또는 프로그래머가 입력, 애니메이션, 애니메이션 사이 블렌딩을 위한 입력 사용 방식을 지정할 수 있도록 함으로써, 사실상 어떤 유형의 블렌딩도 일반 블렌드 스페이스를 사용하여 할 수 있습니다.

이는 언리얼 엔진 3 의 애님 트리가 같은 작업을 처리했던 것과는 완전히 상반되는 것입니다. 복잡한 블렌딩은 새로운 노드 생성을 통해 블렌딩 처리를 해줘야 했습니다. 블렌드 스페이스는 완벽히 범용이라 블렌딩을 결정하는 요소가 각각의 블렌드 스페이스에서 지정되도록 할 수 있습니다. 각 블렌드 스페이스에는 단순히 값을 받는 입력이 있습니다. 이 값은 애니메이션 블루프린트 (의 이벤트 그래프 를 통한) 업데이트 사이클 도중, 게임플레이 코드 구동, 기타 (아래 차트와 같은) 다른 수단으로도 계산 가능합니다. 이로써 매우 유연한 시스템이 가능하며, 사람이 애님 그래프를 만들어 원하는 대로 애니메이션 블렌딩을 할 수 있도록 해줍니다.

Input Flow

위에서 이벤트 그래프나 게임플레이 코드 또는 기타 요소가 각각의 변수들을 구동시켜 블렌드 스페이스의 어떤 포즈를 최종 포즈로 사용할 것인지 결정합니다.

블렌드 스페이스

블렌드 스페이스는 한 축에 각각의 입력 값과, 그래프 상의 다양한 지점에 애니메이션이 위치해 있는 2D 그래프로 생각해 볼 수 있습니다. 블렌딩된 애니메이션은 현재 입력 값으로 나타낸 위치에 따라 그래프 상의 애니메이션 사이 블렌딩을 통해 계산합니다. 플레이어의 이동 속력과 방향에 따라 방향 달리기 애니메이션과 대기 애니메이션을 블렌딩하는 전형적인 예를 들어봅니다.

언리얼 엔진 3 에서는, 방향 블렌딩 노드에 속력 블렌딩 노드를 조합하는 식으로 가능했습니다. 이 노드 각각은 하드 코딩되어 해당 블렌딩 작업만 할 수 있었습니다. 블렌딩에 사용된 값은 코드에 숨겨져 있으므로, 프로그래머가 아니면 블렌딩 트윅을 위한 변경 작업이 불가능했습니다. 그리고 코드에서 값을 변경했다 하더라도, 그것을 활용하는 모든 애님 트리의 해당 노드 모든 인스턴스에 영향을 끼쳤습니다. 이상적인 것과는 거리가 멀지요.

블렌드 스페이스로는, 이와 같은 블렌딩을 하나의 블렌드 스페이스를 사용하여 이뤄낼 수 있습니다. 플레이어의 (아래에 가로 노랑 박스로 나타난) 방향 및 (아래에 세로 노랑 박스로 나타난) 속력이 블렌드 스페이스에 입력으로 전달되는 값이 됩니다. (아래 하양 다이아몬드인) 애니메이션은 이 입력 값에 따라 적절히 블렌딩되도록 구성되어 게임 내 (아래 초록 다이아몬드인) 최종 포즈로 나타납니다.

BlendSpaceDirection.png

아래에서 우리 애님 그래프 에서는 블렌드 스페이스를 구현, 이를 통해 블렌딩을 구동시키는 입력 (이 경우 속력 ) 을 조절할 수 있습니다.

AnimGraphBlendSpace.png

프리뷰어에서와 마찬가지로, 입력 값을 조절하면 블렌드 스페이스의 블렌딩이 변경 및 구동됩니다.

블렌드 스페이스 1D

블렌드 스페이스는 일차원 포맷으로도 만들 수 있는데, 이를 Blend Space 1D (블렌드 스페이스 1D)라 합니다. 이는 포즈나 애니메이션을 몇 개든 블렌딩할 수 있으나, 단일 입력값에 따라 이루어집니다. 블렌드 스페이스 1D 의 사용 예라면, 캐릭터의 이동 방향에 맞춰 자동으로 회전을 설정하도록 하는 경우를 들 수 있습니다. 캐릭터가 횡이동 또는 여러 방향으로 이동할 수 없다면, 블렌드 스페이스 1D 를 사용하여 (아래에서 보이듯이) 하나의 Speed 값에 따라 걷기에서 달리기로 블렌딩시킬 수 있습니다.

축이 둘이 아닌 하나라는 점만 제외하면, 블렌드 스페이스 1D 는 표준 2 축 블렌드 스페이스와 똑같습니다.

언리얼 엔진 문서의 미래를 함께 만들어주세요! 더 나은 서비스를 제공할 수 있도록 문서 사용에 대한 피드백을 주세요.
설문조사에 참여해 주세요
취소