캐릭터 애니메이션 블루프린트 의 애님 그래프 에서 블렌드 노드 를 사용해 여러 소스의 애니메이션 포즈를 함께 블렌딩하여 새 애니메이션 포즈를 생성할 수 있습니다.

각 블렌드 노드를 사용하면, 그 노드의 포즈 입력 핀 을 통해 여러 애니메이션 포즈를 입력하여 블렌딩된 포즈를 생성하고, 이 포즈를 노드의 출력 포즈 핀 에서 액세스할 수 있습니다.

일부 블렌드 노드는 둘 이상의 애니메이션 포즈를 받아들이고 블렌딩할 수 있으며, 애님 그래프 에서 이러한 노드를 우클릭 하고 블렌드 핀 추가(Add Blend Pin) 를 선택하여 다른 포즈 입력 핀을 추가할 수 있습니다.

또한, 제거하려는 특정 입력 핀을 우클릭 하고 컨텍스트 메뉴에서 블렌드 핀 제거(Remove Blend Pin) 를 선택하여 추가 포즈 입력 핀을 제거할 수도 있습니다.
블렌드 노드를 사용하는 동안 알파(Alpha) 값 을 사용하여 블렌딩 정도를 제어할 수 있습니다. 변수 입력 노드나 노드의 디테일 패널에서 알파 프로퍼티를 선택하고 값을 입력하여 블렌드 노드의 알파 값을 수동으로 할당할 수 있습니다. 또한, 알파 변수 노드를 애님 그래프 에서 알파 입력 핀에 연결하여 블렌드 노드의 알파 값을 할당할 수도 있습니다. 알파 값이 0이면 일반적으로 주 포즈를 선호하며, 1이면 보조 포즈를 선호합니다.

추가 애니메이션 데이터를 통합할 수 있는 고급 블렌드 노드를 사용하면 프로젝트에서 고유한 애니메이션 블렌딩 결과를 생성할 수 있습니다. 여기서는 언리얼 엔진 에서 애니메이션 포즈 블렌딩에 사용할 수 있는 블렌드 노드에 대한 레퍼런스를 확인할 수 있습니다.
블렌드 노드
회색 타이틀 컬러로 분류된 표준 블렌드 노드는 노드별 파라미터를 기반으로 단순한 애니메이션 포즈 블렌딩을 수행합니다. 여기서는 애님 그래프 에서 애니메이션 포즈를 블렌딩하기 위해 프로젝트에서 사용할 수 있는 표준 블렌드 노드 목록을 참조할 수 있습니다.
애디티브 적용
Apply Additive 노드와 Apply Mesh Space Additive 노드 모두 알파 값에 기반하여 베이스-노멀 애니메이션 포즈에 애디티브 포즈를 추가합니다.
노드 입력 핀을 사용하여 적용할 베이스(Base) 포즈와 애디티브(Additive) 포즈를 연결할 수 있습니다.
Apply Additive 노드는 LOD 한계치 시스템의 영향도 받습니다. Apply Additive 및 Apply Mesh Space Additive 의 디테일(Details) 패널에서 블렌딩이 발생하는 LOD 레벨 한계치를 조정할 수 있습니다.
또한, Make Dynamic Additive 노드를 사용하여 애디티브 애니메이션 포즈를 네거티브로 블렌딩할 수도 있습니다. 이 노드를 사용하면 베이스 포즈에서 애디티브 포즈를 빼서 출력 포즈를 생성할 수 있습니다.

Make Dynamic Additive 노드의 디테일 패널에서 노드가 메시 스페이스(Mesh Space) 에서 작동하도록 활성화할 수도 있습니다.
블렌드
표준 Blend 노드는 Alpha 입력 핀의 알파 값을 기반으로 입력 우선순위 가중치를 조정하는 두 입력 포즈의 간단한 조합입니다.

애니메이션 포즈를 A 및 B 입력 핀에 연결하고 Alpha 핀으로 포즈 간의 블렌딩 정도를 제어할 수 있습니다.
채널로 본 블렌딩
Blend Bone by Channel 블렌드 노드를 사용하면 특정 블렌딩 트랜스폼을 적용할 개별 본을 지정할 수 있습니다.

