본문으로 건너뛰기

Eye Animation Helpers

Lip sync 외에도 Runtime MetaHuman Lip Sync 플러그인에는 MetaHuman의 눈을 애니메이션화하기 위한 두 가지 선택적 헬퍼 유틸리티가 포함되어 있습니다:

  • Auto Blink: MetaHuman에 자연스럽고 무작위적인 눈 깜빡임을 생성하는 헬퍼
  • Eyes Aim: MetaHuman의 눈이 월드 공간 위치를 바라보게 하는 Animation Blueprint 노드

이 기능들은 lip sync와 완전히 독립적이며, 단독으로 사용하거나 함께 사용하거나 lip sync 노드와 결합하여 사용할 수 있습니다. 이는 수동으로 제작하지 않고도 생생한 눈 동작을 추가할 수 있는 가볍고 즉시 사용 가능한 헬퍼로 설계되었습니다.

기능 미리보기

자동 깜빡임: 자동 눈 깜빡임
눈동자 방향: 플레이어 카메라 추적
눈 조준: 움직이는 대상 액터 따라가기
이러한 헬퍼를 사용해야 하는 경우

이미 립싱크 파이프라인에 깜빡임과 동적 시선 처리가 포함되어 있다면 이 페이지는 건너뛰셔도 됩니다. 이러한 헬퍼는 직접 애니메이션을 제작하지 않고도 생생한 눈동자 움직임을 원할 때, 예를 들어 애니메이션 시퀀스에 깜빡임이 포함되지 않았거나 움직이는 대상을 동적으로 따라가야 하는 눈동자(정적 애니메이션 시퀀스로는 불가능)가 필요할 때 유용합니다. 또한 기존 표정 애니메이션 위에 레이어하여 입만 움직이는 시퀀스에 깜빡임과 같은 누락된 요소를 추가할 수 있습니다.

자동 깜빡임 헬퍼는 MetaHuman Face Control Rig의 CTRL_L_eye_blinkCTRL_R_eye_blink 커브를 구동하여 무작위적이고 자연스러운 눈 깜빡임을 생성합니다.

작동 방식

매 프레임마다 Face Animation Blueprint의 이벤트 그래프에서 Update MetaHuman Auto Blink를 호출하고 해당 프레임의 델타 시간을 전달합니다. 이 함수는:

  1. 호출하는 AnimInstance를 키로 하여 캐릭터별 상태(다음 깜빡임 시간, 현재 열림/닫힘 단계 등)를 추적합니다.
  2. 왼쪽 눈과 오른쪽 눈이 각각 얼마나 감겼는지를 나타내는 0..1 범위의 두 부동 소수점 값을 반환합니다.
  3. 그런 다음 이 값을 Blueprint 변수에 저장하고 Anim Graph의 Control Rig 노드에 전달합니다.

설정

두 단계: 이벤트 그래프에 깜빡임 호출을 추가한 다음, Anim Graph의 Control Rig 노드에 값을 전달합니다.

1. 이벤트 그래프: 매 프레임 깜빡임 값 구동하기

Face Animation Blueprint(예: Face_AnimBP 또는 복제/복사한 버전, 설정 가이드 참조)에서 이벤트 그래프를 열고 Event Blueprint Update Animation에 다음을 추가합니다:

  1. Update MetaHuman Auto Blink 호출
  2. 이벤트의 Delta Time XDelta Seconds에 연결
  3. (선택 사항) Config 구조체를 구성합니다. 기본값도 이미 자연스럽습니다.
  4. Left Blink ValueRight Blink Value를 Blueprint 변수(예: LeftBlinkValue, RightBlinkValue)로 승격시킵니다.

자동 깜빡임 이벤트 그래프 설정

2. Anim Graph: Face Control Rig에 값 전달하기

