Cách sử dụng plugin với 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 bạn phải quen thuộc với các khái niệm hoạt ảnh và dựng rig. Nếu bạn cần hỗ trợ triển khai tính năng này 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 đồng bộ khẩu hình
Hướng dẫn này bao gồm 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 (Chất lượng cao hơn) 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 trong hướng dẫn này.
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, Mixamo, ReadyPlayerMe, hoặc rig tùy chỉnh đơn giản hóa), thì mô hình Tiêu chuẩn (Nhanh hơn) là lựa chọn được hỗ trợ, theo các bước bên dưới.
Plugin mở rộng bắt buộc: Để sử dụng Mô hình Chuẩn với các nhân vật tùy chỉnh, bạn phải cài đặt Plugin mở rộng Đồng bộ Môi Chuẩn 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 bộ xương hợp lệ
- Chứa các mục tiêu biến dạng (hình dạng pha trộn) cho biểu cảm khuôn mặt
- Lý tưởng nhất là có 10+ mục tiêu biến dạng xác định các viseme (càng nhiều viseme thì chất lượng đồng bộ môi càng tốt)
Plugin yêu cầu ánh xạ các morph target của nhân vật bạn sang các viseme 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 phép 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 sau chân răng có liên quan chặt chẽ với nhau.
Bảng 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 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 Phoneme 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 nhiều 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 | Tương đương với ARKit | Ghi chú |
|---|---|---|
| Sil | mouthClose | Vị trí trung tính/nghỉ |
| PP | mouthPressLeft + mouthPressRight | Đối với các âm môi, hãy sử dụng cả hai hình dạng é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 â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ờ ổ răng; hàm hơi hạ xuống. |
| KK | mouthLeft or mouthRight (mild) | Kéo nhẹ khóe miệng mô phỏng gần đúng các âm vòm mềm |
| CH | jawOpen (mild) + mouthFunnel (mild) | Kết hợp cho các âm sau chân răng |
| SS | mouthFrown | Sử dụng một chút nhíu mày cho các âm xuýt. |
| NN | jawOpen (very mild) + mouthClose | Miệng gần như khép lại với hàm hơi mở ra |
| RR | mouthPucker (mild) | Làm tròn nhẹ cho âm r |
| AA | jawOpen + mouthStretchLeft + mouthStretchRight (hoặc jawOpen + mouthOpen) | Mở miệng rộng cho âm "ah" |
| E | jawOpen (mild) + mouthSmile | Vị trí mở vừa phải với nụ cười nhẹ |
| IH | mouthSmile (mild) | Môi hơi mở rộng |
| OH | mouthFunnel | Hình dạng mở tròn |
| OU | mouthPucker | Môi tròn khép chặ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ả 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ó AU nào đang hoạt động |
| PP | AU23 + AU24 | Máy ép môi + máy siết môi |
| FF | AU22 + AU28 | Máy kéo môi + máy hút môi |
| TH | AU25 (mild) + AU27 | Môi tách ra + 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 + má lúm |
| CH | AU18 + AU25 | Môi chu môi + môi tách rời |
| SS | AU20 | Kéo căng môi |
| NN | AU25 (very mild) | Môi hơi hé mở |
| RR | AU18 (mild) | Môi chu môi nhẹ |
| AA | AU27 + AU26 | Kéo miệng + hạ hàm |
| E | AU25 + AU12 | Môi tách ra + kéo khóe miệng |
| IH | AU12 + AU25 (mild) | Kéo khóe miệng + môi hơi mở nhẹ |
| OH | AU27 (mild) + AU18 | Mild mouth stretch + lip pucker |
| OU | AU18 + AU26 (mild) | Môi chu mím + hàm hơi hạ xuống |
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 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 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ơ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ở rộng môi |
| OH | OH | Lỗ mở trung bình bo tròn |
| OU | OO | Môi tròn khép chặt |
3ds Max sử dụng hệ thống dựa trên âm vị cho character studio của nó:
| RuntimeMetaHumanLipSync Viseme | 3ds Max Phoneme | 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 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 trước đóng |
| OH | oh | Nguyên âm tròn môi sau |
| OU | oo | Nguyên âm tròn môi sau |
Các nhân vật tùy chỉnh có viseme hoặc blend shapes/morph targets miệng (Daz Genesis 8/9, Reallusion CC3/CC4, Mixamo, ReadyPlayerMe, v.v.) thường có thể được ánh xạ vào hệ thống viseme của plugin với các 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 Skeletal Mesh của nhân vật bạn
Tìm lưới xương chứa các mục tiêu biến dạng (hình dạng pha trộn) mà bạn muốn sử dụng cho hoạt ảnh đồng bộ môi. Đây có thể là lưới toàn thân hoặc chỉ lưới 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 Targets và Curves
Trước khi tiếp tục, hãy kiểm tra rằng lưới xương của bạn có các mục tiêu biến dạng phù hợp và các đường cong tương ứng cho hoạt ảnh đồng bộ môi.
Kiểm tra Morph Targets: Xác minh rằng skeletal mesh của bạn có chứa các morph targets (blend shapes) có thể được sử dụng làm visemes cho hoạt ảnh đồng bộ môi. Hầu hết các nhân vật có hỗ trợ hoạt ảnh khuôn mặt đều nên có một số morph targets 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 không
- Nếu tab Curves trống nhưng vẫn có morph target, hãy thêm thủ công các đường cong mới bằng cách sử dụng chính xác cùng tên với các morph target của bạn
Lưu ý: Vấn đề này thường xảy ra với các xuất từ Blender khi các mục tiêu biến dạng (morph target) được nhập thành công nhưng các đường cong hoạt ảnh (animation curves) không được tạo tự động. Nếu không có các đường cong khớp, hoạt ảnh sẽ không hiển thị đúng cách sau khi nướng (baking) sang Control Rig.
Giải pháp thay thế: Để ngăn chặn vấn đề này khi 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 đường cong hoạt ảnh cùng với các mục tiêu biến dạng.
3. Tạo một Animation 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 hoạt ảnh và lưu nó vào vị trí thích hợp
- Chuỗi hoạt ảnh vừa tạo sẽ tự động mở ra, hiển thị một hoạt ảnh trống đang phát lặp lại

