1D 블렌딩
다이렉트 블렌딩

2D 블렌딩

블렌드 노드(Blend Node)인스펙터(Inspector) 에 있는 첫 번째 옵션은 블렌드 타입(Blend Type) 입니다. 드롭다운을 사용하여 한두 개의 파라미터에 따라 블렌드할 수 있는 여러 블렌드 타입 중 하나를 선택합니다. 2D 블렌딩은 두 개의 파라미터에 따라 자식 모션을 블렌드합니다.

2D 블렌드 타입은 각각 적합한 용도가 있습니다. 각 2D 블렌드 타입은 각각의 모션에 영향을 미치는 정도가 다릅니다.

2D Simple Directional: 모션이 “앞으로 걷기”, “뒤로 걷기”, “왼쪽으로 걷기”, “오른쪽으로 걷기”, 또는 “위로 겨냥”, “아래로 겨냥”, “왼쪽으로 겨냥”, “오른쪽으로 겨냥” 같은 다른 방향을 가리킬 때 가장 유용합니다. 부수적으로 포지션 (0, 0)에서 “대기 상태”나 “똑바로 겨냥” 같은 싱글 모션이 포함될 수 있습니다. 심플 디렉셔널 타입에서는 “앞으로 걷기”와 “앞으로 뛰기” 같이 같은 방향으로 여러 모션을 가져서는 안 됩니다.

2D Freeform Directional: 이 블렌드 타입도 모션이 다른 방향을 표시할 때 사용되지만, “앞으로 걷기”, “앞으로 뛰기”와 같이 같은 방향에 여러 모션을 가질 수 있습니다. 프리폼 디렉셔널 타입에서 모션 설정은 “대기 상태”와 같은 포지션 (0, 0)에 싱글 모션을 항상 포함해야 합니다.

2D Freeform Cartesian: 모션이 다른 방향을 가리키지 않을 때 가장 유용합니다. 프리폼 카르테지안에서 X 파라미터와 Y 파라미터는 각속도와 리니어 속도와 같이 다른 컨셉을 가리킬 수 있습니다. “앞으로 걷고 돌지 않기”, “앞으로 뛰고 돌지 않기”, “앞으로 걷고 오른쪽으로 돌기”, “앞으로 뛰고 오른쪽으로 돌기” 등과 같은 모션을 예로 들 수 있습니다.

Direct: 블렌드 트리의 타입은 각 노드의 가중치를 직접 컨트롤하게 합니다. 얼굴 표정이나 랜덤한 대기 상태의 블렌딩에 유용합니다.

블렌드 타입을 설정한 후 가장 먼저 해야 될 것은 블렌드 트리를 제어할 두 애니메이션 파라미터를 선택하는 것입니다. 예제에서 파라미터는 velocityX(strafing), velocityZ(forward speed)입니다.

+ -> 모션 필드 추가(Add Motion Field) 를 클릭한 다음, 블렌드 트리에 애니메이션 클립을 추가하기 위해 개별 애니메이션을 추가할 수 있습니다. 작업을 마치면 다음과 같이 나타나야 합니다.

다섯 가지 애니메이션 클립을 포함한 2D 블렌드 노드
다섯 가지 애니메이션 클립을 포함한 2D 블렌드 노드

2D 블렌딩에서 포지션은 하나의 값 대신 두 파라미터에 각각 상응하는 두 개의 값이 존재한다는 점을 제외하면 1D 블렌딩의 임계값과 같습니다. 수평 X축에 대한 포지션은 첫 파라미터에 상응하고 수직 Y축에 대한 포지션은 두 번째 파라미터에 상응합니다. 앞으로 걸어가는 애니메이션이 0의 속도 X값과 1.5의 속도 Z값을 가진 경우 이 값을 모션에 대한 Pos X 및 Pos Y의 숫자 필드에 입력해야 합니다.

2D 블렌딩 다이어그램(2D Blending Diagram)

인스펙터 상단의 다이어그램은 2D 블렌드 스페이스에서 자식 모션의 포지션을 나타냅니다. 모션은 파란 점으로 보입니다. 애니메이션 클립이 없는 모션 또는 블렌드에 아무 영향도 미치지 않도록 할당된 블렌드 트리는 회색 점으로 보입니다. 다이어그램에서 점을 클릭해 모션을 선택할 수 있습니다. 선택한 경우 블렌딩 스페이스에서 각 포인트에 대한 모션의 영향은 파란 필드로 시각화됩니다. 모션의 위치에 해당되는 부분이 가장 강한 영역이며 최대치의 영향을 가지는 위치입니다. 이 때 해당 애니메이션의 가중치는 1이며 나머지는 0의 가중치를 가집니다. 멀어지는 경우 다른 모션들의 영향력이 커지면서 해당 영향력이 줄어듭니다.

