플러그인 구성
모델 구성
Realistic 및 Mood-Enabled Realistic 모델로 안정적으로 작동하려면 긴 무음 구간에 걸쳐 하나를 재사용하는 대신, 새로운 오디오 재생 전마다 제너레이터를 다시 생성하세요. 자세한 내용은 문제 해결의 제너레이터 재생성을 참조하세요.
표준 모델 구성
Create Runtime Viseme Generator 노드는 대부분의 시나리오에서 잘 작동하는 기본 설정을 사용합니다. 구성은 Animation Blueprint 블렌딩 노드 속성을 통해 처리됩니다.
Animation Blueprint 구성 옵션은 아래의 Lip Sync 구성 섹션을 참조하세요.
사실적인 모델 구성
Create Realistic MetaHuman Lip Sync Generator 노드는 생성기의 동작을 사용자 정의할 수 있는 선택적 Configuration 매개변수를 받습니다:
모델 유형
모델 유형 설정은 사용할 사실적 모델의 버전을 결정합니다:
| 모델 유형 | 성능 | 시각적 품질 | 노이즈 처리 | 권장 사용 사례 |
|---|---|---|---|---|
| 고도로 최적화됨 (기본값) | 최고 성능, 최저 CPU 사용량 | 양호한 품질 | 배경 소음이나 비음성 소리가 있을 때 눈에 띄는 입 움직임이 나타날 수 있음 | 깨끗한 오디오 환경, 성능이 중요한 시나리오 |
| 준최적화 | 양호한 성능, 중간 정도의 CPU 사용량 | 높은 품질 | 소음이 있는 오디오에서 더 나은 안정성 | 성능과 품질의 균형, 혼합된 오디오 조건 |
| 원본 | 최신 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으로 나누어떨어져야 함)
- 값이 높을수록 동기화가 더 좋아지지만 지연 시간이 증가합니다
출력 유형: 생성할 얼굴 컨트롤을 결정합니다.
- 전체 얼굴: 81개의 모든 얼굴 컨트롤(눈썹, 눈, 코, 입, 턱, 혀)
- 입만: 입, 턱, 혀 관련 컨트롤만
성능 설정: 일반 사실적 모델과 동일한 Intra Op Threads 및 Inter Op Threads 설정을 사용합니다.
무드 설정
사용 가능한 무드:
- 중립, 행복, 슬픔, 혐오, 분노, 놀람, 두려움
- 자신감, 흥분, 지루함, 장난스러움, 혼란
무드 강도: 무드가 애니메이션에 얼마나 강하게 영향을 미치는지 제어합니다 (0.0 ~ 1.0)
런타임 무드 컨트롤
런타임 중에 다음 함수를 사용하여 무드 설정을 조정할 수 있습니다:
- 기분 설정: 현재 기분 유형 변경
- 기분 강도 설정: 기분이 애니메이션에 얼마나 강하게 영향을 미치는지 조정 (0.0 ~ 1.0)
- 선행 시간(ms) 설정: 동기화를 위한 선행 타이밍 수정
- 출력 유형 설정: 전체 얼굴과 입만 제어 간 전환

