본문으로 건너뛰기

눈 애니메이션 도우미

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

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

이러한 기능들은 립 싱크와 완전히 독립적이며, 단독으로 사용하거나 함께 사용하거나 립 싱크 노드와 결합하여 사용할 수 있습니다. 이는 수동으로 제작할 필요 없이 생생한 눈동자 동작을 추가하기 위한 가볍고 즉시 적용 가능한 도우미 역할을 합니다.

기능 미리보기

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

동영상 둘러보기

두 헬퍼에 대한 전체 워크스루(레거시 리그 해결 방법 포함).

이러한 도우미를 사용해야 하는 경우

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

자동 눈 깜빡임 도우미는 메타휴먼 페이스 컨트롤 리그의 CTRL_L_eye_blinkCTRL_R_eye_blink 커브를 구동하여 무작위적이고 자연스러운 눈 깜빡임을 생성합니다.

작동 방식

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

  1. 캐릭터별 상태(다음 깜빡임 시간, 현재 열림/닫힘 단계 등)를 호출하는 AnimInstance를 키로 추적합니다
  2. 0..1 범위의 두 float 값을 반환하며, 하나는 왼쪽 눈, 다른 하나는 오른쪽 눈으로 각 눈이 현재 얼마나 감겨 있는지를 나타냅니다
  3. 그런 다음 이 값들을 블루프린트 변수에 저장하고 애님 그래프의 컨트롤 리그 노드에 전달합니다

설정

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

얼굴 애니메이션 블루프린트(예: Face_AnimBP 또는 복제/복사한 버전, 설정 가이드 참조)에서 이벤트 그래프를 열고 이벤트 블루프린트 업데이트 애니메이션에 다음을 추가하세요:

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

Auto Blink Event Graph setup

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

  1. Control Rig 노드를 눈 깜빡임 커브에 기록할 수 있는 다른 모든 얼굴 로직(예: Blend Runtime MetaHuman Lip Sync 및 사용자 정의 얼굴 애니메이션 레이어) 뒤에 배치하세요.
  2. 노드의 세부 정보(Details) 패널에서 Control Rig 클래스(Control Rig Class) (UE 5.8+에서는 Control Rig 에셋 참조(Control Rig Asset Reference))를 MetaHuman 얼굴 Control Rig로 설정하세요. 경로는 일반적으로 다음과 같습니다:
    • /All/Game/MetaHumans/Common/Face/Face_ControlBoard_CtrlRig
    • 프로젝트에 따라 메타휴먼을 가져온 방식에 따라 경로가 다를 수 있습니다.
  3. 세부 정보 패널에서 입력 섹션을 확장하고 다음 항목에 대해 핀 사용을 활성화합니다:
    • 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

배치가 중요합니다

Control Rig 노드를 립 싱크 블렌드 노드(및 기타 얼굴 애니메이션 노드) 뒤에 배치하여 깜빡임 값이 다른 로직에 의해 덮어쓰여지지 않도록 하세요.

구성

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인 경우, 눈이 천천히 다시 뜨고 깜빡임이 멈춥니다. 컷신, 수면, 사망 등의 상황에 유용합니다.

런타임 제어

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

눈 조준

눈 위치 조정 헬퍼는 캐릭터의 눈이 월드 공간의 위치(예: 플레이어 카메라, 다른 액터 또는 움직이는 대상)를 추적하도록 하는 애니메이션 블루프린트 노드(Runtime MetaHuman Eyes Aim)입니다. 이 노드는 요/피치 클램핑, 스무딩, 대상이 머리 뒤로 지나갈 때의 반전 방지 기능, 그리고 사실감을 높이기 위한 선택적 미세 단속 운동을 지원합니다.

모드 선택

이 노드는 노드의 디테일 패널에 있는 모드 드롭다운을 통해 선택할 수 있는 두 가지 모드를 지원합니다:

Mode구동 방식어디에 배치할까요
커브 (기본값)페이스 컨트롤 리그의 시선 커브(CTRL_expressions_eyeLook*)얼굴 애니메이션 블루프린트(예: Face_AnimBP)에서 컨트롤 리그 노드 이전에
FACIAL_L_Eye / FACIAL_R_Eye 뼈를 컨트롤 리그를 거치지 않고 직접 사용합니다.Face Post Process Animation Blueprint (예: Face_PostProcess_AnimBP)에서 AnimNode_RigLogic 노드 이후에

곡선 모드는 권장되는 기본값입니다. 이 모드는 값이 뼈 변환을 두고 충돌하는 대신 일반 컨트롤 리그 평가를 통해 결합되므로 다른 곡선 기반 얼굴 시스템(립 싱크, 표정, ARKit 블렌드쉐이프 등)과 깔끔하게 구성됩니다.

