플러그인 설정
모델 설정
표준 모델 설정
Create Runtime Viseme Generator
노드는 대부분의 시나리오에서 잘 작동하는 기본 설정을 사용합니다. 설정은 애니메이션 블루프린트 블렌딩 노드 속성을 통해 처리됩니다.
애니메이션 블루프린트 설정 옵션에 대해서는 아래 Lip Sync 설정 섹션을 참조하세요.
리얼리스틱 모델 설정
Create Realistic MetaHuman Lip Sync Generator
노드는 생성기의 동작을 사용자 정의할 수 있는 선택적 Configuration 매개변수를 허용합니다:
모델 타입
Model Type 설정은 사용할 리얼리스틱 모델의 버전을 결정합니다:
모델 타입 | 성능 | 시각적 품질 | 노이즈 처리 | 권장 사용 사례 |
---|---|---|---|---|
Highly Optimized (기본값) | 최고 성능, 최저 CPU 사용량 | 양호한 품질 | 배경 노이즈 또는 비음성 소리에서 눈에 띄는 입 움직임이 나타날 수 있음 | 깨끗한 오디오 환경, 성능이 중요한 시나리오 |
Semi-Optimized | 좋은 성능, 중간 정도의 CPU 사용량 | 높은 품질 | 노이즈가 있는 오디오에서 더 나은 안정성 | 균형 잡힌 성능과 품질, 혼합된 오디오 조건 |
Original | 최신 CPU에서 실시간 사용에 적합 | 최고 품질 | 배경 노이즈와 비음성 소리에서 가장 안정적 | 고품질 프로덕션, 노이즈가 있는 오디오 환경, 최대 정확도가 필요할 때 |
성능 설정
Intra Op Threads: 내부 모델 처리 작업에 사용되는 스레드 수를 제어합니다.
- 0 (기본값/자동): 자동 감지 사용 (일반적으로 사용 가능한 CPU 코어의 1/4, 최대 4개)
- 1-16: 수동으로 스레드 수 지정. 값이 높을수록 멀티 코어 시스템에서 성능이 향상될 수 있지만 더 많은 CPU를 사용함
Inter Op Threads: 서로 다른 모델 작업의 병렬 실행에 사용되는 스레드 수를 제어합니다.
- 0 (기본값/자동): 자동 감지 사용 (일반적으로 사용 가능한 CPU 코어의 1/8, 최대 2개)
- 1-8: 수동으로 스레드 수 지정. 실시간 처리에는 일반적으로 낮게 유지됨
처리 청크 크기
Processing Chunk Size는 각 추론 단계에서 처리되는 샘플 수를 결정합니다. 기본값은 160 샘플 (16kHz에서 10ms 오디오)입니다:
- 더 작은 값은 더 빈번한 업데이트를 제공하지만 CPU 사용량을 증가시킵니다
- 더 큰 값은 CPU 부하를 줄이지만 립 싱크 응답성이 감소할 수 있습니다
- 최적의 정렬을 위해 160의 배수를 사용하는 것이 권장됩니다
무드 지원 모델 설정
Create Realistic MetaHuman Lip Sync With Mood Generator
노드는 기본 리얼리스틱 모델을 넘어서는 추가 설정 옵션을 제공합니다:
기본 설정
Lookahead Ms: 향상된 립 싱크 정확도를 위한 룩어헤드 타이밍(밀리초 단위).
- 기본값: 80ms
- 범위: 20ms ~ 200ms (20으로 나누어 떨어져야 함)
- 값이 높을수록 동기화가 더 좋아지지만 지연 시간이 증가합니다.
Output Type: 생성되는 얼굴 컨트롤을 지정합니다.
- Full Face: 모든 81개의 얼굴 컨트롤(눈썹, 눈, 코, 입, 턱, 혀)
- Mouth Only: 입, 턱, 혀 관련 컨트롤만
Performance Settings: 일반 리얼리스틱 모델과 동일한 Intra Op Threads 및 Inter Op Threads 설정을 사용합니다.
무드 설정
사용 가능한 무드:
- Neutral, Happy, Sad, Disgust, Anger, Surprise, Fear
- Confident, Excited, Bored, Playful, Confused
Mood Intensity: 무드가 애니메이션에 영향을 미치는 강도를 조절합니다 (0.0 ~ 1.0)
런타임 무드 제어
런타임 중 다음 함수들을 사용하여 무드 설정을 조정할 수 있습니다:
- Set Mood: 현재 무드 유형 변경
- Set Mood Intensity: 무드가 애니메이션에 영향을 미치는 강도 조절 (0.0 ~ 1.0)
- Set Lookahead Ms: 동기화를 위한 룩어헤드 타이밍 수정
- Set Output Type: Full Face와 Mouth Only 컨트롤 간 전환
무드 선택 가이드
콘텐츠에 따라 적절한 무드를 선택하세요:
무드 | 최적 사용처 | 일반적인 강도 범위 |
---|---|---|
Neutral | 일반 대화, 내레이션, 기본 상태 | 0.5 - 1.0 |
Happy | 긍정적인 콘텐츠, 유쾌한 대화, 축하 장면 | 0.6 - 1.0 |
Sad | 우울한 콘텐츠, 감정적인 장면, 슬픈 순간 | 0.5 - 0.9 |
Disgust | 부정적인 반응, 혐오스러운 콘텐츠, 거부 표현 | 0.4 - 0.8 |
Anger | 공격적인 대화, 대립 장면, 좌절감 표현 | 0.6 - 1.0 |
Surprise | 예상치 못한 사건, 폭로, 충격 반응 | 0.7 - 1.0 |
Fear | 위협적인 상황, 불안, 긴장된 대화 | 0.5 - 0.9 |
Confident | 전문적인 발표, 리더십 대화, 주장적인 발언 | 0.7 - 1.0 |
Excited | 활기찬 콘텐츠, 발표, 열정적인 대화 | 0.8 - 1.0 |
Bored | 단조로운 콘텐츠, 무관심한 대화, 지친 발화 | 0.3 - 0.7 |
Playful | 캐주얼 대화, 유머, 가벼운 상호작용 | 0.6 - 0.9 |
Confused | 질문이 많은 대화, 불확실함, 당혹감 표현 | 0.4 - 0.8 |
Animation Blueprint 구성
Lip Sync 구성
- Standard Model
- Realistic Models
Blend Runtime MetaHuman Lip Sync
노드는 속성 패널에 구성 옵션이 있습니다:
속성 | 기본값 | 설명 |
---|---|---|
보간 속도 | 25 | 비주얼마임 간의 입술 움직임 전환 속도를 제어합니다. 값이 높을수록 더 빠르고 갑작스러운 전환이 일어납니다. |
재설정 시간 | 0.2 | 립 싱크가 재설정되기까지의 시간(초)입니다. 오디오가 중단된 후에도 립 싱크가 계속되는 것을 방지하는 데 유용합니다. |
Blend Realistic MetaHuman Lip Sync
노드는 속성 패널에 구성 옵션이 있습니다:
속성 | 기본값 | 설명 |
---|---|---|
보간 속도 | 30 | 위치 간의 입술 움직임 전환 속도를 제어합니다. 값이 높을수록 더 빠르고 갑작스러운 전환이 일어납니다. |
재설정 시간 | 0.2 | 립 싱크가 재설정되기까지의 시간(초)입니다. 오디오가 중단된 후에도 립 싱크가 계속되는 것을 방지하는 데 유용합니다. |
참고: 동일한 Animation Blueprint 노드가 일반 및 무드 활성화된 리얼리스틱 모델 모두에 사용됩니다.
웃음 애니메이션
오디오에서 감지된 웃음에 동적으로 반응하는 웃음 애니메이션을 추가할 수도 있습니다:
Blend Runtime MetaHuman Laughter
노드를 추가합니다RuntimeVisemeGenerator
변수를Viseme Generator
핀에 연결합니다- 이미 립 싱크를 사용 중인 경우:
Blend Runtime MetaHuman Lip Sync
노드의 출력을Blend Runtime MetaHuman Laughter
노드의Source Pose
에 연결합니다Blend Runtime MetaHuman Laughter
노드의 출력을Output Pose
의Result
핀에 연결합니다
- 립 싱크 없이 웃음만 사용하는 경우:
- 소스 포즈를 직접
Blend Runtime MetaHuman Laughter
노드의Source Pose
에 연결합니다 - 출력을
Result
핀에 연결합니다
- 소스 포즈를 직접
오디오에서 웃음이 감지되면 캐릭터가 그에 따라 동적으로 애니메이션됩니다:
웃음 구성
Blend Runtime MetaHuman Laughter
노드는 자체 구성 옵션이 있습니다:
속성 | 기본값 | 설명 |
---|---|---|
보간 속도 | 25 | 웃음 애니메이션 간의 입술 움직임 전환 속도를 제어합니다. 값이 높을수록 더 빠르고 갑작스러운 전환이 일어납니다. |
재설정 시간 | 0.2 | 웃음이 재설정되기까지의 시간(초)입니다. 오디오가 중단된 후에도 웃음이 계속되는 것을 방지하는 데 유용합니다. |
최대 웃음 가중치 | 0.7 | 웃음 애니메이션의 최대 강도를 조절합니다 (0.0 - 1.0). |
참고: 웃음 감지는 현재 Standard Model에서만 사용할 수 있습니다. |
기존 애니메이션과 결합하기
Lip Sync 및 웃음을 기존의 바디 애니메이션과 커스텀 표정 애니메이션을 덮어쓰지 않고 함께 적용하려면:
- 바디 애니메이션과 최종 출력 사이에
Layered blend per bone
노드를 추가합니다.Use Attached Parent
가 true로 설정되어 있는지 확인하세요. - 레이어 설정을 구성합니다:
Layer Setup
배열에 1개의 항목을 추가합니다- 레이어의
Branch Filters
에 3개의 항목을 추가하고, 다음과 같은Bone Name
을 지정합니다:FACIAL_C_FacialRoot
FACIAL_C_Neck2Root
FACIAL_C_Neck1Root
- 커스텀 표정 애니메이션에 중요:
Curve Blend Option
에서 "Use Max Value" 를 선택합니다. 이를 통해 커스텀 표정 애니메이션(표정, 감정 등)이 Lip Sync 위에 제대로 레이어될 수 있습니다. - 연결을 만듭니다:
- 기존 애니메이션(예:
BodyPose
) →Base Pose
입력 - 표정 애니메이션 출력(Lip Sync 및/또는 웃음 노드에서) →
Blend Poses 0
입력 - Layered blend 노드 → 최종
Result
포즈
- 기존 애니메이션(예:
Lip Sync 동작 미세 조정
혀 내밀기 제어
표준 Lip Sync 모델에서는 특정 음소 발음 시 과도하게 앞으로 나오는 혀 움직임을 확인할 수 있습니다. 혀 내밀기를 제어하려면:
- Lip Sync blend 노드 뒤에
Modify Curve
노드를 추가합니다 Modify Curve
노드를 우클릭하고 Add Curve Pin을 선택합니다- 이름이
CTRL_expressions_tongueOut
인 커브 핀을 추가합니다 - 노드의 Apply Mode 속성을 Scale로 설정합니다
- Value 매개변수를 조정하여 혀의 확장을 제어합니다 (예: 0.8로 설정하여 내밀기를 20% 감소)
턱 벌림 제어
현실적인 Lip Sync는 오디오 콘텐츠와 시각적 요구 사항에 따라 지나치게 반응적인 턱 움직임을 생성할 수 있습니다. 턱 벌림 강도를 조정하려면:
- Lip Sync blend 노드 뒤에
Modify Curve
노드를 추가합니다 Modify Curve
노드를 우클릭하고 Add Curve Pin을 선택합니다- 이름이
CTRL_expressions_jawOpen
인 커브 핀을 추가합니다 - 노드의 Apply Mode 속성을 Scale로 설정합니다
- Value 매개변수를 조정하여 턱 벌림 범위를 제어합니다 (예: 0.9로 설정하여 턱 움직임을 10% 감소)
기분별 미세 조정
기능이 활성화된 모델의 경우 특정 감정 표현을 미세 조정할 수 있습니다:
눈썹 제어:
CTRL_L_brow_raiseIn.ty
/CTRL_R_brow_raiseIn.ty
- 안쪽 눈썹 올리기CTRL_L_brow_raiseOut.ty
/CTRL_R_brow_raiseOut.ty
- 바깥쪽 눈썹 올리기CTRL_L_brow_down.ty
/CTRL_R_brow_down.ty
- 눈썹 내리기
눈 표현 제어:
CTRL_L_eye_squintInner.ty
/CTRL_R_eye_squintInner.ty
- 눈 가늘게 뜨기CTRL_L_eye_cheekRaise.ty
/CTRL_R_eye_cheekRaise.ty
- 볼 올리기
모델 비교 및 선택
모델 선택하기
프로젝트에 사용할 립싱크 모델을 결정할 때 다음 요소들을 고려하세요:
고려 사항 | 표준 모델 | 리얼리스틱 모델 | 무드 지원 리얼리스틱 모델 |
---|---|---|---|
캐릭터 호환성 | MetaHumans 및 모든 커스텀 캐릭터 타입 | MetaHumans 전용 | MetaHumans 전용 |
시각적 품질 | 효율적인 성능의 좋은 립싱크 | 더 자연스러운 입 움직임으로 향상된 리얼리즘 | 감정 표현이 포함된 향상된 리얼리즘 |
성능 | 모바일/VR을 포함한 모든 플랫폼에 최적화 | 더 높은 리소스 요구사항 | 더 높은 리소스 요구사항 |
기능 | 14개의 비젬, 웃음 감지 | 81개의 얼굴 제어, 3가지 최적화 레벨 | 81개의 얼굴 제어, 12가지 무드, 구성 가능한 출력 |
플랫폼 지원 | Windows, Android, Quest | Windows, Mac, iOS, Linux | Windows, Mac, iOS, Linux |
사용 사례 | 일반 애플리케이션, 게임, VR/AR, 모바일 | 시네마틱 경험, 클로즈업 상호작용 | 감정적 스토리텔링, 고급 캐릭터 상호작용 |
엔진 버전 호환성
Unreal Engine 5.2를 사용하는 경우, UE의 리샘플링 라이브러리 버그로 인해 리얼리스틱 모델이 올바르게 작동하지 않을 수 있습니다. UE 5.2 사용자 중 안정적인 립싱크 기능이 필요한 경우, 표준 모델을 대신 사용해 주세요.
이 문제는 UE 5.2에 특화된 것이며 다른 엔진 버전에는 영향을 미치지 않습니다.
성능 권장사항
- 대부분의 프로젝트에는 표준 모델이 품질과 성능의 훌륭한 균형을 제공합니다
- MetaHuman 캐릭터에 최고의 시각적 정확도가 필요할 때 리얼리스틱 모델을 사용하세요
- 애플리케이션에 감정 표현 제어가 중요할 때 무드 지원 리얼리스틱 모델을 사용하세요
- 모델 선택 시 대상 플랫폼의 성능 능력을 고려하세요
- 특정 사용 사례에 가장 적합한 균형을 찾기 위해 다양한 최적화 레벨을 테스트하세요
TTS 호환성
모델 타입 | 로컬 TTS 지원 (Runtime Text To Speech 통해) | 외부 TTS 지원 | 참고 사항 |
---|---|---|---|
표준 모델 | ✅ 전체 지원 | ✅ 전체 지원 | 모든 TTS 옵션과 호환 |
리얼리스틱 모델 | ❌ 제한적 지원 | ✅ 전체 지원 | ONNX 런타임이 로컬 TTS와 충돌 |
무드 지원 리얼리스틱 모델 | ✅ 전체 지원 | ✅ 전체 지원 | 모든 TTS 옵션과 호환 |
문제 해결
일반적인 문제
리얼리스틱 모델을 위한 제너레이터 재생성: 리얼리스틱 모델의 안정적이고 일관된 작동을 위해, 비활성 기간 후 새로운 오디오 데이터를 입력하려고 할 때마다 제너레이터를 재생성하는 것이 권장됩니다. 이는 ONNX 런타임 동작으로 인해 침묵 기간 이후 제너레이터를 재사용할 때 립싱크가 작동을 멈출 수 있기 때문입니다. 로컬 TTS 호환성: Runtime Text To Speech 플러그인에서 제공하는 로컬 TTS는 ONNX 런타임 충돌로 인해 일반 Realistic 모델과는 현재 호환되지 않습니다. 그러나 Standard 모델과 Mood-Enabled Realistic 모델 모두와 완벽하게 호환됩니다. TTS 기능이 포함된 일반 Realistic 모델이 특별히 필요한 경우 외부 TTS 서비스를 사용하십시오.
성능 최적화:
- 성능 요구 사항에 따라 Realistic 모델의 Processing Chunk Size를 조정하십시오
- 대상 하드웨어에 적합한 스레드 수를 사용하십시오
- 전체 얼굴 애니메이션이 필요하지 않은 경우 mood-enabled 모델에 대해 Mouth Only 출력 유형 사용을 고려하십시오