동일한 Animation Blueprint의 Anim Graph에서:

  1. 눈 깜빡임 커브에 쓸 수 있는 다른 모든 표정 로직(예: Blend Runtime MetaHuman Lip Sync 및 사용자 정의 표정 애니메이션 레이어 이후) 다음Control Rig 노드를 배치합니다.
  2. 노드의 세부 정보 패널에서 Control Rig Class를 MetaHuman 얼굴 Control Rig로 설정합니다. 경로는 일반적으로 다음과 같습니다:
    • /All/Game/MetaHumans/Common/Face/Face_ControlBoard_CtrlRig
    • 프로젝트에 따라 MetaHuman을 가져온 방식에 따라 경로가 다를 수 있습니다.
  3. 세부 정보 패널에서 입력 섹션을 확장하고 다음 항목에 대해 Use Pin을 활성화합니다:
    • CTRL_L_eye_blink
    • CTRL_R_eye_blink
  4. LeftBlinkValue 변수를 CTRL_L_eye_blink에 연결합니다.
  5. RightBlinkValue 변수를 CTRL_R_eye_blink에 연결합니다.

자동 깜빡임 Anim Graph 설정

배치가 중요합니다

립싱크 블렌드 노드(및 기타 표정 애니메이션 노드) 다음에 Control Rig 노드를 배치하여 깜빡임 값이 다른 로직에 의해 덮어쓰여지지 않도록 하십시오.

구성

Update MetaHuman Auto Blink 노드는 선택적 Config 구조체를 허용합니다. 기본값은 대부분의 캐릭터에 이미 자연스럽습니다. 동작을 조정하려면 아래를 펼쳐보십시오.

Config 속성

타이밍

속성기본값설명
Min Time Between Blinks2.0 초눈이 완전히 떠 있는 동안 깜빡임 사이의 최소 간격입니다.
Max Time Between Blinks4.0 초깜빡임 사이의 최대 간격입니다. 실제 간격은 최소값과 최대값 사이에서 무작위로 결정됩니다.
Min Closed Hold Time0.04 초눈을 완전히 감고 있는 최소 시간입니다.
Max Closed Hold Time0.08 초눈을 완전히 감고 있는 최대 시간입니다.

보간

속성기본값설명
Close Interp Speed35.0눈을 감을 때의 속도입니다. 인간은 눈을 뜰 때보다 감을 때 더 빠르므로, 이 값은 의도적으로 뜨는 속도보다 높게 설정됩니다.
Open Interp Speed18.0눈을 뜰 때의 속도입니다.
Closed Threshold0.97깜빡임이 "완전히 감긴" 것으로 간주되고 유지 단계가 시작되는 값입니다.
Open Threshold0.02깜빡임이 "완전히 열린" 것으로 간주되고 다음 깜빡임이 예약되는 값입니다.

기타

속성기본값설명
Independent Eyesfalsetrue인 경우 왼쪽 눈과 오른쪽 눈이 각각 다른 타이밍으로 독립적으로 깜빡입니다. false(기본값)인 경우 두 눈이 완벽하게 동기화되어 깜빡입니다.
bEnabled (함수 핀)truefalse인 경우 눈이 천천히 뜨고 깜빡임이 일시 중지됩니다. 컷신, 수면, 사망 등에 유용합니다.

런타임 제어

**Reset Auto Blink State**를 호출하여 특정 AnimInstance의 내부 상태를 명시적으로 지울 수도 있습니다(예: 캐릭터 리스폰 또는 시네마틱 상태 전환 시).

눈 조준

눈 조준 헬퍼는 Animation Blueprint 노드(Runtime MetaHuman Eyes Aim)로, 캐릭터의 눈이 월드 공간 위치(예: 플레이어 카메라, 다른 액터 또는 움직이는 대상)를 추적하도록 합니다. 요/피치 클램핑, 스무딩, 대상이 머리 뒤로 지나갈 때의 안티-플립 보호, 현실감을 높이기 위한 선택적 미세 단속 운동(마이크로-사케이드)을 지원합니다.

모드 선택

이 노드는 노드 세부 정보 패널의 Mode 드롭다운을 통해 선택할 수 있는 두 가지 모드를 지원합니다:

모드구동 대상배치 위치
Curves (기본값)얼굴 Control Rig 눈-응시 커브 (CTRL_expressions_eyeLook*)Face Animation Blueprint(예: Face_AnimBP)에서 Control Rig 노드 앞
BonesFACIAL_L_Eye / FACIAL_R_Eye 본을 Control Rig를 거치지 않고 직접 구동Face Post Process Animation Blueprint(예: Face_PostProcess_AnimBP)에서 AnimNode_RigLogic 노드 뒤

