Cách sử dụng plugin với các nhân vật tùy chỉnh
Hướng dẫn này sẽ hướng dẫn bạn quy trình thiết lập Runtime MetaHuman Lip Sync cho các nhân vật không phải MetaHuman. Quy trình này yêu cầu sự quen thuộc với các khái niệm hoạt ảnh và rigging. Nếu bạn cần hỗ trợ triển khai cho nhân vật cụ thể của mình, bạn có thể liên hệ để được hỗ trợ chuyên nghiệp tại [email protected].
Lưu ý quan trọng về các mô hình lip sync
Các nhân vật tùy chỉnh chỉ được hỗ trợ với mô hình Standard (Faster).
Mô hình Realistic (Higher Quality) được thiết kế cho các nhân vật MetaHuman và ARKit và không thể được sử dụng với các nhân vật tùy chỉnh khác. Trong suốt hướng dẫn này, bạn nên làm theo các hướng dẫn của mô hình Standard từ hướng dẫn thiết lập chính khi được tham chiếu.
Yêu cầu Plugin Mở rộng: Để sử dụng Mô hình Standard với các nhân vật tùy chỉnh, bạn phải cài đặt plugin Standard Lip Sync Extension như được mô tả trong Phần Điều kiện tiên quyết của hướng dẫn thiết lập chính.
Phần mở rộng này là bắt buộc đối với tất cả các triển khai nhân vật tùy chỉnh được mô tả trong hướng dẫn này.
Điều kiện tiên quyết
Trước khi bắt đầu, hãy đảm bảo nhân vật của bạn đáp ứng các yêu cầu sau:
- Có một skeleton hợp lệ
- Chứa các morph target (blend shapes) cho các biểu cảm khuôn mặt
- Lý tưởng nhất là có 10+ morph target xác định các viseme (càng nhiều viseme thì chất lượng lip sync càng tốt)
Plugin yêu cầu ánh xạ các morph target của nhân vật của bạn đến các viseme tiêu chuẩn sau:
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)
Lưu ý: Nếu nhân vật của bạn có một bộ viseme khác (điều này rất có thể xảy ra), bạn không cần phải khớp chính xác từng viseme. Các giá trị xấp xỉ thường là đủ - ví dụ, ánh xạ viseme SH của nhân vật bạn sang viseme CH của plugin sẽ hoạt động hiệu quả vì chúng là các âm xuýt có liên quan chặt chẽ với nhau.
Tham chiếu ánh xạ Viseme
Dưới đây là các ánh xạ giữa các hệ thống viseme phổ biến và các viseme yêu cầu của plugin:
- Apple ARKit
- Hệ thống dựa trên FACS
- Hệ thống Preston Blair
- Hệ thống Âm vị 3ds Max
- Nhân vật Tùy chỉnh (Daz Genesis 8/9, Reallusion CC3/CC4, Mixamo, ReadyPlayerMe)
ARKit cung cấp một bộ blendshape toàn diện cho hoạt ảnh khuôn mặt, bao gồm một số hình dạng miệng. Dưới đây là cách ánh xạ chúng sang các viseme của RuntimeMetaHumanLipSync:
| RuntimeMetaHumanLipSync Viseme | ARKit Tương đương | Ghi chú |
|---|---|---|
| Sil | mouthClose | Vị trí trung tính/nghỉ |
| PP | mouthPressLeft + mouthPressRight | Đối với âm môi, sử dụng cả hai hình dạng ép lại với nhau |
| FF | lowerLipBiteLeft + lowerLipBiteRight (hoặc mouthRollLower) | Môi dưới chạm răng trên, như trong âm "f" và "v" |
| TH | tongueOut | ARKit có điều khiển lưỡi trực tiếp |
| DD | jawOpen (nhẹ) + tongueUp (nếu bạn có rig lưỡi) | Lưỡi chạm vào lợi răng; hàm hơi hạ xuống |
| KK | mouthLeft hoặc mouthRight (nhẹ) | Kéo nhẹ khóe miệng xấp xỉ âm thanh ngạc mềm |
| CH | jawOpen (nhẹ) + mouthFunnel (nhẹ) | Kết hợp cho âm xuýt sau lợi |
| SS | mouthFrown | Sử dụng cau mày nhẹ cho âm xuýt |
| NN | jawOpen (rất nhẹ) + mouthClose | Miệng gần như khép lại với hàm hơi mở |
| RR | mouthPucker (nhẹ) | Làm tròn nhẹ cho âm r |
| AA | jawOpen + mouthStretchLeft + mouthStretchRight (hoặc jawOpen + mouthOpen) | Miệng mở rộng cho âm "ah" |
| E | jawOpen (nhẹ) + mouthSmile | Vị trí mở vừa phải với nụ cười nhẹ |
| IH | mouthSmile (nhẹ) | Môi hơi kéo giãn |
| OH | mouthFunnel | Hình dạng mở tròn |
| OU | mouthPucker | Môi mím chặt tròn |
FACS (Hệ thống mã hóa hành động khuôn mặt) sử dụng các Đơn vị hành động (AU) để mô tả các chuyển động trên khuôn mặt. Nhiều hệ thống hoạt ảnh chuyên nghiệp sử dụng các phương pháp dựa trên FACS:
| RuntimeMetaHumanLipSync Viseme | Đơn vị hành động FACS | Ghi chú |
|---|---|---|
| Sil | Trung tính | Không có AU nào hoạt động |
| PP | AU23 + AU24 | Môi ép + môi thắt chặt |
| FF | AU22 + AU28 | Môi phễu + môi hút |
| TH | AU25 (nhẹ) + AU27 | Môi tách rời + miệng kéo căng |
| DD | AU25 + AU16 | Môi tách rời + hạ môi dưới |
| KK | AU26 + AU14 | Hạ hàm + lúm đồng tiền |
| CH | AU18 + AU25 | Môi chu ra + môi tách rời |
| SS | AU20 | Môi kéo căng |
| NN | AU25 (rất nhẹ) | Môi hơi tách rời |
| RR | AU18 (nhẹ) | Môi chu ra nhẹ |
| AA | AU27 + AU26 | Miệng kéo căng + hạ hàm |
| E | AU25 + AU12 | Môi tách rời + kéo khóe miệng |
| IH | AU12 + AU25 (nhẹ) | Kéo khóe miệng + môi hơi tách rời |
| OH | AU27 (nhẹ) + AU18 | Miệng kéo căng nhẹ + môi chu ra |
| OU | AU18 + AU26 (nhẹ) | Môi chu ra + hạ hàm nhẹ |
Hệ thống Preston Blair là một tiêu chuẩn hoạt ảnh cổ điển sử dụng các tên mô tả cho hình dạng miệng:
| RuntimeMetaHumanLipSync Viseme | Preston Blair | Ghi chú |
|---|---|---|
| Sil | Rest | Vị trí miệng khép trung tính |
| PP | MBP | Hình dạng miệng "MBP" cổ điển |
| FF | FV | Vị trí "FV" với răng trên môi dưới |
| TH | TH | Lưỡi chạm răng cửa |
| DD | D/T/N | Vị trí tương tự cho các phụ âm này |
| KK | CKG | Vị trí phụ âm cứng |
| CH | CH/J/SH | Hơi bĩu môi cho các âm này |
| SS | S/Z | Vị trí răng hơi hé mở |
| NN | N/NG/L | Tương tự D/T nhưng vị trí lưỡi khác |
| RR | R | Môi tròn cho âm R |
| AA | AI | Miệng mở rộng |
| E | EH | Miệng mở vừa phải |
| IH | EE | Môi kéo giãn |
| OH | OH | Độ mở tròn vừa phải |
| OU | OO | Môi mím chặt tròn |
3ds Max sử dụng hệ thống dựa trên âm vị cho character studio của mình:
| RuntimeMetaHumanLipSync Viseme | Âm vị 3ds Max | Ghi chú |
|---|---|---|
| Sil | rest | Vị trí miệng mặc định |
| PP | p_b_m | Tương đương trực tiếp |
| FF | f_v | Tương đương trực tiếp |
| TH | th | Tương đương trực tiếp |
| DD | t_d | Tương đương trực tiếp |
| KK | k_g | Tương đương trực tiếp |
| CH | sh_zh_ch | Hình dạng kết hợp |
| SS | s_z | Tương đương trực tiếp |
| NN | n_l | Kết hợp cho các âm này |
| RR | r | Tương đương trực tiếp |
| AA | ah | Âm nguyên âm mở |
| E | eh | Nguyên âm giữa |
| IH | ee | Nguyên âm trước đóng |
| OH | oh | Nguyên âm tròn sau |
| OU | oo | Nguyên âm sau đóng |
Các nhân vật tùy chỉnh với viseme hoặc hình dạng miệng blend shape/morph target (Daz Genesis 8/9, Reallusion CC3/CC4, Mixamo, ReadyPlayerMe, v.v.) thường có thể được ánh xạ tới hệ thống viseme của plugin với các giá trị xấp xỉ hợp lý.
Tạo một Pose Asset tùy chỉnh
Thực hiện theo các bước sau để tạo một pose asset tùy chỉnh cho nhân vật của bạn, asset này sẽ được sử dụng với node Blend Runtime MetaHuman Lip Sync:
1. Xác định vị trí Skeletal Mesh của nhân vật
Tìm skeletal mesh có chứa các morph target (blend shape) mà bạn muốn sử dụng cho hoạt ảnh đồng bộ môi. Đây có thể là một mesh toàn thân hoặc chỉ là một mesh khuôn mặt, tùy thuộc vào thiết kế nhân vật của bạn.
2. Xác minh Morph Target và Curves
Trước khi tiếp tục, hãy kiểm tra xem skeletal mesh của bạn có các morph target và curve tương ứng phù hợp cho hoạt ảnh đồng bộ môi hay không.
Kiểm tra Morph Target: Xác minh rằng skeletal mesh của bạn chứa các morph target (blend shape) có thể được sử dụng làm viseme cho hoạt ảnh đồng bộ môi. Hầu hết các nhân vật hỗ trợ hoạt ảnh khuôn mặt nên có một số morph target âm vị/viseme.

