Cách sử dụng plugin với nhân vật tùy chỉnh
Tài liệu hướng dẫn này sẽ đưa bạn qua 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 đòi hỏi sự quen thuộc với các khái niệm hoạt hì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ề mô hình lip sync
Hướng dẫn này đề cập đến các nhân vật tùy chỉnh không sử dụng quy ước đặt tên morph target của MetaHuman hoặc ARKit.
Mô hình Realistic (Higher Quality) hoạt động với các nhân vật có morph target tuân theo chuẩn đặt tên MetaHuman hoặc ARKit, có thể cấu hình qua Lựa chọn Bộ Morph Target. Nếu nhân vật của bạn đã sử dụng (hoặc có thể xuất/chuyển đổi để sử dụng) tên blendshape chuẩn ARKit, bạn có thể dùng mô hình Realistic mà không cần thực hiện quy trình ánh xạ thủ công được nêu trong hướng dẫn này. Tham khảo Chuyển đổi Nhân vật sang Blendshape ARKit để biết các nhân vật phổ biến như CC4/CC5 và Daz Genesis.
Nếu nhân vật của bạn sử dụng một bộ morph target khác (ví dụ: Daz Genesis, Reallusion CC3/CC4/CC5, Mixamo, hoặc một rig tùy chỉnh đơn giản), mô hình Standard (Faster) là tùy chọn được hỗ trợ, thực hiện theo các bước dưới đây.
Yêu cầu Plugin mở rộng: Để sử dụng Standard Model 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 mục Điều kiện tiên quyết của hướng dẫn thiết lập chính.
Tiện ích mở rộng này là bắt buộc đối với mọi 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ó bộ xương hợp lệ
- Chứa các morph target (blend shape) cho biểu cảm khuôn mặt
- Lý tưởng nhất là có 10+ morph target định nghĩa các viseme (càng nhiều viseme thì chất lượng lip sync càng cao)
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 (rất có thể là vậy), bạn không cần khớp chính xác từng viseme. Việc khớp gần đúng 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 sau lợi có liên quan gần gũi.
Tham chiếu ánh xạ viseme
Dưới đây là ánh xạ giữa các hệ thống viseme phổ biến và các viseme mà plugin yêu cầu:
- 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/CC5, Mixamo)
ARKit cung cấp một bộ blend shape toàn diện cho hoạt ảnh khuôn mặt, bao gồm nhiều hình dạng miệng. Sau đây là cách ánh xạ chúng sang các viseme của RuntimeMetaHumanLipSync:
| RuntimeMetaHumanLipSync Viseme | Bản tương đương ARKit | Ghi chú |
|---|---|---|
| Sil | mouthClose | Vị trí trung tính/tư thế nghỉ |
| PP | mouthPressLeft + mouthPressRight | Đối với các âm hai môi, hãy sử dụng cả hai hình ép môi cùng nhau. |
| FF | lowerLipBiteLeft + lowerLipBiteRight (hoặc mouthRollLower) | Môi dưới chạm vào răng trên, như trong các âm "f" và "v" |
| TH | tongueOut | ARKit có khả năng điều khiển lưỡi trực tiếp. |
| DD | jawOpen (mild) + tongueUp (if you have tongue rig) | Lưỡi chạm vào gờ lợi; hàm hạ xuống nhẹ |
| KK | mouthLeft or mouthRight (mild) | Việc nhếch nhẹ khóe miệng mô phỏng xấp xỉ các âm vòm mềm. |
| CH | jawOpen (mild) + mouthFunnel (mild) | Kết hợp cho các âm sau lợi. |
| SS | mouthFrown | Hơi nhăn mặt khi phát âm các âm xuýt. |
| NN | jawOpen (very mild) + mouthClose | Miệng gần như khép lại, hàm hơi mở nhẹ |
| RR | mouthPucker (mild) | Độ tròn môi tinh tế cho âm r |
| AA | jawOpen + mouthStretchLeft + mouthStretchRight (hoặc jawOpen + mouthOpen) | Miệng mở rộng tạo âm "ah" |
| E | jawOpen (mild) + mouthSmile | Vị trí mở vừa phải với nụ cười nhẹ |
| IH | mouthSmile (mild) | Hơi dạng môi |
| OH | mouthFunnel | Hình bo tròn hở |
| OU | mouthPucker | Môi tròn khít |
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 hì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ó AUs đang hoạt động |
| PP | AU23 + AU24 | Ép môi + Siết môi |
| FF | AU22 + AU28 | Phễu môi + mút môi |
| TH | AU25 (mild) + AU27 | Môi tách rời + miệng kéo giãn |
| DD | AU25 + AU16 | Môi tách rời + cơ hạ môi dưới |
| KK | AU26 + AU14 | Hạ hàm + lúm má |
| CH | AU18 + AU25 | Chúm môi + môi tách rời |
| SS | AU20 | Kéo căng môi |
| NN | AU25 (very mild) | Hơi hé môi. |
| RR | AU18 (mild) | Chu môi nhẹ |
| AA | AU27 + AU26 | Kéo giãn miệng + hạ hàm |
| E | AU25 + AU12 | Môi tách ra + kéo khóe môi |
| IH | AU12 + AU25 (mild) | Kéo khóe môi + môi hé nhẹ |
| OH | AU27 (mild) + AU18 | Căng miệng nhẹ + chu môi |
| OU | AU18 + AU26 (mild) | Chun môi + hạ hàm nhẹ |
Hệ thống Preston Blair là một tiêu chuẩn hoạt hình kinh điển sử dụng các tên gọi mô tả cho hình dạng miệng:
| Khẩu hình Runtime MetaHuman Lip Sync | Preston Blair | Ghi chú |
|---|---|---|
| Sil | Rest | Vị trí miệng đóng trung tính |
| PP | MBP | Hình dạng miệng "MBP" kinh điển |
| FF | FV | Vị trí "FV" với răng chạm môi dưới |
| TH | TH | Lưỡi chạm vào 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 những âm thanh này |
| SS | S/Z | Vị trí răng hé mở nhẹ |
| 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ở to |
| E | EH | Miệng mở vừa |
| IH | EE | Dang rộng môi |
| OH | OH | Lỗ mở tròn cỡ vừa |
| OU | OO | Môi tròn khít |
3ds Max sử dụng hệ thống dựa trên âm vị cho Character Studio của nó:
| Runtime MetaHuman Lip Sync Âm hình | Â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 những âm thanh này |
| RR | r | Tương đương trực tiếp |
| AA | ah | Nguyên âm mở |
| E | eh | Nguyên âm giữa |
| IH | ee | Nguyên âm hẹp trước |
| OH | oh | nguyên âm tròn môi sau |
| OU | oo | Nguyên âm đóng hàng sau |
Các nhân vật tùy chỉnh có viseme hoặc blend shape/morph target vùng miệng (Daz Genesis 8/9, Reallusion CC3/CC4/CC5, Mixamo, v.v.) thường có thể được ánh xạ vào hệ thống viseme của plugin với độ xấp xỉ hợp lý.
Tạo Pose Asset tùy chỉnh
Thực hiện theo các bước sau để tạo một asset tư thế tùy chỉnh cho nhân vật của bạn, asset này sẽ được sử dụng với nút Blend Runtime MetaHuman Lip Sync:
1. Tìm Skeletal Mesh của nhân vật của bạn
Tìm skeletal mesh chứa các morph target (blend shape) bạn muốn dùng cho hoạt ảnh lip sync. Đây có thể là mesh toàn thân hoặc chỉ là mesh khuôn mặt, tùy thuộc vào thiết kế nhân vật của bạn.
2. Kiểm tra Morph Targets và Curves
Trước khi tiếp tục, hãy kiểm tra rằng skeletal mesh của bạn có các morph target phù hợp và các đường cong tương ứng cho hoạt ảnh lip sync.
Kiểm tra các Morph Target: Xác minh rằng skeletal mesh của bạn có chứa các morph target (blend shape) có thể dùng làm viseme cho hoạt ảnh lip sync. Hầu hết các nhân vật hỗ trợ hoạt ảnh khuôn mặt đều nên có một số morph target phoneme/viseme.