Blend Bone by Channel 노드의 디테일(Details) 패널에서 (+) 추가 를 사용하여 본 정의(Bone Definitions) 섹션을 추가할 수 있습니다. 정의를 생성한 다음에는 트랜스폼 데이터를 가져올 소스 본과 블렌드를 적용할 타깃 본을 정의할 수 있습니다. 또한, 사용할 수 있는 프로퍼티를 토글하여 이동(Translation), 회전(Rotation) 및 스케일(Scale) 같이 블렌드에 통합할 트랜스폼의 측면을 정의할 수도 있습니다. 여기에 더해 월드 스페이스(World Space), 컴포넌트 스페이스(Component Space), 부모 본 스페이스(Parent Bone Space) 및 본 스페이스(Parent Bone Space) 같은 트랜스폼 데이터가 계산되는 트랜스폼 스페이스(Transform Space) 를 정의할 수도 있습니다.
현재 알파 값으로는 블렌드의 가중치를 쉽게 지정할 수 있습니다.
다중 블렌드
Blend Multi 노드를 사용하여 둘 이상의 블렌드 포즈를 다양한 알파 값 사이에서 블렌딩할 수 있습니다.

Blend Multi 노드의 디테일(Details) 패널에서 애디티브 노드(Additive Node) 프로퍼티를 사용하여 노드가 애디티브로 행동하도록 토글할 수도 있습니다.
함수 블렌드 노드
녹색 타이틀 컬러로 분류된 Function Blend 노드는 노드별 파라미터를 기반으로 더 고급 계산 기반 애니메이션 포즈 블렌딩을 수행합니다. 여기서는 애님 그래프 에서 애니메이션 포즈를 블렌딩하기 위해 프로젝트에서 사용할 수 있는 함수 기반 블렌드 노드 목록을 참조할 수 있습니다.
부울로 포즈 블렌딩
Blend Poses by bool 노드는 Boolean 값을 트리거로 사용하여 두 포즈 간에 시간 기반 블렌딩을 수행합니다. Boolean이 true 이면 True Pose 입력 핀에 연결된 포즈를 사용하며, Boolean이 false 이면 False Pose 에 연결된 포즈를 사용합니다. 각 포즈에는 포즈로 블렌딩하는 데 소요되는 시간을 제어하는 float 값인 Blend Time 이 있습니다.

디테일 패널에서 Blend Time 핀을 토글하여 애님 그래프에 표시하고 트랜지션 타입을 설정할 수 있습니다.
인티저로 포즈 블렌딩
Blend Poses by int 노드는 Integer 값을 키로 사용하여 원하는 수의 포즈 간에 시간 기반 블렌딩을 수행합니다. 각 입력 Integer 값에 대해 해당 값의 입력 핀과 연결된 포즈가 사용됩니다. 예를 들어, Integer가 0이면 Blend Pose 0 에 연결된 포즈가 사용됩니다. 각 포즈에는 포즈로 블렌딩하는 데 소요되는 시간을 제어하는 float 값인 Blend Time 이 있습니다.

디테일 패널에서 Blend Time 핀을 토글하여 애님 그래프에 표시하고 트랜지션 타입을 설정할 수 있습니다.
열거형으로 포즈 블렌딩
Blend Poses by Enum 노드는 열거형 (Enum) 값을 키로 사용하여 포즈 간에 시간 기반 블렌딩을 수행합니다. 디폴트 포즈를 사용할 수 있으며, Active Enum Value 핀을 통해 연결된 열거형 내에서 식별된 값에 대해 포즈를 추가할 수 있습니다. 또한, 각 포즈에는 포즈로 블렌딩하는 데 소요되는 시간을 제어하는 float 값인 Blend Time 이 있습니다.

디테일 패널에서 Blend Time 핀을 토글하여 애님 그래프에 표시하고 트랜지션 타입을 설정할 수 있습니다.
본별로 레이어드 블렌딩
Layered blend per bone 노드를 사용하여 정의된 본 세트를 기반으로 원하는 수의 다이내믹 블렌드 포즈 간에 블렌딩할 수 있습니다.

Layered blend per bone 노드의 디테일 패널에서 블렌드 모드를 브랜치 필터(Branch Filter) 또는 블렌드 마스크(Blend Mask) 로 정의할 수 있습니다.

메시 스페이스 회전 블렌드(Mesh Space Rotation Blend) 및 메시 스페이스 스케일 블렌드(Mesh Space Scale Blend) 프로퍼티를 활성화하여 회전(Rotation) 블렌딩과 스케일(Scale) 블렌딩을 메시 스페이스(Mesh Space) 에서 수행할지 로컬 스페이스(Local Space) 에서 수행할지 제어할 수 있습니다.
커브 블렌드 옵션(Curve Blend Options) 프로퍼티를 사용하면 세트 목록에서 커브 블렌드 행동을 설정하여 애니메이션 레이어 블렌드 방식을 제어할 수 있습니다. 아래에서 사용할 수 있는 커브 블렌드 옵션 목록을 참조할 수 있습니다.

