Blend Space 란?

블렌드 스페이스는 애님 그래프에서 샘플링할 수 있는 특수한 애셋으로써 하나, 혹은 두개의 입력값에 따라 애니메이션을 블렌딩시켜 주는 것이다.

하나의 입력에 따라 두 애니메이션을 섞는 단순 블렌딩은 애니메이션 블루프린트에서 사용할 수 있는 표준 블렌드 노드를 사용하면 되지만, 블랜드 스페이스를 통한다면, 다수의 값에 따라 다수의 애니메이션을 블렌딩하는 복잡한 작업을 할 수 있다.

블렌드 스페이스의 목적은 특정 속성이나 조건에 따라 블렌딩을 할 때마다 별개의 노드를 만들거나, 하드코딩을 통해 프로그래머의 부담을 가중시키는 것을 막기 위함이다.

입력, 애니메이션, 애니메이션 끼리의 블렌딩을 위해 입력을 어떻게 사용할 것인지 등을 애니메이터나 프로그래머가 지정할 수 있도록 해, 사실상 어떤 유형의 블렌딩도 범용 블렌드 스페이스를 사용하여 이뤄낼 수 있다.

언리얼 엔진 3에서 애님 트리가 같은 작업을 처리했던 것과 완전히 다른 방식이며, 이전의 언리얼 엔진 3에서는 복잡한 블렌딩은 새로운 노드 생성을 통해 블렌딩 처리를 해줘야 했었다.

하지만, 블렌드 스페이스는 완벽히 범용적인 블렌딩을 결정하는 요소가 각각의 블렌드 스페이스에서 지정되도록 할 수 있다.

각 블렌드 스페이스에는 단순히 값을 받는 입력밖에 없다.

이 값은 애니메이션 블루프린트의 업데이트 사이클 도중에도, 게임플레이 코드 구동중에도, 아래의 차트처럼 다른 수단으로도 계산이 가능하다.

각각의 변수들로 블렌드 스페이스를 통해 최종 포즈를 뽑아낸다.

이로써 매우 유연한 시스템이 가능해졌으며, 직접 애님 그래프를 만들어 원하는 대로 빠르고 편하게 애니메이션을 블렌딩 할 수 있도록 도와준다.

축이 하나인지 두개인지에 따라 블렌드 스페이스와 블렌드 스페이스 1D로 구분된다.

블렌드 스페이스 1D는 그냥 입력값이 하나인 것 뿐이니 블렌드 스페이스로 예제를 만들어 보겠다.

블렌드스페이스 사용법

먼저 블렌드 스페이스는 콘텐츠 브라우저를 오른쪽 클릭해 애니메이션->블렌드 스페이스를 눌러 만들 수 있다.

이렇게 블렌드 스페이스가 만들어졌으면 값에 대한 이름들을 설정해주자.

왼쪽의 가로축 세로축 탭을 열어보면 인풋 각자의 이름, 최댓값, 최솟값, 그리드의 개수, 보간 시간, 보간 방법을 설정할 수있다.

나는 이동에 대한 블렌드 스페이스를 만들기 위해 가로축에는 Rotation, 세로축에는 Speed로 설정한 뒤, Rotation에는 -180부터 180까지 최댓값과 최솟값을 설정하고, Speed는 0부터 600까지 설정하겠다.

블렌드 스페이스의 각 그리드에 오른쪽에있는 애셋 브라우저에서 애니메이션을 끌어다 놓으면 된다.

완성된 블렌드 스페이스는 요렇게 프리뷰 마커를 움직이면 실시간으로 볼 수 있다.

이렇게 만들어진 블렌드 스페이스는 그냥 애니메이션 블루프린트에서 적당한 노드를 만들어 연결만 시켜주면 된다.