Curves 모드가 권장되는 기본값입니다. 값이 본 변환을 놓고 경쟁하기보다는 일반적인 Control Rig 평가를 통해 결합되므로 다른 커브 기반 표정 시스템(립싱크, 표정, ARKit 블렌드쉐이프 등)과 깔끔하게 구성됩니다.

Curves 모드가 작동하지 않으면 Bones 모드를 사용하십시오

일부 MetaHuman 변형(특히 Quixel Bridge를 통해 다운로드한 구형 리그 포함)에서는 눈-응시 커브가 실제로 눈을 구동하지 않습니다. 눈에 띄는 증상은 대상 위치에 관계없이 Curves 모드 노드가 활성화될 때 눈동자가 거의 가려질 정도로 아래를 응시하는 것입니다.

이런 현상이 발생하면 Bones 모드로 전환하십시오. Bones 모드는 눈동자 본을 직접 회전시키므로 Control Rig 배선 방식에 관계없이 모든 MetaHuman 변형에서 작동합니다. 아래 설정Bones 탭을 참조하십시오.

설정

기본 설정입니다. 노드는 표준 Face Animation Blueprint에 있으며 얼굴 Control Rig 눈-응시 커브를 구동합니다.

두 단계: Anim Graph에 노드를 추가한 다음 이벤트 그래프에서 대상 위치를 제공합니다.

1. Anim Graph: 노드 추가

Face Animation Blueprint의 Anim Graph에서:

  1. Runtime MetaHuman Eyes Aim 노드를 추가합니다.
  2. 세부 정보 패널에서 ModeCurves로 설정합니다.
  3. 눈-응시 커브에 쓸 수 있는 다른 모든 표정 로직(립싱크, 사용자 정의 애니메이션 등) 다음에 배치합니다. 이는 자동 깜빡임 Control Rig 노드와 동일한 원칙입니다.
  4. 기존 포즈를 Source Pose에 연결합니다.
  5. 출력을 체인의 다음 노드(또는 Output Pose)에 연결합니다.
  6. Vector Blueprint 변수(예: TargetWorldLocation)를 만들고 노드의 Target World Location 핀에 연결합니다. 이 변수는 다음 단계에서 이벤트 그래프로 업데이트합니다.

눈 조준 Anim Graph 설정

2. 이벤트 그래프: 대상 위치 제공

Target World Location 핀은 월드 공간 FVector를 예상합니다. 일반적인 경우는 MetaHuman이 플레이어 카메라를 바라보게 하는 것입니다. Event Blueprint Update Animation에서:

  1. Player Camera Manager(Player Index 0)를 가져옵니다.
  2. Is Valid 확인
  3. 유효한 경우 Get Camera Location 호출
  4. TargetWorldLocation Blueprint 변수에 저장

눈 조준, 카메라 추적

임의의 액터(NPC, 아이템, 관심 지점)를 추적하려면 매 프레임 해당 액터의 위치를 가져와 동일한 변수에 저장합니다. 고정된 응시점의 경우 Target World Location을 한 번 설정하거나 노드 세부 정보 패널에서 상수로 설정합니다.

구성

모든 설정은 Runtime MetaHuman Eyes Aim 노드의 세부 정보 패널에 표시됩니다.

조준 및 클램프

조준

속성기본값설명
ModeCurves눈이 구동되는 방식을 선택합니다. 모드 선택을 참조하십시오.
Target World Location(0,0,0)눈이 바라보는 월드 공간 지점입니다. 기본적으로 핀으로 노출됩니다.
bEnabledtruefalse인 경우 눈이 천천히 정면을 바라보고 대상을 무시합니다. 기본적으로 핀으로 노출됩니다.

클램프

속성기본값설명
Max Yaw Degrees35°머리의 정면 방향으로부터의 최대 수평(요) 편향 각도입니다. 0에서 80 사이로 고정됩니다.
Max Pitch Degrees25°머리의 정면 방향으로부터의 최대 수직(피치) 편향 각도입니다. 0에서 80 사이로 고정됩니다.
Anti Flip Behindtrue대상이 머리 뒤로 지나갈 때 눈이 뒤집히는 것을 방지합니다.
스무딩 및 단속 운동(사케이드)

