본문으로 건너뛰기

눈 애니메이션 헬퍼

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

  • 자동 눈 깜빡임: 메타휴먼에서 자연스럽고 무작위적인 눈 깜빡임을 생성하는 헬퍼
  • 눈 조준: 메타휴먼의 눈이 월드 공간 위치를 바라보게 하는 애니메이션 블루프린트 노드

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

기능 미리보기

자동 눈 깜빡임: 자동 눈 깜빡임
눈 조준: 플레이어 카메라 추적
눈 조준: 움직이는 대상 액터를 따라가기

비디오 둘러보기

두 헬퍼에 대한 전체 워크스루와 레거시 리그 우회 방법을 포함합니다.

이 헬퍼들을 언제 사용해야 하나요

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

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

작동 방식

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

  1. 캐릭터별 상태(다음 깜빡임 시간, 현재 열림/닫힘 단계 등)를 호출하는 AnimInstance를 키로 추적합니다
  2. 0..1 범위의 두 개의 float 값을 반환하며, 하나는 왼쪽 눈용, 하나는 오른쪽 눈용으로, 각 눈이 현재 얼마나 닫혀 있는지를 나타냅니다
  3. 그런 다음 이 값들을 Blueprint 변수에 저장하고 Anim Graph의 Control Rig 노드에 공급합니다

설정

두 단계: 이벤트 그래프에 깜빡임 호출을 추가한 다음, 애님 그래프의 컨트롤 릭 노드에 값을 전달하세요.

Face Animation Blueprint(예: Face_AnimBP 또는 복제/복사한 버전, 설정 가이드 참조)에서 Event Graph를 열고 Event Blueprint Update Animation에 다음을 추가하세요:

  1. Update MetaHuman Auto Blink 호출
  2. Delta Time X (이벤트에서)를 Delta Seconds에 연결
  3. (선택 사항) Config 구조체를 구성합니다. 기본값은 이미 자연스러워 보입니다
  4. Left Blink ValueRight Blink Value를 Blueprint 변수로 승격합니다 (예: LeftBlinkValue, RightBlinkValue)

Auto Blink Event Graph setup

애님 그래프에서 동일한 애니메이션 블루프린트의:

  1. 블링크 커브를 구동할 컨트롤 릭 노드를 배치하세요. 정확한 위치는 오토 블링크를 다른 얼굴 애니메이션(립 싱크, 커스텀 시퀀스 등)과 결합하는지 여부에 따라 달라집니다:
    • 다른 안면 애니메이션 없음: Output Pose 앞의 메인 체인에 Control Rig 노드를 직접 배치하세요.
    • 립싱크 및/또는 다른 안면 애니메이션과 결합: 이 Control Rig 노드를 체인에 직접 배치하는 대신 Layered blend per bone 노드에 연결하세요. 아래 팁을 참조하십시오.
  2. 노드의 Details 패널에서 Control Rig Class(UE 5.8 이상에서는 Control Rig Asset Reference)를 MetaHuman 얼굴 Control Rig로 설정합니다. 경로는 일반적으로 다음과 같습니다:
    • /All/Game/MetaHumans/Common/Face/Face_ControlBoard_CtrlRig
    • 프로젝트에 따라 MetaHuman을 가져온 방식에 따라 경로가 다를 수 있습니다.
  3. Details 패널에서 Input 섹션을 확장하고 다음에 대해 Use Pin을 활성화합니다:
    • CTRL_L_eye_blink
    • CTRL_R_eye_blink
  4. LeftBlinkValue 변수를 CTRL_L_eye_blink에 연결하세요
  5. RightBlinkValue 변수를 CTRL_R_eye_blink에 연결하세요

Auto Blink Anim Graph setup

배치가 중요합니다

다른 얼굴 애니메이션과 결합하지 않는 경우, 깜빡임 값이 덮어쓰이지 않도록 체인에서 립싱크 블렌드 노드(및 기타 얼굴 애니메이션 노드) 뒤에 컨트롤 릭 노드를 배치하세요. 립싱크나 다른 얼굴 애니메이션과 결합하는 경우, 기존 애니메이션과 결합하기 가이드를 따라 이 컨트롤 릭 노드를 Layered blend per bone 노드의 Base Pose 입력에 대신 연결하세요. 레이어드 블렌드 노드는 둘 다 유지하며, 하나가 단순히 다른 하나를 덮어쓰지 않게 합니다.

구성

Update MetaHuman Auto Blink 노드는 선택적 Config 구조체를 허용합니다. 기본값은 대부분의 캐릭터에 자연스러운 모습을 제공하므로, 동작을 조정하려면 아래를 펼쳐보세요.

설정 속성

타이밍