블렌드 옵션 | 설명 |
---|---|
오버라이드(Override) | 포즈를 유효한 커브 값이 포함된 마지막 포즈로 오버라이드합니다. |
오버라이드 않음(Do Not Override) | 포즈를 오버라이드하지 않습니다. 원하는 이전 포즈에 커브 값이 없는 경우에 사용하기 가장 적합합니다. |
웨이트로 정규화(Normalize by Weight) | 모든 블렌드 웨이트의 합 으로 포즈 블렌드를 정규화합니다. |
웨이트로 블렌드(Blend by Weight) | 정규화 없이 블렌드 웨이트로 포즈를 블렌딩합니다. |
베이스 포즈 사용(Use Base Pose) | 모든 커브 값에 대해 베이스 포즈(Base Pose) 를 사용합니다. |
최댓값 사용(Use Min Value) | 모든 연결된 포즈에서 최고 커브 값을 선택하여 그 값을 블렌딩에 사용합니다. |
최솟값 사용(Use Min Value) | 모든 연결된 포즈에서 최저 커브 값을 선택하여 그 값을 블렌딩에 사용합니다. |
루트 모션을 블렌딩할 때 루트 본 기반 블렌드 루트 모션(Blend Root Motion Based on Root Bone) 프로퍼티를 활성화하여 루트 본 의 본별 블렌드 웨이트를 통합할 수도 있습니다.
브랜치 필터
브랜치 필터(Branch Filter) 옵션을 사용하면 블렌드가 영향을 미칠 본의 인덱스(Index) 를 정의할 수 있습니다.

브랜치 필터(Branch Filters) 프로퍼티에 엘리먼트를 추가한 다음에는 본 이름(Bone Name) 으로 본을 입력하여 현지화된 애니메이션 블렌딩을 제어하는 레퍼런스 포인트로 사용할 수 있습니다. 블렌드 뎁스(Blend Depth) 프로퍼티를 사용하여 블렌드가 본 이름 의 자손 본에 미치는 가중치를 제어할 수 있습니다.
값 | 예시 | 설명 |
---|---|---|
양수 | ![]() |
블렌드 뎁스 값이 양수이면 같은 본 수로 가중치를 오프셋되고 체인을 통해 본 이름 까지 가중치가 점점 줄어듭니다. 예를 들어, 블렌드 뎁스 값이 2이면 다음 자손 본에 블렌드 웨이트 1이 적용되고 본 이름 에 블렌드 웨이트 0.5가 적용됩니다. |
0 | ![]() |
블렌드 뎁스 값이 0이면 본 이름 및 모든 연결된 자손 본에 블렌드 웨이트 1이 적용됩니다. |
음수 | ![]() |
블렌드 뎁스 값이 음수이면 모든 블렌드 포즈 가 비활성화되고 베이스 포즈 가 선호됩니다. 값이 -1보다 작으면 같은 본 수로 가중치가 오프셋되고 체인을 통해 본 이름 까지 비활성화된 블렌드 웨이트가 점점 줄어듭니다. 예를 들어, 블렌드 뎁스 값이 -2이면 다음 자손 본에 블렌드 웨이트 -1이 적용되고 본 이름 에 블렌드 웨이트 -0.5가 적용됩니다. |
블렌드 마스크
블렌드 마스크(Blend Mask) 옵션을 사용하면 캐릭터의 블렌드 마스크를 베이스 포즈(Base Pose) 와 블렌드 포즈(Blend Poses) 간의 블렌딩을 제어하기 위한 레퍼런스 포인트로 정의할 수 있습니다.

관성화
관성 블렌딩(Inertial blending) 은 포스트 프로세스로 자연스러운 트랜지션을 생성하는 기존 애니메이션 크로스페이딩에 대한 높은 퍼포먼스의 대안입니다. 관성 블렌드가 활성화되면 이후로 소스 포즈는 전혀 평가되지 않습니다. 반면, 기존 블렌딩은 트랜지션 동안 소스 포즈와 타깃 포즈를 모두 평가하여 블렌딩된 포즈로 결합합니다.

관성 블렌딩을 사용하려면 애님 그래프 에서 관성 블렌딩하려는 소스 애니메이션 블렌드 뒤에 Inertialization 노드를 추가하면 됩니다.