스무딩

속성기본값설명
Interp Speed12.0눈 움직임의 스무딩 속도입니다. 높을수록 더 빠르고 낮을수록 더 느릿느릿합니다.

단속 운동(사케이드)

미세 단속 운동(마이크로-사케이드)은 실제 눈이 지속적으로 수행하는 작고 무작위적인 시선 이동입니다. 이를 추가하면 완벽하게 부드러운 추적으로 인한 "죽은 눈" 같은 인상을 피할 수 있습니다.

속성기본값설명
Enable Saccadestrue미세 단속 운동을 켜거나 끕니다.
Saccade Yaw Amplitude Deg1.5°단속 운동당 최대 수평 지터입니다. 작은 값(1–2°)이 자연스럽고, 큰 값은 불안정해 보입니다.
Saccade Pitch Amplitude Deg1.0°단속 운동당 최대 수직 지터입니다. 일반적으로 요 진폭보다 약간 작습니다.
Min Saccade Interval0.6 초단속 운동 사이의 최소 시간입니다.
Max Saccade Interval2.5 초단속 운동 사이의 최대 시간입니다. 값이 클수록 차분하게, 작을수록 불안정하게 느껴집니다.
본 (Bones 모드 전용)
속성기본값설명
Left Eye BoneFACIAL_L_Eye왼쪽 눈동자 본 이름입니다. 표준 MetaHuman 얼굴 스켈레톤과 일치합니다.
Right Eye BoneFACIAL_R_Eye오른쪽 눈동자 본 이름입니다. 표준 MetaHuman 얼굴 스켈레톤과 일치합니다.
보정 (Curves 모드 전용)

이 값들은 머리 공간 각도가 MetaHuman 얼굴 CR의 눈-응시 커브 값에 매핑되는 방식을 정의합니다. 기본값은 표준 MetaHuman 얼굴 CR에 맞게 조정되었으며 변경할 필요가 거의 없습니다.

속성기본값설명
Yaw Degrees Per Unit Curve30°요 응시 커브에 대해 커브 값 1.0에 매핑되는 각도입니다.
Pitch Degrees Per Unit Curve25°피치 응시 커브에 대해 커브 값 1.0에 매핑되는 각도입니다.

립싱크 및 기타 애니메이션과 결합

두 헬퍼 모두 플러그인의 립싱크 노드 및 기존 사용자 정의 표정 애니메이션과 공존하도록 설계되었습니다. 일반적인 규칙: Eyes Aim 및 Control Rig(자동 깜빡임) 노드를 립싱크 및 사용자 정의 표정 애니메이션 뒤에 배치하여 해당 값이 다운스트림에서 덮어쓰여지지 않도록 합니다.

상세 실행 순서도 보기 (Curves vs. Bones 모드)

MetaHuman 리그가 권장되는 Curves 모드를 사용하는지 아니면 대체 Bones 모드를 사용하는지에 따라 실행 로직의 배치가 변경됩니다. 아래 차트를 펼쳐 두 파이프라인의 정확한 실행 순서를 확인하십시오:

Auto Blink 및 립 싱크는 두 모드 모두 일반 Face AnimBP에 그대로 유지됩니다.

바디 애니메이션과의 레이어링에 대한 자세한 내용은 기존 애니메이션과 결합을 참조하세요.

참고 사항 및 제한 사항

이러한 헬퍼는 MetaHuman 전용입니다. 표준 MetaHuman 얼굴 Control Rig 커브 이름(CTRL_L_eye_blink, CTRL_R_eye_blink, CTRL_expressions_eyeLook*)과 표준 눈 뼈(FACIAL_L_Eye, FACIAL_R_Eye)에 의존합니다. 커스텀 비-MetaHuman 캐릭터에는 사용할 수 없습니다.

도움이 필요하신가요?

Join our Discord
online · support

맞춤 개발 요청은 [email protected]로 문의하세요.