- Nhấp vào nút
Pauseđể dừng phát 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 soạn thảo sẽ chuyển sang
Chế độ Hoạt ảnhvới tabSequencerđược mở - Đặt
Thời gian kết thúc phạm vi xemthành 0016 (thao tác này sẽ tự động đặtKết thúc phạm vi làm việcthà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à tìm các mục tiêu morph trong danh sách
Curves(nếu không thấy, hãy đóng và mở lại tài sản Animation Sequence) - Xóa bất kỳ mục tiêu morph 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 lip sync
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ộ 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ạ trùng lặp 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 được yêu cầu.
7. Hoạt ảnh từng viseme
- Đối 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 hoạt ảnh của mỗi viseme trên 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 hình dạng viseme tự nhiên
8. Tạo một Pose Asset
- Đi tới
Create Asset->Pose Asset->Current Animation - Nhập một tên mô tả cho Pose Asset và lưu nó vào vị trí thích hợp
- Pose Asset vừa tạo sẽ tự động mở ra, hiển thị các tư thế như
Pose_0,Pose_1, v.v., mỗi tư thế 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 mỗi 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 pose asset của bạn đã sẵn sàng, bạn cần thiết lập các node xử lý âm thanh và blending:
- Tìm hoặc tạo Animation Blueprint cho nhân vật của bạn
- Thiết lập xử lý âm thanh và pha trộn theo các bước tương tự như đã được ghi lại 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 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 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 tên xương chính xác cho khung xương cổ của nhân vật thay vì sử dụng tên xương của 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 khớp môi phần lớn phụ thuộc vào nhân vật cụ thể và mức độ thiết lập các viseme của nó. 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ó hệ thống viseme riêng biệt.