Curves 모드가 작동하지 않을 때는 Bones 모드를 사용하세요.

일부 MetaHuman 변형(특히 Quixel Bridge를 통해 다운로드한 일부를 포함한 구형 리그)에서는 시선 곡선이 실제로 눈을 구동하지 않습니다. 눈에 띄는 증상은 곡선 모드 노드가 활성화되면 대상 위치와 관계없이 눈이 거의 숨겨진 동공과 함께 아래를 바라보는 것입니다.

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

설정

기본 설정입니다. 이 노드는 표준 Face Animation Blueprint에 위치하며, 얼굴 Control Rig의 시선 곡선을 구동합니다.

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

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

얼굴 애니메이션 블루프린트의 애님 그래프에서:

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

Eyes Aim Anim Graph setup

2. 이벤트 그래프: 대상 위치 입력

Target World Location 핀은 월드 공간의 FVector를 입력으로 받습니다. 일반적인 경우는 메타휴먼이 플레이어 카메라를 바라보도록 하는 것입니다. Event Blueprint Update Animation에서:

  1. Player Camera Manager 가져오기 (Player Index 0)
  2. Is Valid 확인
  3. 유효하면 Get Camera Location 호출
  4. TargetWorldLocation 블루프린트 변수에 저장

Eyes Aim, tracking the camera

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

구성

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

조준 및 고정

목표

속성기본값설명
Mode커브눈이 구동되는 방식을 선택합니다. 모드 선택을 참조하세요.
대상 월드 위치(0,0,0)눈이 바라보는 월드 공간의 지점입니다. 기본적으로 핀으로 노출됩니다.
bEnabledtruefalse일 때, 눈이 천천히 정면으로 돌아오며 타겟을 무시합니다. 기본적으로 핀으로 노출됩니다.

클램프

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

부드럽게 하기

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

단속적 안구 운동

미세 단속 운동은 실제 눈이 끊임없이 수행하는 작고 무작위적인 시선 이동입니다. 이를 추가하면 완벽하게 부드러운 추적에서 발생하는 "죽은 눈" 현상을 방지할 수 있습니다.

속성기본값설명
안구 운동 활성화true미세 단속 운동을 켜거나 끕니다.
단속성 수평 진폭 감소1.5°초당 단속 운동당 최대 수평 지터. 작은 값(1–2°)은 자연스럽게 느껴지며, 큰 값은 불안정해 보입니다.
단속적 시선 이동 피치 진폭 감소1.0°초당 단속 운동당 최대 수직 지터. 일반적으로 요 진폭보다 약간 작습니다.
최소 단속적 안구 운동 간격0.6초최소 안구 도약 간 시간.
최대 단속 운동 간격2.5초최대 단속적 안구 운동 간격. 값이 클수록 차분하게 느껴지고, 작을수록 불안정하게 느껴집니다.
뼈 (뼈 모드 전용)
속성기본값설명
왼쪽 눈 뼈FACIAL_L_Eye왼쪽 눈 뼈 이름. 표준 MetaHuman 얼굴 스켈레톤과 일치합니다.
오른쪽 눈 뼈FACIAL_R_Eye오른쪽 눈 뼈 이름. 표준 메타휴먼 얼굴 스켈레톤과 일치합니다.
보정 (곡선 모드 전용)

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

속성기본값설명
단위 곡선당 요 도30°요 룩 커브에서 커브 값 1.0에 매핑되는 각도입니다.
단위 곡선당 피치 각도25°피치 룩 커브에서 커브 값 1.0에 매핑되는 각도입니다.

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

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

상세 실행 순서도 보기 (커브 모드 vs 본 모드)

메타휴먼 리그가 권장되는 커브 모드 또는 대체 본 모드를 사용하는지에 따라 실행 로직의 배치가 달라집니다. 아래 차트를 확장하여 두 파이프라인의 정확한 실행 순서를 확인하세요:

자동 깜빡임과 립 싱크는 두 모드 모두 일반 Face AnimBP에 여전히 존재합니다.

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

참고 사항 및 제한 사항

이 도우미들은 메타휴먼 전용입니다. 표준 메타휴먼 얼굴 컨트롤 리그 커브 이름(CTRL_L_eye_blink, CTRL_R_eye_blink, CTRL_expressions_eyeLook*)과 표준 눈 뼈(FACIAL_L_Eye, FACIAL_R_Eye)에 의존합니다. 커스텀 비메타휴먼 캐릭터에는 사용할 수 없습니다.

도움이 필요하신가요?

Join our Discord
online · support

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