Quan trọng: Xác minh Tab Curves Bước này đặc biệt quan trọng đối với các nhân vật được xuất từ Blender hoặc phần mềm bên ngoài khác:
- Mở tab Curves trong trình chỉnh sửa Skeletal Mesh
- Kiểm tra xem bạn có thể thấy các curve tương ứng với morph target của mình không
- Nếu tab Curves trống nhưng morph target vẫn tồn tại, hãy thêm thủ công các curve mới bằng cách sử dụng chính xác cùng tên với morph target của bạn
Lưu ý: Vấn đề này thường xảy ra với các xuất khẩu từ Blender, nơi morph target được nhập thành công nhưng các curve hoạt ảnh không được tạo tự động. Nếu không có curve khớp, hoạt ảnh sẽ không được tạo ra đúng cách sau khi bake sang Control Rig.
Giải pháp thay thế: Để ngăn chặn vấn đề này trong quá trình xuất từ Blender, hãy thử bật Custom Properties và Animation trong cài đặt xuất FBX của bạn, điều này có thể giúp bao gồm các curve hoạt ảnh cùng với các morph target.
3. Tạo một Reference Pose Animation
- Đi tới
Create Asset -> Create Animation -> Reference Pose - Nhập một tên mô tả cho chuỗi hoạt ảnh và lưu nó vào một vị trí thích hợp
- Animation Sequence được tạo sẽ tự động mở, hiển thị một hoạt ảnh trống phát trong một vòng lặp