블렌드 노드 인스펙터 상단의 다이어그램은 파라미터 값의 범위 위에 자식 모션의 가중치를 표시합니다.
블렌드 노드 인스펙터 상단의 다이어그램은 파라미터 값의 범위 위에 자식 모션의 가중치를 표시합니다.

빨간 점은 두 파라미터(Parameters) 값을 나타냅니다. 인스펙터(Inspector) 하단의 미리보기(Preview) 에서 재생(Play) 을 누르고 다이어그램 주변에 빨간 점을 드래그하면, 파라미터 값이 다른 모션의 블렌딩을 어떻게 컨트롤하는지 확인할 수 있습니다. 또한 다이어그램에서 각 모션의 영향력이 각 모션 주변의 원으로 표시되는 것을 확인할 수 있습니다. 빨간 점을 모션을 나타내는 하나의 파란 점 위로 옮기면, 모션의 원이 최대로 커지고 모든 다른 모션의 원이 수축하고 사라지는 것을 확인할 수 있습니다. 여러 모션 사이에 있는 포지션에서, 인근 모션의 멀티플이 블렌딩에 영향을 미칩니다. 모션의 파란 영향력 필드를 확인하기 위해 모션 중 하나를 선택하면 빨간 점을 주변으로 움직인 것처럼, 영향력 필드가 다양한 포지션에서 어떻게 힘이 작용하는지 모션의 원 크기가 정확하게 반응합니다.

모션을 선택하지 않았을 때 싱글 모션에 지정된 경우 더 진한 파란색이며, 다양한 모션이 블렌딩되는 경우 더 연한 파란색으로 다이어그램에 모든 영향력 필드가 혼합된 것을 보여줍니다.

포지션(Positions)

다이어그램에서 해당 모션에 상응하는 파란 점을 클릭하고 주변으로 드래그해서 모션의 포지션을 변경할 수 있습니다. 또한 Pos X와 Pos Y 열에서 숫자 필드에 숫자를 입력해 모션 리스트에서 모션의 포디션 좌표를 편집할 수 있습니다.

포지션 계산(Compute Positions) 드롭다운을 통해 애니메이션 클립의 루트 모션에서 획득한 선택 데이터로부터 포지션을 설정할 수 있습니다. 스피드, 속도 x, y, z, 각도 또는 라디안에서 각속도 등의 데이터를 선택할 수 있습니다. 파라미터 중 하나 또는 두 개 모두가 프로퍼티 중 하나에 대응된다면, 컴퓨트 포지션 드롭다운으로 Pos X 또는 Pos Y를 산출할 수 있습니다.

프로퍼티: 기능:
Velocity XZ velocity.x에 따른 각 모션의 Pos X 및 velocity.z에 따른 Pos Y를 설정합니다.
Speed And Angular Speed (초당 라디안) 각 속도에 따른 각 모션의 Pos X 및 스피드에 따른 Pos Y를 설정합니다.

게다가 다른 쪽은 변경하지 않으면서 한 번에 한 쪽만 자동 계산되도록 Compute Position -> X Position From__과 Compute Position -> Y Position From__을 선택해 조합할 수 있습니다.

프로퍼티: 기능:
Speed (속도 규모) 스피드에 따라 각 모션의 Pos X 또는 Pos Y를 설정합니다.
Velocity X velocity.x에 따라 각 모션의 Pos X 또는 Pos Y를 설정합니다.
Velocity Y velocity.y에 따라 각 모션의 Pos X 또는 Pos Y를 설정합니다.
Velocity Z velocity.z에 따라 각 모션의 Pos X 또는 Pos Y를 설정합니다.
Angular Speed(Rad) 초당 라디안 각 속도에 따라 각 모션의 Pos X 또는 Pos Y를 설정합니다.
Angular Speed (Deg) 초당 각도 각속도에 따라 각 모션의 Pos X 또는 Pos Y를 설정합니다.

예를 들어, 파라미터가 측면 속도 및 정면 속도와 상응하고 평균 속도 (0, 0, 0)의 대기 상태 애니메이션과 (0, 0, 1.5)의 걷는 애니메이션이 있으며, 각각 (–1.5, 0, 0) 및 (1.5, 0, 0) 속도의 두 총을 쏘는 애니메이션이 있다고 가정합니다. 드롭다운에서 Velocity XZ 옵션을 선택해 해당 속도의 X, Z 좌표에 따른 모션 포지션을 설정합니다.

1D 블렌딩
다이렉트 블렌딩