속성기본값설명
깜빡임 사이 최소 시간2.0초눈이 완전히 뜬 상태에서 깜빡임 사이의 최소 간격입니다.
깜빡임 사이 최대 시간4.0초깜빡임 사이의 최대 간격입니다. 실제 간격은 최소값과 최대값 사이에서 무작위로 결정됩니다.
감은 상태 유지 최소 시간0.04초눈이 완전히 감긴 상태를 유지하는 최소 시간입니다.
감은 상태 유지 최대 시간0.08초눈이 완전히 감긴 상태를 유지하는 최대 시간입니다.

보간

속성기본값설명
닫기 보간 속도35.0눈을 감을 때의 속도입니다. 인간은 눈을 뜰 때보다 감을 때가 더 빠르므로, 이 값은 의도적으로 뜨는 속도보다 높게 설정되어 있습니다.
열기 보간 속도18.0눈을 뜰 때의 속도입니다.
닫힘 임계값0.97깜빡임이 "완전히 감긴" 상태로 간주되고 유지 단계가 시작되는 값입니다.
열림 임계값0.02깜빡임이 "완전히 열린" 상태로 간주되고 다음 깜빡임이 예약되는 값입니다.

기타

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

Runtime Control

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

눈 조준

눈 조준 헬퍼는 애니메이션 블루프린트 노드(Runtime MetaHuman Eyes Aim)로, 캐릭터의 눈이 월드 공간의 위치(예: 플레이어 카메라, 다른 액터, 또는 움직이는 대상)를 추적하게 만듭니다. 이 노드는 요/피치 클램핑, 스무딩, 대상이 머리 뒤로 지나갈 때의 안티-플립 보호, 그리고 사실감을 높이기 위한 선택적 마이크로-새케이드를 지원합니다.

모드 선택하기

이 노드는 노드의 Details 패널에 있는 Mode 드롭다운을 통해 선택되는 두 가지 모드를 지원합니다:

Mode구동 대상배치 위치
커브(기본값)얼굴 컨트롤 릭의 눈 응시 커브(CTRL_expressions_eyeLook*)페이스 애니메이션 블루프린트(예: Face_AnimBP)에서 컨트롤 릭 노드 앞에
FACIAL_L_Eye / FACIAL_R_Eye 본을 컨트롤 릭을 거치지 않고 직접 사용페이스 포스트 프로세스 애니메이션 블루프린트(예: Face_PostProcess_AnimBP)에서 AnimNode_RigLogic 노드 뒤에

커브 모드가 권장 기본값입니다. 이 모드는 값이 일반적인 컨트롤 릭 평가를 통해 결합되어 본 변환을 두고 충돌하지 않으므로, 다른 커브 기반 얼굴 시스템(립 싱크, 표정, ARKit 블렌드셰이프 등)과 깔끔하게 호환됩니다.

커브 모드가 작동하지 않을 때는 본 모드를 사용하세요.

일부 MetaHuman 변형(특히 Quixel Bridge를 통해 다운로드한 일부를 포함한 구형 릭)에서는 눈 응시 커브가 실제로 눈을 구동하지 않습니다. 눈에 보이는 증상은 Curves 모드 노드가 활성화된 상태에서 대상 위치와 관계없이 눈이 아래를 향해 동공이 거의 가려지는 것입니다.

이 내용이 보이면 본 모드로 전환하세요. 본 모드는 눈 뼈를 직접 회전시키므로, 컨트롤 릭이 어떻게 연결되어 있든 모든 MetaHuman 변형에서 작동합니다. 아래 설정 탭을 참조하세요.

설정

기본 설정입니다. 이 노드는 표준 Face Animation Blueprint에 있으며 얼굴 Control Rig의 시선 추적 커브를 구동합니다.

두 단계: 애님 그래프에 노드를 추가한 다음, 이벤트 그래프에서 대상 위치를 입력합니다.

1. 애님 그래프: 노드 추가

Face Animation Blueprint의 Anim Graph에서:

  1. Runtime MetaHuman Eyes Aim 노드를 추가하세요
  2. 디테일 패널에서 ModeCurves로 설정한 상태로 두세요
  3. 눈-응시 커브에 기록할 수 있는 다른 모든 얼굴 로직(립싱크, 커스텀 애니메이션 등) 뒤에 배치하세요. Auto Blink Control Rig 노드와 동일한 원칙입니다
  4. 기존 포즈를 Source Pose에 연결하세요
  5. 출력을 체인의 다음 노드(또는 Output Pose)에 연결하세요
  6. Vector 블루프린트 변수(예: TargetWorldLocation)를 생성하고 이를 노드의 Target World Location 핀에 연결하세요. 다음 단계에서 이벤트 그래프에서 이 변수를 업데이트하게 됩니다.

Eyes Aim Anim Graph setup