Quan trọng: Kiểm tra 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ấy các đường cong tương ứng với các morph target của mình hay không
- Nếu tab Curves trống nhưng vẫn tồn tại các morph target, hãy thêm thủ công các đường cong mới với tên giống hệt các morph target của bạn
Lưu ý: Sự cố này thường xảy ra với các bản xuất từ Blender khi các morph target được nhập thành công nhưng các đường cong hoạt hình không được tạo tự động. Nếu không có các đường cong tương ứng, hoạt ảnh sẽ không được tạo đúng cách sau khi bake sang Control Rig.
Giải pháp thay thế: Để ngăn chặn sự cố này khi xuất từ Blender, hãy thử bật Thuộc tính tùy chỉnh và Hoạt hình trong cài đặt xuất FBX, điều này có thể giúp đưa các đường cong hoạt hình kèm theo các mục tiêu biến dạng.
3. Tạo một hoạt ảnh tư thế tham chiếu
- Đi tới
Create Asset -> Create Animation -> Reference Pose - Nhập một tên mô tả cho chuỗi Animation Sequence và lưu nó vào vị trí phù hợp
- Animation Sequence vừa tạo sẽ tự động mở ra, hiển thị một hoạt ảnh trống đang phát trong vòng lặp

- Nhấp vào nút
Pauseđể dừng phát lại hoạt ảnh nhằm 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 cũng sẽ tự động đặtWorking Range Endthành 0016) - Kéo cạnh phải của thanh trượt đến tận cùng bên phải của cửa sổ Sequencer
5. Chuẩn bị các đường cong hoạt ảnh
- Quay lại asset Animation Sequence và tìm các morph target trong danh sách
Curves(nếu chúng không hiển thị, hãy đóng rồi mở lại asset Animation Sequence) - Xóa mọi morph target không liên quan đến viseme hoặc chuyển động miệng mà bạn muốn sử dụng cho lip sync.
6. Lập kế hoạch ánh xạ viseme của bạn
Lập kế hoạch ánh xạ để khớp các khẩu hình của nhân vật với tập hợp khẩu hình theo 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 không có sự khớp chính xác cho mọi viseme bắt buộc.
7. Tạo hoạt ảnh cho từng khẩu hình
- Với mỗi viseme, tạo hoạt ảnh cho các đường cong morph target liên quan từ 0.0 đến 1.0
- Bắt đầu mỗi hoạt ảnh viseme tại một khung hình khác nhau
- Cấu hình các đường cong bổ sung khi cần (độ 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 một 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ị 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 các trọng số viseme để đảm bảo chúng hoạt động như mong đợi.

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

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 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
- Hãy đảm bảo cung cấp đúng tên xương 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 khớp môi phần lớn phụ thuộc vào từng nhân vật cụ thể và việc các viseme của nhân vật đó được thiết lập tốt đến đâu. Các ví dụ trên minh họa plugin hoạt động với nhiều loại nhân vật tùy chỉnh khác nhau, mỗi loại có một hệ thống viseme riêng biệt.