Inertialization 노드는 포즈 모션과 커브 변화를 계속 추적하므로 관성 블렌드가 활성화된 경우 계속해서 타깃 애니메이션을 향해 이동할 수 있습니다. 이 노드는 입력 포즈 핀에 연결된 모든 관성 블렌드 요청 에 의해 활성화됩니다. 스테이트 머신 트랜지션, 블렌드 노드, 링크된 애님 그래프 및 링크된 애님 레이어 모두 관성 블렌드를 트리거할 수 있습니다.
Inertialization 노드는 관성 블렌드 요청 소스 뒤에 연결해야 하지만, 바로 뒤에 연결할 필요는 없습니다. Inertialization 노드를 Output Pose 노드에 더 가깝게 미루면 그래프에서 표준 블렌드를 줄이거나 없애고 퍼포먼스를 개선하는 데 도움이 될 수 있습니다. 애님 그래프에 관성화(Inertialization) 요청은 포함되어 있는데 Inertialization 노드가 누락된 경우, 메시지 로그(Message Log) 패널에 런타임 오류가 기록됩니다.

하나의 Inertialization 노드가 많은 관성 블렌드 요청을 처리할 수 있습니다. 요청된 최소 블렌드 기간이 사용됩니다.
관성 블렌딩을 염두에 두고 애니메이션과 그래프를 작성할 때는 나가는 애니메이션이 여전히 움직이고 있을 때 트랜지션을 시작하는 것이 가장 좋습니다. 관성 블렌딩은 부드럽고 자연스럽게 정지 위치로 이징을 처리하므로 중립 포즈로 돌아갈 필요가 없습니다. 관성 블렌딩은 타깃 애니메이션을 향한 모션 이징을 위한 포스트 프로세스 이므로 짧은 블렌딩이 가장 효과적입니다. 관성 블렌드는 다른 관성 블렌드에 의해 중단될 수 있지만, 연속으로 중단이 발생하는 시나리오는 피하는 것이 좋습니다. 왜냐하면 포즈를 안정적으로 유지하기 위해 후속 블렌드 기간이 트리밍될 수 있기 때문입니다.
그래프에 필요에 따라 여러 개의 Inertialization 노드를 배치할 수 있으며, 각 노드는 각자의 소스 포즈에서 오는 관성 블렌드 요청을 처리합니다. 즉, 서로 다른 공간에서 관성 블렌딩을 수행할 수 있습니다. 예를 들어, 캐릭터의 상반신과 하반신에 각각 Inertialization 노드를 지정한 다음 Layered Blend per bone 노드를 사용하여 최종 포즈로 결합할 수 있습니다. 베이스 포즈에 적용하기 전에 Inertialization 노드를 삽입하여 애디티브 포즈와 함께 관성 블렌딩을 사용할 수 있습니다. 최종 포즈를 수정하려면 일반적으로 IK 전에 관성화를 실행하여 IK 스페이스에서 효과적으로 관성 블렌딩을 수행합니다.
관성 블렌딩이 시작되면 소스 포즈에 대한 평가는 중단됩니다. 따라서, 관성 블렌딩이 시작된 후에는 소스 애니메이션 시퀀스의 애니메이션 노티파이가 더는 트리거되지 않습니다. 기존 게임 로직과 애님 노티파이를 관성화와 호환되도록 리팩터링해야 할 수도 있습니다.
블렌드 노드에서 요청
관성화 호환 노드의 디테일( Details) 패널에서 트랜지션 타입(Transition Type) 프로퍼티를 관성화(Inertialization) 로 설정할 수 있습니다. 관성 블렌딩을 사용하려면 애니메이션 그래프에서 해당 블렌딩 노드 뒤 어디에든 Inertialization 노드를 배치해야 합니다.

스테이트 머신 트랜지션에서 요청
스테이트 머신에서 관성 블렌드를 요청할 수 있습니다. 트랜지션 룰의 디테일(Details) 패널에서 블렌드 로직(Blend Logic) 프로퍼티를 관성화(Inertialization) 로 설정할 수 있습니다.

링크 및 레이어드된 애님 그래프에서 요청
관성화 프로퍼티는 애니메이션 레이어나 링크된 애님 그래프에서도 정의할 수 있습니다. 내 블루프린트(My Blueprints) 패널에서 그래프를 선택한 다음에는 디테일 패널에서 프로퍼티 중에 그래프 블렌딩(Graph Blending) 을 찾을 수 있습니다. 애니메이션 레이어는 블렌드 인(in) 또는 아웃(out) 할 수 있지만, 관성 블렌딩 을 통해서만 가능합니다. Inertialization 노드는 이 애니메이션 블루프린트를 링크하는 Linked Anim Layer 노드 뒤 어디에든 배치해야 합니다. 음수 값은 다른 들어오거나 나가는 애니메이션 레이어에 의해 블렌드 시간이 결정됨을 의미합니다.