무드 선택 가이드
콘텐츠에 따라 적절한 무드를 선택하세요:
| Mood | 최적 용도 | 일반적인 강도 범위 |
|---|---|---|
| 중립 | 일반 대화, 내레이션, 기본 상태 | 0.5 - 1.0 |
| 행복 | 긍정적인 콘텐츠, 밝은 대화, 축하 | 0.6 - 1.0 |
| 슬픔 | 우울한 콘텐츠, 감정적인 장면, 침울한 순간 | 0.5 - 0.9 |
| 혐오 | 부정적인 반응, 불쾌한 콘텐츠, 거부 | 0.4 - 0.8 |
| 분노 | 공격적인 대화, 대립하는 장면, 좌절 | 0.6 - 1.0 |
| 놀람 | 예상치 못한 사건, 폭로, 충격적인 반응 | 0.7 - 1.0 |
| 두려움 | 위협적인 상황, 불안, 긴장된 대화 | 0.5 - 0.9 |
| 자신감 | 전문적인 프레젠테이션, 리더십 대화, 단호한 발언 | 0.7 - 1.0 |
| 흥분 | 활기찬 콘텐츠, 발표, 열정적인 대화 | 0.8 - 1.0 |
| 지루함 | 단조로운 콘텐츠, 무관심한 대화, 지친 발언 | 0.3 - 0.7 |
| 장난스러움 | 캐주얼한 대화, 유머, 가벼운 상호작용 | 0.6 - 0.9 |
| 혼란 | 질문이 많은 대화, 불확실성, 당혹감 | 0.4 - 0.8 |
애니메이션 블루프린트 구성
립 싱크 구성
- 표준 모델
- 사실적인 모델
Blend Runtime MetaHuman Lip Sync 노드의 속성 패널에는 다음과 같은 구성 옵션이 있습니다:
| 프로퍼티 | 기본값 | 설명 |
|---|---|---|
| 보간 속도 | 25 | 입술 움직임이 비짐(viseme) 사이를 전환하는 속도를 제어합니다. 값이 높을수록 전환이 더 빠르고 급격해집니다. |
| 리셋 시간 | 0.2 | 립 싱크가 리셋되는 시간(초)입니다. 오디오가 중지된 후에도 립 싱크가 계속되는 것을 방지하는 데 유용합니다. |
웃음 애니메이션
오디오에서 감지된 웃음에 동적으로 반응하는 웃음 애니메이션도 추가할 수 있습니다:
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에서만 사용할 수 있습니다.
Blend Realistic MetaHuman Lip Sync 노드는 속성 패널에 구성 옵션이 있습니다:
| 속성 | 기본값 | 설명 |
|---|---|---|
| 보간 속도 | 30 | 발화 중 표정이 전환되는 속도를 제어합니다. 값이 높을수록 전환이 더 빠르고 급격해집니다. |
| 대기 보간 속도 | 15 | 표정이 대기/중립 상태로 되돌아가는 속도를 제어합니다. 값이 낮을수록 휴식 자세로 더 부드럽고 점진적으로 돌아갑니다. |
| 리셋 시간 | 0.2 | 립 싱크가 대기 상태로 리셋되기까지의 시간(초)입니다. 오디오가 멈춘 후에도 표정이 계속되는 것을 방지하는 데 유용합니다. |
| 대기 상태 유지 | false | 활성화하면 대기 기간 동안 중립으로 리셋하는 대신 마지막 감정 상태를 유지합니다. |
| 눈 표정 유지 | true | 대기 상태 동안 눈 관련 얼굴 컨트롤을 유지할지 여부를 제어합니다. 대기 상태 유지가 활성화된 경우에만 적용됩니다. |
| 눈썹 표정 유지 | true | 대기 상태 동안 눈썹 관련 얼굴 컨트롤을 유지할지 여부를 제어합니다. 대기 상태 유지가 활성화된 경우에만 적용됩니다. |
| 입 모양 유지 | false | 대기 상태 동안 입 모양 컨트롤(혀와 턱 같은 발화 관련 움직임 제외)을 유지할지 여부를 제어합니다. 대기 상태 유지가 활성화된 경우에만 적용됩니다. |
유휴 상태 보존
Preserve Idle State 기능은 Realistic 모델이 침묵 구간을 처리하는 방식을 다룹니다. 개별 viseme을 사용하며 침묵 중에 일관되게 0 값으로 돌아가는 Standard 모델과 달리, Realistic 모델의 신경망은 MetaHuman의 기본 휴식 포즈와 다른 미세한 얼굴 위치를 유지할 수 있습니다.
활성화 시점:
- 음성 세그먼트 간의 감정 표현 유지
- 캐릭터 성격 특성 보존
- 시네마틱 시퀀스에서 시각적 연속성 보장
지역 제어 옵션:
- 눈 표정: 눈을 가늘게 뜨는 것, 크게 뜨는 것, 눈꺼풀 위치를 유지합니다
- 눈썹 표정: 눈썹과 이마 위치를 유지합니다
- 입 모양: 일반적인 입 곡률을 유지하면서 발음 움직임(혀, 턱)이 초기화되도록 허용합니다
기존 애니메이션과 결합
읽는 것보다 보는 게 더 좋으신가요? 이 설정을 그대로 다루는 영상 튜토리얼을 확인해 보세요.
기존 바디 애니메이션과 커스텀 얼굴 애니메이션을 덮어쓰지 않으면서 립 싱크와 웃음을 함께 적용하려면:
이 설정은 얼굴 Animation Blueprint에 적용됩니다. 립 싱크는 몸체 Animation Blueprint의 일부가 아니기 때문입니다. 사용자 지정 몸체 애니메이션(예: 몸통, 팔 및 기타 몸체 움직임)의 경우, 애니메이션 시퀀스를 Sequence Player를 통해 몸체 Animation Blueprint의 출력 포즈에 직접 연결하기만 하면 됩니다. 그곳에는 추가 설정이 필요하지 않습니다.
Layered blend per bone노드를 바디 애니메이션과 최종 출력 사이에 추가하세요.- 레이어 설정을 구성하세요:
Layer Setup배열에 1개 항목을 추가합니다- 레이어의
Branch Filters에 다음Bone Name을 가진 3개 항목을 추가합니다:FACIAL_C_FacialRootFACIAL_C_Neck2RootFACIAL_C_Neck1Root
- 커스텀 얼굴 애니메이션에 중요:
Curve Blend Option에서 **"Use Max Value"**를 선택하세요. 이렇게 하면 커스텀 얼굴 애니메이션(표정, 감정 등)이 립 싱크 위에 적절히 레이어링될 수 있습니다. - 연결을 구성하세요:
- 사용자 정의 애니메이션(일반적으로 원하는 애니메이션 시퀀스 에셋이 있는
Sequence Player) →Base Pose입력 - 얼굴 애니메이션 출력(립 싱크 및/또는 웃음 노드에서) →
Blend Poses 0입력 - 레이어드 블렌드 노드 → 최종
Result포즈
- 사용자 정의 애니메이션(일반적으로 원하는 애니메이션 시퀀스 에셋이 있는

Morph Target 세트 선택
- 표준 모델
- 사실적인 모델
Standard Model은 사용자 지정 포즈 에셋 설정을 통해 모든 morph target 명명 규칙을 본질적으로 지원하는 포즈 에셋을 사용합니다. 추가 구성은 필요하지 않습니다.
Blend Realistic MetaHuman Lip Sync 노드에는 얼굴 애니메이션에 사용할 모프 타깃 명명 규칙을 결정하는 Morph Target Set 프로퍼티가 포함되어 있습니다:
| Morph Target 세트 | 설명 | 사용 사례 |
|---|---|---|
| MetaHuman (기본값) | 표준 MetaHuman morph target 이름 (예: CTRL_expressions_jawOpen) | MetaHuman 캐릭터 |
| ARKit | Apple ARKit 호환 이름 (예: JawOpen, MouthSmileLeft) | ARKit 기반 캐릭터 |
캐릭터를 ARKit 또는 MetaHuman 블렌드셰이프로 변환하기
캐릭터가 기본적으로 ARKit 표준 블렌드셰이프 이름을 사용하지 않는 경우, 여러 인기 있는 상용 캐릭터 시스템을 변환하여 이를 생성할 수 있습니다(또는 CC5의 경우 네이티브 MetaHuman 블렌드셰이프로 바로 변환할 수도 있습니다). 이렇게 하면 Standard Model에 필요한 수동 viseme 매핑 과정 대신 위의 ARKit 또는 MetaHuman Morph Target Set을 사용할 수 있습니다. CC4와 CC5 캐릭터는 여기서 다르게 처리되는데, CC5 캐릭터는 ARKit 변환이 전혀 필요 없이 MetaHuman의 네이티브 얼굴 리그를 공유할 수 있기 때문입니다. CC5: MetaHuman 블렌드셰이프로 변환 (권장) 캐릭터가 HD 얼굴 프로필로 CC5에서 제작되었다면, 이미 MetaHuman의 얼굴 컨트롤과 스켈레톤을 공유하므로 ARKit 블렌드셰이프를 수동으로 생성할 필요가 없습니다. 대신: 가져온 후에는 캐릭터의 블렌드 셰이프가 이미 네이티브 MetaHuman 명명법을 사용하고 있으므로 ARKit 대신 MetaHuman Morph Target Set 옵션을 선택하세요. CC4(또는 HD 프로필이 없는 CC5): ARKit blendshapes로 변환 CC4를 사용 중이거나 HD 얼굴 프로필을 사용하지 않는 CC5 캐릭터라면, 대신 수동 ARKit 변환을 사용하세요. 시작하기 전에 캐릭터의 Facial Profile이 CC4 Extended로 설정되어 있는지 확인하세요 (Standard, Extended-Plus 또는 최신 HD Facial Profile이 아님). 스크립트의 blendshape 매핑은 Extended의 슬라이더 이름에 대해 하드코딩되어 있으며, 다른 프로필은 서로 다른 명명 규칙을 사용하므로 스크립트가 예상 슬라이더를 조용히 건너뛰거나 찾지 못할 수 있습니다. 이 스크립트를 다운로드하세요: 텍스트 편집기에서 스크립트를 열고, Character Creator에서 캐릭터를 선택한 다음, 상단 메뉴의 Script 아래에서 Load Python을 선택하세요. 그런 다음 방금 편집한 스크립트를 선택하세요. 이제 스크립트가 기본 Reallusion 슬라이더에서 완전한 ARKit blendshapes 세트를 생성하고 이를 OBJ 파일로 내보냅니다. 이 작업은 몇 분 정도 걸릴 수 있습니다. 이제 Facial Profile Editor 창으로 이동하여 해당 형태들을 가져올 수 있습니다. Edit Expressions 버튼을 클릭하고 드롭다운 Batch Import에서 OBJ를 선택하세요. 여기에서 앞서 참조한 폴더를 가져올 수 있습니다. 그러면 모든 ARKit 셰이프가 나열됩니다. Target Category에 이름을 입력하세요. 예: AR_Kit, 그런 다음 OK를 클릭하세요. 이렇게 하면 Expression 아래에 새 카테고리가 생성됩니다. 다른 모든 카테고리는 비활성화할 수 있습니다. ARKit 카테고리가 설정되면 평소처럼 캐릭터를 FBX로 내보내세요. 이렇게 하면 캐릭터에 표준 52개의 ARKit 블렌드셰이프가 적용되며, 위의 ARKit Morph Target Set 옵션과 함께 사용할 수 있습니다. 참고: CC4의 리그에서는 턱 움직임이 순수 블렌드셰이프가 아니라 부분적으로 본 회전에 의해 구동되므로, 내보낸 후 Daz의 FACS morph는 Genesis 8.1 및 Genesis 9에서 기본 제공되며, 이름을 바꿀 필요 없이 이미 ARKit과 호환됩니다. 일반 Genesis 8(8.1 아님)에는 기본적으로 포함되지 않습니다. Genesis 8.1을 대신 사용하거나 별도의 FACS morph 팩을 추가해야 합니다. 활발히 유지 관리되는 Diffeomorphic 애드온(Daz Studio와 Blender 브리지이며, Daz 3D와는 무관)은 이러한 것들을 Unreal로 가져오는 권장 방법입니다: 내보낸 후에는 위의 ARKit Morph Target Set 옵션을 사용하세요. 참고: 속눈썹과 안구의 시선 방향 셰이프는 메인 페이스 메시와 구동 방식이 달라 완전히 반영되지 않을 수 있지만, 입 모양과 턱 셰이프만 필요로 하는 립 싱크에는 영향을 주지 않습니다.Reallusion CC4/CC5 및 Daz Genesis 8.1/9 변환 가이드 (클릭하여 펼치기)
rl_export_arkit_objs.pyoutput_dir = "path/to/your/target/folder"라고 적힌 부분에서 내보내기 폴더의 경로를 지정하세요. 슬래시 /를 사용해야 합니다.



jawOpen이 약해 보이거나 입을 설득력 있게 벌리지 못할 수 있습니다. 이런 경우 FBX 내보내기 옵션에서 Mouth Open as Morph를 활성화하세요. 그러면 턱의 본 구동 움직임이 전용 블렌드셰이프로 베이크되어 기본 블렌드셰이프 대신 jawOpen의 소스로 할당할 수 있습니다. 또는 cc_blender_tools 애드온을 사용하면 캐릭터를 Blender를 거쳐 처리하여 이 문제와 기타 형상 문제를 해결할 수 있습니다. 워크플로는 해당 문서의 "Blender Round Trip" 섹션을 참조하세요(페이지 제목에는 Unity가 언급되어 있지만, 이 특정 섹션은 엔진에 구애받지 않습니다).
립 싱크 동작 미세 조정
특정 립 싱크 커브 스케일링
립 싱크로 생성된 개별 얼굴 움직임은 Modify Curve 노드를 사용하여 약화시키거나 증폭시킬 수 있습니다. 이는 특정 커브가 오디오 콘텐츠나 캐릭터에 비해 너무 과하게 표현될 때 유용합니다.
설정:
- 립 싱크 블렌드 노드 뒤에
Modify Curve노드를 추가하세요 - 노드를 마우스 오른쪽 버튼으로 클릭하고 Add Curve Pin을 선택한 다음, 스케일링할 커브 이름을 입력하세요
- 노드의 Apply Mode 프로퍼티를 Scale로 설정하세요
- Value 파라미터를 설정하세요: 1.0 미만의 값은 움직임을 약화시키고, 1.0 초과의 값은 증폭시킵니다 (예: 0.8 = 20% 감소)
일반적으로 스케일되는 커브:
| 커브 이름 | 용도 | 적용 대상 | 일반적인 조정 |
|---|---|---|---|
CTRL_expressions_tongueOut | 특정 음소 동안 혀의 전방 돌출 | 표준 모델 | 돌출을 줄이려면 0.8 |
CTRL_expressions_jawOpen | 턱 벌림 범위 | 사실적인 모델 | 턱 움직임을 줄이려면 0.9 |
동일한 Modify Curve 노드에 여러 개의 커브 핀을 추가하여 여러 커브를 한 번에 스케일할 수 있습니다.
무드별 미세 조정
무드 지원 모델의 경우, 특정 감정 표현을 세밀하게 조정할 수 있습니다:
눈썹 제어:
CTRL_expressions_browRaiseInL/CTRL_expressions_browRaiseInR- 안쪽 눈썹 올리기CTRL_expressions_browRaiseOuterL/CTRL_expressions_browRaiseOuterR- 바깥쪽 눈썹 올리기CTRL_expressions_browDownL/CTRL_expressions_browDownR- 눈썹 내리기
눈 표정 제어:
CTRL_expressions_eyeSquintInnerL/CTRL_expressions_eyeSquintInnerR- 눈 가늘게 뜨기CTRL_expressions_eyeCheekRaiseL/CTRL_expressions_eyeCheekRaiseR- 볼 올리기
모델 비교 및 선택
모델 선택하기
프로젝트에 사용할 립 싱크 모델을 결정할 때 다음 요소를 고려하세요:
| 고려 사항 | 표준 모델 | 사실적 모델 | 감정 지원 사실적 모델 |
|---|---|---|---|
| 캐릭터 호환성 | MetaHuman 및 모든 사용자 정의 캐릭터 유형 | MetaHuman (및 ARKit) 캐릭터 | MetaHuman (및 ARKit) 캐릭터 |
| 시각적 품질 | 효율적인 성능과 양호한 립 싱크 | 더 자연스러운 입 움직임으로 향상된 사실감 | 감정 표현으로 향상된 사실감 |
| 성능 | 모바일/VR을 포함한 모든 플랫폼에 최적화 | 더 높은 리소스 요구 사항 | 더 높은 리소스 요구 사항 |
| 기능 | 14개 비세임, 웃음 감지 | 81개 얼굴 제어, 3개 최적화 레벨 | 81개 얼굴 제어, 12개 감정, 구성 가능한 출력 |
| 플랫폼 지원 | Windows, Android, Quest | Windows, Mac, iOS, Linux, Android, Quest | Windows, Mac, iOS, Linux, Android, Quest |
| 사용 사례 | 일반 애플리케이션, 게임, VR/AR, 모바일 | 시네마틱 경험, 근접 상호작용 | 감정적 스토리텔링, 고급 캐릭터 상호작용 |
엔진 버전 호환성
Unreal Engine 5.2를 사용 중이라면, UE의 리샘플링 라이브러리 버그로 인해 Realistic Models가 제대로 작동하지 않을 수 있습니다. 안정적인 립 싱크 기능이 필요한 UE 5.2 사용자는 Standard Model을 대신 사용해 주세요.
이 문제는 UE 5.2에만 해당하며 다른 엔진 버전에는 영향을 미치지 않습니다.
성능 권장 사항
- 대부분의 프로젝트에서는 Standard Model이 품질과 성능의 탁월한 균형을 제공합니다
- MetaHuman 캐릭터에 최고의 시각적 충실도가 필요할 때는 Realistic Model을 사용하세요
- 애플리케이션에서 감정 표현 제어가 중요할 때는 Mood-Enabled Realistic Model을 사용하세요
- 모델을 선택할 때는 대상 플랫폼의 성능 역량을 고려하세요
- 다양한 최적화 수준을 테스트하여 특정 사용 사례에 가장 적합한 균형을 찾으세요
문제 해결
일반적인 문제
사실적인 모델을 위한 제너레이터 재생성: 사실적인 모델과 함께 안정적이고 일관된 작동을 위해서는 일정 기간 비활성 상태 후 새로운 오디오 데이터를 입력할 때마다 제너레이터를 재생성하는 것이 권장됩니다. 이는 ONNX 런타임 동작 때문이며, 침묵 기간 후 제너레이터를 재사용하면 립 싱크가 작동을 멈출 수 있습니다.
예를 들어, Play Sound 2D를 호출하거나 사운드 웨이브 재생 및 립 싱크를 시작하는 다른 방법을 사용할 때마다와 같이, 매 재생 시작 시 립 싱크 생성기를 다시 만들 수 있습니다:

Runtime Text To Speech 통합을 위한 플러그인 위치: Runtime MetaHuman Lip Sync를 Runtime Text To Speech와 함께 사용할 때(두 플러그인 모두 ONNX Runtime을 사용함), 플러그인이 엔진의 Marketplace 폴더에 설치되어 있으면 문제가 발생할 수 있습니다. 이 문제를 해결하려면:
\Engine\Plugins\Marketplace(예:C:\Program Files\Epic Games\UE_5.6\Engine\Plugins\Marketplace) 아래의 UE 설치 폴더에서 두 플러그인을 모두 찾으세요.RuntimeMetaHumanLipSync및RuntimeTextToSpeech폴더를 모두 프로젝트의Plugins폴더로 이동하세요.- 프로젝트에
Plugins폴더가 없으면.uproject파일과 같은 디렉터리에 만드세요. - Unreal Editor를 다시 시작하세요.
이는 엔진의 Marketplace 디렉터리에서 여러 ONNX Runtime 기반 플러그인이 로드될 때 발생할 수 있는 호환성 문제를 해결합니다.
패키징 구성 (Windows): Windows에서 패키징된 프로젝트에서 립 싱크가 제대로 작동하지 않는 경우, Development 대신 Shipping 빌드 구성을 사용하고 있는지 확인하세요. Development 구성은 패키징된 빌드에서 사실적인 모델의 ONNX 런타임에 문제를 일으킬 수 있습니다.
이 문제를 해결하려면:
- 프로젝트 설정 → 패키징에서 빌드 구성을 Shipping으로 설정하세요
- 프로젝트를 다시 패키징하세요

일부 Blueprint 전용 프로젝트에서는 Shipping이 선택되어 있어도 Unreal Engine이 여전히 Development 구성으로 빌드할 수 있습니다. 이런 경우, 최소 하나의 C++ 클래스(비어 있어도 됨)를 추가하여 프로젝트를 C++ 프로젝트로 변환하세요. 이렇게 하려면 UE 에디터 메뉴에서 Tools → New C++ Class로 이동하여 빈 클래스를 생성하세요. 그러면 프로젝트가 Shipping 구성으로 올바르게 빌드되도록 강제됩니다. 프로젝트의 기능은 Blueprint 전용으로 유지할 수 있으며, C++ 클래스는 올바른 빌드 구성을 위해 필요할 뿐입니다.
립 싱크 반응성 저하: Streaming Sound Wave 또는 Capturable Sound Wave를 사용할 때 시간이 지남에 따라 립 싱크의 반응성이 떨어지는 경우, 메모리 누적이 원인일 수 있습니다. 기본적으로 새 오디오가 추가될 때마다 메모리가 재할당됩니다. 이 문제를 방지하려면 ReleaseMemory 함수를 주기적으로 호출하여 누적된 메모리를 해제하세요. 예를 들어 약 30초마다 호출하면 됩니다.
성능 최적화:
- 성능 요구 사항에 따라 Realistic 모델의 처리 청크 크기 조정
- 대상 하드웨어에 적합한 스레드 수 사용
- 전체 얼굴 애니메이션이 필요하지 않은 경우 무드 지원 모델에 대해 Mouth Only 출력 유형 사용 고려