- Nhấp vào nút
Pauseđể dừng phát lại hoạt ảnh để chỉnh sửa dễ dàng hơn

4. Chỉnh sửa Animation Sequence
- Nhấp vào
Edit in Sequencer->Edit with FK Control Rig - Trong hộp thoại
Bake to Control Rig, nhấp vào nútBake to Control Rigmà không thay đổi bất kỳ cài đặt nào

- Trình chỉnh sửa sẽ chuyển sang
Animation Modevới tabSequencerđang mở - Đặt
View Range End Timethành 0016 (thao tác này sẽ tự động đặtWorking Range Endthành 0016) - Kéo cạnh phải của thanh trượt đến đầu bên phải của cửa sổ sequencer
5. Chuẩn bị các Đường cong Hoạt hình
- Quay lại tài sản Animation Sequence và định vị các mục tiêu biến dạng trong danh sách
Curves(nếu chúng không hiển thị, hãy đóng và mở lại tài sản Animation Sequence) - Xóa bất kỳ mục tiêu biến dạng nào không liên quan đến viseme hoặc chuyển động miệng mà bạn muốn sử dụng cho đồng bộ môi
6. Lập kế hoạch ánh xạ viseme của bạn
Tạo một kế hoạch ánh xạ để khớp các viseme của nhân vật với bộ viseme yêu cầu của plugin. Ví dụ:
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
Lưu ý rằng việc có các ánh xạ lặp lại là chấp nhận được khi bộ viseme của nhân vật của bạn không có kết quả khớp chính xác cho mọi viseme bắt buộc.
7. Tạo hoạt ảnh cho từng viseme
- Đối với mỗi viseme, tạo hoạt ảnh cho các đường cong morph target có liên quan từ 0.0 đến 1.0
- Bắt đầu hoạt ảnh của mỗi viseme trên một khung hình khác nhau
- Cấu hình thêm các đường cong cần thiết (mở hàm/miệng, vị trí lưỡi, v.v.) để tạo ra các hình dạng viseme trông tự nhiên
8. Tạo Pose Asset
- Đi tới
Create Asset->Pose Asset->Current Animation - Nhập tên mô tả cho Pose Asset và lưu nó vào vị trí thích hợp
- Pose Asset được tạo sẽ tự động mở ra, hiển thị các pose như
Pose_0,Pose_1, v.v., mỗi pose tương ứng với một viseme - Xem trước trọng số viseme để đảm bảo chúng hoạt động như mong đợi

