커스텀 캐릭터로 플러그인 사용하기
이 가이드는 MetaHuman이 아닌 캐릭터에 Runtime MetaHuman Lip Sync를 설정하는 과정을 안내합니다. 이 과정은 애니메이션 개념과 리깅에 대한 친숙함이 필요합니다. 특정 캐릭터에 이를 구현하는 데 도움이 필요하다면, [email protected]로 전문적인 지원을 요청할 수 있습니다.
립싱크 모델 호환성에 대한 중요 참고 사항
커스텀 캐릭터는 Standard (Faster) 모델에서만 지원됩니다.
Realistic (Higher Quality) 모델은 MetaHuman 캐릭터 전용으로 설계되었으며 커스텀 캐릭터와 함께 사용할 수 없습니다. 이 가이드 전체에서 참조될 때는 메인 설정 가이드의 Standard 모델 지침을 따라야 합니다.
확장 플러그인 필요: 커스텀 캐릭터와 함께 Standard Model을 사용하려면 메인 설정 가이드의 필수 조건 섹션에 설명된 대로 Standard Lip Sync Extension plugin을 설치해야 합니다.
이 확장 기능은 이 가이드에 설명된 모든 커스텀 캐릭터 구현에 필수입니다.
필수 조건
시작하기 전에 캐릭터가 다음 요구 사항을 충족하는지 확인하세요:
- 유효한 스켈레톤을 보유
- 얼굴 표정을 위한 모프 타겟(블렌드 셰이프)을 포함
- 이상적으로 10개 이상의 비즘을 정의하는 모프 타겟을 보유 (비즘이 많을수록 립싱크 품질이 향상됨)
플러그인은 캐릭터의 모프 타겟을 다음 표준 비즘에 매핑해야 합니다:
Sil -> Silence
PP -> Bilabial plosives (p, b, m)
FF -> Labiodental fricatives (f, v)
TH -> Dental fricatives (th)
DD -> Alveolar plosives (t, d)
KK -> Velar plosives (k, g)
CH -> Postalveolar affricates (ch, j)
SS -> Sibilants (s, z)
NN -> Nasal (n)
RR -> Approximant (r)
AA -> Open vowel (aa)
E -> Mid vowel (e)
IH -> Close front vowel (ih)
OH -> Close-mid back vowel (oh)
OU -> Close back vowel (ou)
참고: 캐릭터가 다른 비즘 세트를 가지고 있는 경우(그럴 가능성이 높음), 각 비즘에 대해 정확히 일치하는 것이 필요하지 않습니다. 근사치로도 종종 충분합니다 - 예를 들어, 캐릭터의 SH
비즘을 플러그인의 CH
비즘에 매핑하는 것은 둘 다 밀접하게 관련된 후치경음이므로 효과적으로 작동할 것입니다.
비즘 매핑 참조
다음은 일반적인 비즘 시스템과 플러그인이 요구하는 비즘 간의 매핑입니다:
- Apple ARKit
- FACS 기반 시스템
- Preston Blair System
- 3ds Max Phoneme System
- Custom Characters (Daz Genesis 8/9, Reallusion CC3/CC4, Mixamo, ReadyPlayerMe)
ARKit는 여러 입 모양을 포함하여 얼굴 애니메이션을 위한 포괄적인 블렌드셰이프 세트를 제공합니다. 다음은 이를 RuntimeMetaHumanLipSync 비즘에 매핑하는 방법입니다:
RuntimeMetaHumanLipSync 비즘 | ARKit 동등물 | 참고 |
---|---|---|
Sil | mouthClose | 중립/휴식 위치 |
PP | mouthPressLeft + mouthPressRight | 양순음의 경우, 두 프레스 셰이프를 함께 사용 |
FF | lowerLipBiteLeft + lowerLipBiteRight (또는 mouthRollLower) | 아래 입술이 윗니에 접촉, "f" 및 "v" 소리에서와 같이 |
TH | tongueOut | ARKit는 직접적인 혀 제어 기능을 가짐 |
DD | jawOpen (약간) + tongueUp (혀 리그가 있는 경우) | 혀가 치조융기에 접촉; 약간의 턱 벌림 |
KK | mouthLeft 또는 mouthRight (약간) | 미묘한 입꼬리 당김으로 연구개음 근사 |
CH | jawOpen (약간) + mouthFunnel (약간) | 후치경음에 대해 결합 |
SS | mouthFrown | 치찰음에 약간의 내민 입술 사용 |
NN | jawOpen (매우 약간) + mouthClose | 거의 닫힌 입에 약간의 턱 벌림 |
RR | mouthPucker (약간) | r-소리를 위한 미묘한 둥글림 |
AA | jawOpen + mouthStretchLeft + mouthStretchRight (또는 jawOpen + mouthOpen) | "ah" 소리를 위한 넓게 벌린 입 |
E | jawOpen (약간) + mouthSmile | 중간 벌림 위치에 약간의 미소 |
IH | mouthSmile (약간) | 입술의 약간의 펼쳐짐 |
OH | mouthFunnel | 둥글게 벌린 모양 |
OU | mouthPucker | 단단히 둥글린 입술 |
FACS (Facial Action Coding System)는 얼굴 움직임을 설명하기 위해 동작 단위(AUs)를 사용합니다. 많은 전문 애니메이션 시스템이 FACS 기반 접근법을 사용합니다:
RuntimeMetaHumanLipSync 비즘 | FACS 동작 단위 | 참고 |
---|---|---|
Sil | Neutral | 활성 AU 없음 |
PP | AU23 + AU24 | 입술 누르기 + 입술 조이기 |
FF | AU22 + AU28 | 입술 깔때기 모양 + 입술 빨기 |
TH | AU25 (약간) + AU27 | 입술 벌림 + 입 늘리기 |
DD | AU25 + AU16 | 입술 벌림 + 아래 입술 내리기 |
KK | AU26 + AU14 | 턱 떨어뜨리기 + 보조개 만들기 |
CH | AU18 + AU25 | 입술 오므리기 + 입술 벌림 |
SS | AU20 | 입술 늘리기 |
NN | AU25 (매우 약간) | 약간의 입술 벌림 |
RR | AU18 (약간) | 약간의 입술 오므리기 |
AA | AU27 + AU26 | 입 늘리기 + 턱 떨어뜨리기 |
E | AU25 + AU12 | 입술 벌림 + 입꼬리 당기기 |
IH | AU12 + AU25 (약간) | 입꼬리 당기기 + 약간의 입술 벌림 |
OH | AU27 (약간) + AU18 | 약간의 입 늘리기 + 입술 오므리기 |
OU | AU18 + AU26 (약간) | 입술 오므리기 + 약간의 턱 떨어뜨리기 |
프레스턴 블레어 시스템은 입 모양에 대해 설명적인 이름을 사용하는 고전적인 애니메이션 표준입니다:
RuntimeMetaHumanLipSync Viseme | Preston Blair | 참고 |
---|---|---|
Sil | Rest | 중립적인 닫힌 입 위치 |
PP | MBP | 고전적인 "MBP" 입 모양 |
FF | FV | 아래 입술에 이빨이 닿는 "FV" 위치 |
TH | TH | 앞니에 혀가 닿는 위치 |
DD | D/T/N | 이러한 자음에 대한 유사한 위치 |
KK | CKG | 강한 자음 위치 |
CH | CH/J/SH | 이러한 소리에 대한 약간의 내민 입술 |
SS | S/Z | 약간 벌린 이빨 위치 |
NN | N/NG/L | D/T와 유사하지만 다른 혀 위치 |
RR | R | R 소리를 위한 둥근 입술 |
AA | AI | 크게 벌린 입 |
E | EH | 중간 정도 벌린 입 |
IH | EE | 펴진 입술 |
OH | OH | 둥글게 벌린 중간 크기 |
OU | OO | 단단히 둥글게 오므린 입술 |
3ds Max는 캐릭터 스튜디오를 위해 음소 기반 시스템을 사용합니다:
RuntimeMetaHumanLipSync Viseme | 3ds Max Phoneme | 참고 |
---|---|---|
Sil | rest | 기본 입 위치 |
PP | p_b_m | 직접 동등 |
FF | f_v | 직접 동등 |
TH | th | 직접 동등 |
DD | t_d | 직접 동등 |
KK | k_g | 직접 동등 |
CH | sh_zh_ch | 결합된 형태 |
SS | s_z | 직접 동등 |
NN | n_l | 이러한 소리들을 위해 결합됨 |
RR | r | 직접 동등 |
AA | ah | 열린 모음 소리 |
E | eh | 중간 모음 |
IH | ee | 닫힌 전설 모음 |
OH | oh | 후설 원순 모음 |
OU | oo | 닫힌 후설 모음 |
비주얼 혹은 입 블렌드 셰이프/모프 타겟을 가진 커스텀 캐릭터들(Daz Genesis 8/9, Reallusion CC3/CC4, Mixamo, ReadyPlayerMe 등)은 일반적으로 합리적인 근사치로 플러그인의 비주얼 시스템에 매핑될 수 있습니다.
커스텀 포즈 애셋 생성하기
Blend Runtime MetaHuman Lip Sync
노드와 함께 사용될 캐릭터용 커스텀 포즈 애셋을 생성하려면 다음 단계를 따르세요:
1. 캐릭터의 Skeletal Mesh 찾기
립 싱크 애니메이션에 사용하려는 모프 타겟(블렌드 셰이프)을 포함하는 스켈레탈 메시를 찾으세요. 이는 캐릭터 디자인에 따라 전체 바디 메시일 수도 있고 얼굴 메시만일 수도 있습니다.
2. 모프 타겟과 커브 확인하기
진행하기 전에, 스켈레탈 메시에 립 싱크 애니메이션에 적절한 모프 타겟과 해당 커브가 있는지 확인하세요.
모프 타겟 확인:
스켈레탈 메시에 립 싱크 애니메이션용 비주얼으로 사용될 수 있는 모프 타겟(블렌드 셰이프)이 포함되어 있는지 확인하세요. 얼굴 애니메이션을 지원하는 대부분의 캐릭터는 일부 음소/비주얼 모프 타겟을 가지고 있어야 합니다.
중요: Curves 탭 확인하기 이 단계는 특히 Blender나 다른 외부 소프트웨어에서 익스포트한 캐릭터에 있어 매우 중요합니다:
- Skeletal Mesh 편집기에서 Curves 탭을 엽니다
- 모프 타겟에 해당하는 커브가 보이는지 확인합니다
- Curves 탭이 비어 있지만 모프 타겟이 존재하는 경우, 모프 타겟과 정확히 동일한 이름을 사용하여 새 커브를 수동으로 추가하세요
참고: 이 문제는 Blender 익스포트에서 모프 타겟은 성공적으로 임포트되지만 애니메이션 커브가 자동으로 생성되지 않는 경우에 흔히 발생합니다. 일치하는 커브가 없으면 Control Rig로 베이킹한 후 애니메이션이 제대로 채워지지 않습니다.
대체 해결책: Blender에서 익스포트할 때 이 문제를 방지하려면 FBX 익스포트 설정에서 Custom Properties와 Animation을 활성화해 보세요. 이렇게 하면 모프 타겟과 함께 애니메이션 커브도 포함되는 데 도움이 될 수 있습니다.
3. 레퍼런스 포즈 애니메이션 생성하기
애셋 생성 -> 애니메이션 생성 -> 레퍼런스 포즈
로 이동합니다- 애니메이션 시퀀스에 설명적인 이름을 입력하고 적절한 위치에 저장합니다
- 생성된 Animation Sequence가 자동으로 열리며, 빈 애니메이션이 루프로 재생되는 것을 볼 수 있습니다
- 더 쉬운 편집을 위해 애니메이션 재생을 멈추려면
일시정지
버튼을 클릭하세요
4. 애니메이션 시퀀스 편집하기
Edit in Sequencer
->Edit with FK Control Rig
를 클릭합니다Bake to Control Rig
대화 상자에서 설정을 변경하지 않고Bake to Control Rig
버튼을 클릭합니다
- 편집기가
Animation Mode
로 전환되며Sequencer
탭이 열립니다 View Range End Time
을 0016으로 설정합니다 (이렇게 하면Working Range End
도 자동으로 0016으로 설정됩니다)- 슬라이더의 오른쪽 가장자리를 시퀀서 창의 오른쪽 끝까지 드래그합니다
5. 애니메이션 커브 준비
- Animation Sequence 애셋으로 돌아가서
Curves
목록에서 morph target을 찾습니다 (보이지 않으면 Animation Sequence 애셋을 닫았다가 다시 엽니다) - viseme과 관련 없거나 lip sync에 사용하고 싶지 않은 입 움직임 morph target을 제거합니다
6. 비짐 매핑 계획 세우기
캐릭터의 비짐을 플러그인에서 요구하는 세트와 매칭할 계획을 세우세요. 예를 들어:
Sil -> Sil
PP -> FV
FF -> FV
TH -> TH
DD -> TD
KK -> KG
CH -> CH
SS -> SZ
NN -> NL
RR -> RR
AA -> AA
E -> E
IH -> IH
OH -> O
OU -> U
참고로, 캐릭터의 비짐 세트가 모든 필요한 비짐에 대해 정확히 일치하는 항목을 가지고 있지 않을 때, 매핑이 반복되는 것은 허용됩니다.
7. 각 비짐 애니메이션 적용하기
- 각 비짐에 대해, 관련된 모프 타겣 커브를 0.0에서 1.0으로 애니메이션 처리합니다.
- 각 비짐 애니메이션을 다른 프레임에서 시작하도록 합니다.
- 자연스러운 비짐 형태를 만들기 위해 필요한 추가 커브(턱/입 벌림, 혀 위치 등)를 구성합니다.
8. 포즈 애셋 생성하기
애셋 생성
->포즈 애셋
->현재 애니메이션
으로 이동합니다- 포즈 애셋에 대해 설명적인 이름을 입력하고 적절한 위치에 저장합니다
- 생성된 포즈 애셋은 자동으로 열리며,
Pose_0
,Pose_1
등과 같은 포즈를 보여주며, 각 포즈는 하나의 비제임에 해당합니다 - 비제임 가중치를 미리보기하여 예상대로 작동하는지 확인합니다
9. 포즈 애셋 완성하기
- 필수 조건 섹션의 비제임 이름과 일치하도록 각 포즈의 이름을 변경합니다
- 사용되지 않는 포즈는 삭제합니다
오디오 처리 및 블렌딩 설정
포즈 애셋이 준비되면, 오디오 처리 및 블렌딩 노드를 설정해야 합니다:
- 캐릭터의 Animation Blueprint를 찾거나 생성하세요
- 표준 플러그인 설정 가이드에 문서화된 것과 동일한 단계를 따라 오디오 처리 및 블렌딩을 설정하세요
Blend Runtime MetaHuman Lip Sync
노드에서 기본 MetaHuman 포즈 애셋 대신 사용자 정의 Pose Asset을 선택하세요
바디 애니메이션과 결합
다른 바디 애니메이션과 함께 립 싱크를 수행하려면:
- 표준 플러그인 가이드에 문서화된 것과 동일한 단계를 따르세요
- MetaHuman 본 이름을 사용하는 대신 캐릭터의 목 골격에 대한 올바른 본 이름을 제공해야 합니다
결과
이 설정을 사용하는 사용자 정의 캐릭터의 예시입니다:
립 싱크의 품질은 특정 캐릭터와 해당 비세믹이 얼마나 잘 설정되었는지에 크게 의존합니다. 위 예시들은 서로 다른 유형의 사용자 정의 캐릭터와 고유한 비세믹 시스템으로 플러그인이 작동하는 것을 보여줍니다.