2. 이벤트 그래프: 목표 위치를 입력합니다.

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

  1. 플레이어 카메라 매니저 가져오기 (플레이어 인덱스 0)
  2. 유효한지 확인
  3. 유효하다면 카메라 위치 가져오기 호출
  4. TargetWorldLocation 블루프린트 변수에 저장

Eyes Aim, tracking the camera

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

구성

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

조준 및 고정

목표

속성기본값설명
Mode곡선눈이 구동되는 방식을 선택합니다. 모드 선택을 참조하세요.
대상 월드 위치(0,0,0)눈이 바라보는 월드 공간의 지점입니다. 기본적으로 핀으로 노출됩니다.
bEnabledtruefalse인 경우, 눈이 정면으로 완화되어 돌아가며 대상을 무시합니다. 기본적으로 핀으로 노출됩니다.

클램프

속성기본값설명
최대 요 각도35°머리의 정면 방향에서 최대 수평(요) 편향 각도입니다. 0~80으로 제한됩니다.
최대 피치 각도25°머리의 정면 방향에서 최대 수직(피치) 편향 각도입니다. 0~80으로 제한됩니다.
뒤집힘 방지true대상이 머리 뒤로 지나갈 때 눈이 뒤집히는 것을 방지합니다.
부드러움 및 단속적 안구 운동

부드럽게 하기

속성기본값설명
보간 속도12.0눈 움직임의 부드러움 속도입니다. 값이 높을수록 더 빠르고, 낮을수록 더 느긋합니다.

단속적 안구 운동

미세 단속성 안구 운동(micro-saccades)은 실제 눈이 끊임없이 수행하는 아주 작고 무작위적인 시선 이동입니다. 이를 추가하면 완벽하게 매끄러운 추적에서 나타나는 "죽은 눈" 같은 인상을 피할 수 있습니다.

속성기본값설명
미세 단속 운동 활성화true미세 단속 운동(마이크로 새케이드)을 켜거나 끕니다.
단속 운동 요 각도(도)1.5°단속 운동당 최대 수평 흔들림. 작은 값(1–2°)은 자연스럽게 느껴지고, 큰 값은 불안정해 보입니다.
단속 운동 피치 각도(도)1.0°단속 운동당 최대 수직 흔들림. 일반적으로 요 각도보다 약간 작습니다.
최소 단속 운동 간격0.6초단속 운동 사이의 최소 시간.
최대 단속 운동 간격2.5초단속 운동 사이의 최대 시간. 값이 클수록 차분하게 느껴지고, 값이 작을수록 불안정하게 느껴집니다.
뼈 (뼈 모드 전용)
속성기본값설명
왼쪽 눈 뼈FACIAL_L_Eye왼쪽 눈 뼈 이름. 표준 MetaHuman 얼굴 골격과 일치합니다.
오른쪽 눈 뼈FACIAL_R_Eye오른쪽 눈 뼈 이름. 표준 MetaHuman 얼굴 골격과 일치합니다.
보정 (커브 모드 전용)

이 값들은 헤드-스페이스 각도가 MetaHuman 얼굴 CR의 눈-응시 곡선 값에 매핑되는 방식을 정의합니다. 기본값은 표준 MetaHuman 얼굴 CR에 맞게 조정되어 있으며, 변경이 필요한 경우는 거의 없습니다.

속성기본값설명
단위 곡선당 요 각도30°요(Yaw) 응시 곡선에서 곡선 값 1.0에 해당하는 각도입니다.
단위 곡선당 피치 각도25°피치(Pitch) 응시 곡선에서 곡선 값 1.0에 해당하는 각도입니다.

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

두 헬퍼 모두 플러그인의 립싱크 노드 및 이미 보유한 커스텀 페이셜 애니메이션과 공존하도록 설계되었습니다.

  • Eyes Aim은 동일한 체인에서 립싱크 및 사용자 지정 얼굴 애니메이션 다음에 배치해야 합니다. 그래야 눈 시선 값이 다운스트림에서 덮어써지지 않습니다. 위의 모드 선택설정을 참조하세요.
  • Auto Blink는 단순한 선형 배치 대신 Layered blend per bone 노드를 사용합니다. Control Rig 노드를 Base Pose 입력에 연결하는 방법은 위의 배치의 중요성 팁을 참조하세요.
상세 실행 순서도 보기 (커브 vs 본 모드)

MetaHuman 리그가 권장되는 Curves Mode를 사용하는지, 아니면 대체 Bones Mode를 사용하는지에 따라 실행 로직의 배치가 달라집니다. 아래 차트를 펼쳐 두 파이프라인 모두에 대한 정확한 실행 순서를 확인하세요:

자동 눈 깜빡임과 립싱크는 두 모드 모두 일반 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]로 문의하세요.