9. Hoàn thiện Pose Asset
- Đổi tên từng pose để khớp với tên viseme từ phần Điều kiện tiên quyết
- Xóa bất kỳ pose nào không được sử dụng
Thiết lập xử lý và pha trộn âm thanh
Khi tài nguyên tư thế (pose asset) của bạn đã sẵn sàng, bạn cần thiết lập các node xử lý và pha trộn âm thanh:
- Xác định vị trí hoặc tạo Animation Blueprint cho nhân vật của bạn
- Thiết lập xử lý và pha trộn âm thanh theo các bước tương tự như đã được ghi trong hướng dẫn thiết lập plugin tiêu chuẩn
- Trong node
Blend Runtime MetaHuman Lip Sync, hãy chọn tài nguyên tư thế tùy chỉnh của bạn thay vì tài nguyên tư thế MetaHuman mặc định

Kết hợp với hoạt ảnh cơ thể
Nếu bạn muốn thực hiện đồng bộ khẩu hình miệng (lip sync) cùng với các hoạt ảnh cơ thể khác:
- Thực hiện theo các bước tương tự như đã được ghi trong hướng dẫn plugin tiêu chuẩn
- Đảm bảo cung cấp tên xương (bone names) chính xác cho khung xương cổ của nhân vật thay vì sử dụng tên xương MetaHuman
Kết quả
Dưới đây là các ví dụ về nhân vật tùy chỉnh sử dụng thiết lập này:



Chất lượng của đồng bộ khẩu hình miệng phần lớn phụ thuộc vào nhân vật cụ thể và mức độ thiết lập viseme của chúng tốt đến đâu. Các ví dụ trên minh họa plugin hoạt động với các loại nhân vật tùy chỉnh khác nhau có hệ thống viseme riêng biệt.