Cấu hình Plugin
Cấu hình Mô hình
Cấu hình Mô hình Chuẩn
Nút Create Runtime Viseme Generator sử dụng các cài đặt mặc định phù hợp với hầu hết các tình huống. Việc cấu hình được thực hiện thông qua các thuộc tính của nút pha trộn trong Animation Blueprint.
Để biết các tùy chọn cấu hình Animation Blueprint, hãy xem phần Cấu hình Lip Sync bên dưới.
Cấu hình Mô hình Thực tế
Nút Create Realistic MetaHuman Lip Sync Generator chấp nhận một tham số Configuration tùy chọn cho phép bạn tùy chỉnh hành vi của trình tạo:
Loại Mô hình
Cài đặt Loại Mô hình xác định phiên bản nào của mô hình thực tế sẽ được sử dụng:
| Loại Mô hình | Hiệu suất | Chất lượng Hình ảnh | Xử lý Tiếng ồn | Trường hợp Sử dụng Khuyến nghị |
|---|---|---|---|---|
| Highly Optimized (Mặc định) | Hiệu suất cao nhất, sử dụng CPU thấp nhất | Chất lượng tốt | Có thể hiển thị chuyển động miệng đáng chú ý với tiếng ồn nền hoặc âm thanh không phải giọng nói | Môi trường âm thanh sạch, các tình huống quan trọng về hiệu suất |
| Semi-Optimized | Hiệu suất tốt, sử dụng CPU vừa phải | Chất lượng cao | Ổn định hơn với âm thanh nhiễu | Cân bằng hiệu suất và chất lượng, điều kiện âm thanh hỗn hợp |
| Original | Phù hợp cho việc sử dụng thời gian thực trên các CPU hiện đại | Chất lượng cao nhất | Ổn định nhất với tiếng ồn nền và âm thanh không phải giọng nói | Sản xuất chất lượng cao, môi trường âm thanh nhiễu, khi cần độ chính xác tối đa |
Cài đặt Hiệu suất
Intra Op Threads: Điều khiển số lượng luồng được sử dụng cho các hoạt động xử lý nội bộ của mô hình.
- 0 (Mặc định/Tự động): Sử dụng phát hiện tự động (thường là 1/4 số nhân CPU khả dụng, tối đa 4)
- 1-16: Chỉ định thủ công số lượng luồng. Giá trị cao hơn có thể cải thiện hiệu suất trên các hệ thống đa nhân nhưng sử dụng nhiều CPU hơn
Inter Op Threads: Điều khiển số lượng luồng được sử dụng để thực thi song song các hoạt động khác nhau của mô hình.
- 0 (Mặc định/Tự động): Sử dụng phát hiện tự động (thường là 1/8 số nhân CPU khả dụng, tối đa 2)
- 1-8: Chỉ định thủ công số lượng luồng. Thường được giữ ở mức thấp để xử lý thời gian thực
Kích thước Phần xử lý
Kích thước Phần xử lý xác định có bao nhiêu mẫu được xử lý trong mỗi bước suy luận. Giá trị mặc định là 160 mẫu (10ms âm thanh ở 16kHz):
- Giá trị nhỏ hơn cung cấp cập nhật thường xuyên hơn nhưng tăng sử dụng CPU
- Giá trị lớn hơn giảm tải CPU nhưng có thể giảm khả năng phản hồi của đồng bộ môi
- Khuyến nghị sử dụng bội số của 160 để căn chỉnh tối ưu

Cấu hình Mô hình Kích hoạt Tâm trạng
Nút Create Realistic MetaHuman Lip Sync With Mood Generator cung cấp các tùy chọn cấu hình bổ sung ngoài mô hình thực tế cơ bản:
Cấu hình Cơ bản
Lookahead Ms: Thời gian nhìn trước tính bằng mili giây để cải thiện độ chính xác đồng bộ môi.
- Mặc định: 80ms
- Phạm vi: 20ms đến 200ms (phải chia hết cho 20)
- Giá trị cao hơn cung cấp đồng bộ hóa tốt hơn nhưng tăng độ trễ
Output Type: Điều khiển những điều khiển khuôn mặt nào được tạo ra.
- Full Face: Tất cả 81 điều khiển khuôn mặt (lông mày, mắt, mũi, miệng, hàm, lưỡi)
- Mouth Only: Chỉ các điều khiển liên quan đến miệng, hàm và lưỡi
Cài đặt Hiệu suất: Sử dụng cùng các cài đặt Intra Op Threads và Inter Op Threads như mô hình thực tế thông thường.
Cài đặt Tâm trạng
Các Tâm trạng Khả dụng:
- Neutral, Happy, Sad, Disgust, Anger, Surprise, Fear
- Confident, Excited, Bored, Playful, Confused
Mood Intensity: Điều khiển mức độ ảnh hưởng của tâm trạng lên hoạt ảnh (0.0 đến 1.0)
Điều khiển Tâm trạng Thời gian chạy
Bạn có thể điều chỉnh các cài đặt tâm trạng trong thời gian chạy bằng các hàm sau:
- Set Mood: Thay đổi loại tâm trạng hiện tại
- Set Mood Intensity: Điều chỉnh mức độ ảnh hưởng của tâm trạng lên hoạt ảnh (0.0 đến 1.0)
- Set Lookahead Ms: Sửa đổi thời gian nhìn trước để đồng bộ hóa
- Set Output Type: Chuyển đổi giữa điều khiển Full Face và Mouth Only

Hướng dẫn Chọn Tâm trạng
Chọn tâm trạng phù hợp dựa trên nội dung của bạn:
| Tâm trạng | Phù hợp Nhất | Phạm vi Cường độ Điển hình |
|---|---|---|
| Neutral | Hội thoại chung, tường thuật, trạng thái mặc định | 0.5 - 1.0 |
| Happy | Nội dung tích cực, đối thoại vui vẻ, lễ kỷ niệm | 0.6 - 1.0 |
| Sad | Nội dung u sầu, cảnh cảm xúc, khoảnh khắc buồn bã | 0.5 - 0.9 |
| Disgust | Phản ứng tiêu cực, nội dung khó chịu, từ chối | 0.4 - 0.8 |
| Anger | Đối thoại hung hăng, cảnh đối đầu, bực bội | 0.6 - 1.0 |
| Surprise | Sự kiện bất ngờ, tiết lộ, phản ứng sốc | 0.7 - 1.0 |
| Fear | Tình huống đe dọa, lo lắng, đối thoại căng thẳng | 0.5 - 0.9 |
| Confident | Thuyết trình chuyên nghiệp, đối thoại lãnh đạo, lời nói quả quyết | 0.7 - 1.0 |
| Excited | Nội dung tràn đầy năng lượng, thông báo, đối thoại nhiệt tình | 0.8 - 1.0 |
| Bored | Nội dung đơn điệu, đối thoại không hứng thú, lời nói mệt mỏi | 0.3 - 0.7 |
| Playful | Hội thoại thông thường, hài hước, tương tác vui vẻ | 0.6 - 0.9 |
| Confused | Đối thoại nhiều câu hỏi, không chắc chắn, bối rối | 0.4 - 0.8 |
Cấu hình Animation Blueprint
Cấu hình Lip Sync
- Standard Model
- Realistic Models
Nút Blend Runtime MetaHuman Lip Sync có các tùy chọn cấu hình trong bảng thuộc tính của nó:
| Thuộc tính | Mặc định | Mô tả |
|---|---|---|
| Interpolation Speed | 25 | Điều khiển tốc độ chuyển đổi của các chuyển động môi giữa các viseme. Giá trị cao hơn dẫn đến chuyển đổi nhanh hơn đột ngột hơn. |
| Reset Time | 0.2 | Khoảng thời gian tính bằng giây sau đó đồng bộ môi được đặt lại. Điều này hữu ích để ngăn đồng bộ môi tiếp tục sau khi âm thanh đã dừng. |
Hoạt ảnh Cười
Bạn cũng có thể thêm hoạt ảnh cười sẽ phản ứng động với tiếng cười được phát hiện trong âm thanh:
- Thêm nút
Blend Runtime MetaHuman Laughter - Kết nối biến
RuntimeVisemeGeneratorcủa bạn với chânViseme Generator - Nếu bạn đã sử dụng đồng bộ môi:
- Kết nối đầu ra từ nút
Blend Runtime MetaHuman Lip SyncvớiSource Posecủa nútBlend Runtime MetaHuman Laughter - Kết nối đầu ra của nút
Blend Runtime MetaHuman Laughtervới chânResultcủaOutput Pose
- Kết nối đầu ra từ nút
- Nếu chỉ sử dụng tiếng cười mà không có đồng bộ môi:
- Kết nối tư thế nguồn trực tiếp với
Source Posecủa nútBlend Runtime MetaHuman Laughter - Kết nối đầu ra với chân
Result
- Kết nối tư thế nguồn trực tiếp với

Khi tiếng cười được phát hiện trong âm thanh, nhân vật của bạn sẽ hoạt hình động tương ứng:
Cấu hình tiếng cười
Node Blend Runtime MetaHuman Laughter có các tùy chọn cấu hình riêng:
| Thuộc tính | Mặc định | Mô tả |
|---|---|---|
| Interpolation Speed | 25 | Điều khiển tốc độ chuyển đổi giữa các hoạt ảnh cười trên khuôn mặt. Giá trị cao hơn dẫn đến các chuyển đổi nhanh hơn, đột ngột hơn. |
| Reset Time | 0.2 | Thời lượng tính bằng giây sau đó tiếng cười được đặt lại. Điều này hữu ích để ngăn tiếng cười tiếp tục sau khi âm thanh đã dừng. |
| Max Laughter Weight | 0.7 | Tỉ lệ cường độ tối đa của hoạt ảnh cười (0.0 - 1.0). |
Lưu ý: Tính năng phát hiện tiếng cười hiện chỉ khả dụng với Standard Model.
Node Blend Realistic MetaHuman Lip Sync có các tùy chọn cấu hình trong bảng thuộc tính của nó:
| Thuộc tính | Mặc định | Mô tả |
|---|---|---|
| Interpolation Speed | 30 | Điều khiển tốc độ chuyển đổi biểu cảm khuôn mặt trong khi nói. Giá trị cao hơn dẫn đến các chuyển đổi nhanh hơn, đột ngột hơn. |
| Idle Interpolation Speed | 15 | Điều khiển tốc độ chuyển đổi biểu cảm khuôn mặt trở lại trạng thái nghỉ/trung tính. Giá trị thấp hơn tạo ra sự trở lại mượt mà, từ từ hơn. |
| Reset Time | 0.2 | Thời lượng tính bằng giây sau đó lip sync đặt lại về trạng thái nghỉ. Hữu ích để ngăn biểu cảm tiếp tục sau khi âm thanh dừng. |
| Preserve Idle State | false | Khi được bật, giữ lại trạng thái cảm xúc cuối cùng trong các khoảng nghỉ thay vì đặt lại về trung tính. |
| Preserve Eye Expressions | true | Điều khiển xem các điều khiển khuôn mặt liên quan đến mắt có được giữ lại trong trạng thái nghỉ hay không. Chỉ có hiệu lực khi Preserve Idle State được bật. |
| Preserve Brow Expressions | true | Điều khiển xem các điều khiển khuôn mặt liên quan đến lông mày có được giữ lại trong trạng thái nghỉ hay không. Chỉ có hiệu lực khi Preserve Idle State được bật. |
| Preserve Mouth Shape | false | Điều khiển xem các điều khiển hình dạng miệng (ngoại trừ các chuyển động cụ thể khi nói như lưỡi và hàm) có được giữ lại trong trạng thái nghỉ hay không. Chỉ có hiệu lực khi Preserve Idle State được bật. |
Bảo tồn trạng thái nghỉ
Tính năng Preserve Idle State xử lý cách Realistic Model quản lý các khoảng im lặng. Không giống như Standard Model sử dụng các viseme rời rạc và luôn trả về giá trị zero khi im lặng, mạng nơ-ron của Realistic Model có thể duy trì định vị khuôn mặt tinh tế khác biệt so với tư thế nghỉ mặc định của MetaHuman.
Khi nào nên bật:
- Duy trì biểu cảm cảm xúc giữa các đoạn lời nói
- Bảo tồn các đặc điểm tính cách nhân vật
- Đảm bảo tính liên tục về mặt hình ảnh trong các chuỗi điện ảnh
Tùy chọn điều khiển theo vùng:
- Eye Expressions: Giữ lại nheo mắt, mở to mắt và vị trí mí mắt
- Brow Expressions: Duy trì vị trí lông mày và trán
- Mouth Shape: Giữ độ cong chung của miệng trong khi cho phép các chuyển động nói (lưỡi, hàm) đặt lại
Kết hợp với hoạt ảnh hiện có
Để áp dụng lip sync và tiếng cười cùng với các hoạt ảnh cơ thể hiện có và hoạt ảnh khuôn mặt tùy chỉnh mà không ghi đè lên chúng:
- Thêm một node
Layered blend per bonegiữa các hoạt ảnh cơ thể của bạn và đầu ra cuối cùng. Đảm bảoUse Attached Parentlà true. - Cấu hình thiết lập layer:
- Thêm 1 mục vào mảng
Layer Setup - Thêm 3 mục vào
Branch Filterscho layer đó, với cácBone Namesau:FACIAL_C_FacialRootFACIAL_C_Neck2RootFACIAL_C_Neck1Root
- Thêm 1 mục vào mảng
- Quan trọng đối với hoạt ảnh khuôn mặt tùy chỉnh: Trong
Curve Blend Option, chọn "Use Max Value". Điều này cho phép các hoạt ảnh khuôn mặt tùy chỉnh (biểu cảm, cảm xúc, v.v.) được phân lớp đúng cách lên trên lip sync. - Thực hiện các kết nối:
- Hoạt ảnh hiện có (chẳng hạn như
BodyPose) → đầu vàoBase Pose - Đầu ra hoạt ảnh khuôn mặt (từ các node lip sync và/hoặc laughter) → đầu vào
Blend Poses 0 - Node layered blend → pose
Resultcuối cùng
- Hoạt ảnh hiện có (chẳng hạn như

Lựa chọn bộ Morph Target
- Standard Model
- Realistic Models
Standard Model sử dụng pose assets vốn hỗ trợ bất kỳ quy ước đặt tên morph target nào thông qua thiết lập custom pose asset. Không cần cấu hình bổ sung.
Node Blend Realistic MetaHuman Lip Sync bao gồm một thuộc tính Morph Target Set xác định quy ước đặt tên morph target nào sẽ sử dụng cho hoạt ảnh khuôn mặt:
| Morph Target Set | Mô tả | Trường hợp sử dụng |
|---|---|---|
| MetaHuman (Mặc định) | Tên morph target MetaHuman tiêu chuẩn (ví dụ: CTRL_expressions_jawOpen) | Nhân vật MetaHuman |
| ARKit | Tên tương thích Apple ARKit (ví dụ: JawOpen, MouthSmileLeft) | Nhân vật dựa trên ARKit |
Tinh chỉnh hành vi Lip Sync
Kiểm soát độ lè lưỡi
Trong mô hình lip sync tiêu chuẩn, bạn có thể nhận thấy chuyển động lưỡi về phía trước quá mức trong một số âm vị nhất định. Để kiểm soát độ lè lưỡi:
- Sau node blend lip sync của bạn, thêm một node
Modify Curve - Nhấp chuột phải vào node
Modify Curvevà chọn Add Curve Pin - Thêm một curve pin với tên
CTRL_expressions_tongueOut - Đặt thuộc tính Apply Mode của node thành Scale
- Điều chỉnh tham số Value để kiểm soát độ dài lưỡi (ví dụ: 0.8 để giảm 20% độ lè)
Kiểm soát độ mở hàm
Lip sync realistic có thể tạo ra các chuyển động hàm phản ứng quá mức tùy thuộc vào nội dung âm thanh và yêu cầu trực quan của bạn. Để điều chỉnh cường độ mở hàm:
- Sau node blend lip sync của bạn, thêm một node
Modify Curve - Nhấp chuột phải vào node
Modify Curvevà chọn Add Curve Pin - Thêm một curve pin với tên
CTRL_expressions_jawOpen - Đặt thuộc tính Apply Mode của node thành Scale
- Điều chỉnh tham số Value để kiểm soát phạm vi mở hàm (ví dụ: 0.9 để giảm 10% chuyển động hàm)
Tinh chỉnh theo tâm trạng
Đối với các mô hình hỗ trợ mood, bạn có thể tinh chỉnh các biểu cảm cảm xúc cụ thể:
Kiểm soát lông mày:
CTRL_expressions_browRaiseInL/CTRL_expressions_browRaiseInR- Nâng lông mày trongCTRL_expressions_browRaiseOuterL/CTRL_expressions_browRaiseOuterR- Nâng lông mày ngoàiCTRL_expressions_browDownL/CTRL_expressions_browDownR- Hạ lông mày
Kiểm soát biểu cảm mắt:
CTRL_expressions_eyeSquintInnerL/CTRL_expressions_eyeSquintInnerR- Nheo mắtCTRL_expressions_eyeCheekRaiseL/CTRL_expressions_eyeCheekRaiseR- Nâng má
So sánh và lựa chọn mô hình
Lựa chọn giữa các mô hình
Khi quyết định sử dụng mô hình lip sync nào cho dự án của bạn, hãy xem xét các yếu tố sau:
| Xem xét | Standard Model | Realistic Model | Mood-Enabled Realistic Model |
|---|---|---|---|
| Khả năng tương thích nhân vật | MetaHumans và tất cả các loại nhân vật tùy chỉnh | MetaHumans (và các nhân vật ARKit) | MetaHumans (và các nhân vật ARKit) |
| Chất lượng hình ảnh | Lip sync tốt với hiệu suất hiệu quả | Độ chân thực nâng cao với chuyển động miệng tự nhiên hơn | Độ chân thực nâng cao với biểu cảm cảm xúc |
| Hiệu suất | Được tối ưu cho tất cả các nền tảng bao gồm mobile/VR | Yêu cầu tài nguyên cao hơn | Yêu cầu tài nguyên cao hơn |
| Tính năng | 14 visemes, phát hiện tiếng cười | 81 điều khiển khuôn mặt, 3 mức tối ưu hóa | 81 điều khiển khuôn mặt, 12 tâm trạng, đầu ra có thể cấu hình |
| Hỗ trợ nền tảng | Windows, Android, Quest | Windows, Mac, iOS, Linux, Android, Quest | Windows, Mac, iOS, Linux, Android, Quest |
| Trường hợp sử dụng | Ứng dụng chung, game, VR/AR, di động | Trải nghiệm điện ảnh, tương tác cận cảnh | Kể chuyện cảm xúc, tương tác nhân vật nâng cao |
Khả năng tương thích phiên bản Engine
Nếu bạn đang sử dụng Unreal Engine 5.2, Realistic Models có thể không hoạt động chính xác do lỗi trong thư viện resampling của UE. Đối với người dùng UE 5.2 cần chức năng lip sync đáng tin cậy, vui lòng sử dụng Standard Model thay thế.
Sự cố này chỉ xảy ra với UE 5.2 và không ảnh hưởng đến các phiên bản engine khác.
Khuyến nghị về hiệu suất
- Đối với hầu hết các dự án, Standard Model cung cấp sự cân bằng tuyệt vời giữa chất lượng và hiệu suất
- Sử dụng Realistic Model khi bạn cần độ trung thực hình ảnh cao nhất cho các nhân vật MetaHuman
- Sử dụng Mood-Enabled Realistic Model khi việc kiểm soát biểu cảm cảm xúc quan trọng đối với ứng dụng của bạn
- Xem xét khả năng hiệu suất của nền tảng mục tiêu khi lựa chọn giữa các mô hình
- Kiểm tra các mức tối ưu hóa khác nhau để tìm sự cân bằng tốt nhất cho trường hợp sử dụng cụ thể của bạn
Khắc phục sự cố
Các sự cố thường gặp
Tạo lại Generator cho Realistic Models: Để hoạt động đáng tin cậy và nhất quán với Realistic Models, bạn nên tạo lại generator mỗi khi muốn cấp dữ liệu âm thanh mới sau một khoảng thời gian không hoạt động. Điều này là do hành vi của runtime ONNX có thể khiến lip sync ngừng hoạt động khi tái sử dụng generator sau các khoảng im lặng.
Ví dụ: bạn có thể tạo lại generator lip sync mỗi khi bắt đầu phát lại, chẳng hạn như mỗi khi bạn gọi Play Sound 2D hoặc sử dụng bất kỳ phương thức nào khác để bắt đầu phát lại sound wave và lip sync:

Vị trí Plugin cho tích hợp Runtime Text To Speech: Khi sử dụng Runtime MetaHuman Lip Sync cùng với Runtime Text To Speech (cả hai plugin đều sử dụng ONNX Runtime), bạn có thể gặp sự cố trong các bản build đóng gói nếu các plugin được cài đặt trong thư mục Marketplace của engine. Để khắc phục:
- Xác định vị trí cả hai plugin trong thư mục cài đặt UE của bạn trong
\Engine\Plugins\Marketplace(ví dụ:C:\Program Files\Epic Games\UE_5.6\Engine\Plugins\Marketplace) - Di chuyển cả hai thư mục
RuntimeMetaHumanLipSyncvàRuntimeTextToSpeechvào thư mụcPluginscủa dự án - Nếu dự án của bạn không có thư mục
Plugins, hãy tạo một thư mục trong cùng thư mục với tệp.uprojectcủa bạn - Khởi động lại Unreal Editor
Điều này giải quyết các sự cố tương thích có thể xảy ra khi nhiều plugin dựa trên ONNX Runtime được tải từ thư mục Marketplace của engine.
Cấu hình đóng gói (Windows): Nếu lip sync không hoạt động chính xác trong dự án đã đóng gói của bạn trên Windows, hãy đảm bảo bạn đang sử dụng cấu hình build Shipping thay vì Development. Cấu hình Development có thể gây ra sự cố với runtime ONNX của realistic models trong các bản build đóng gói.
Để khắc phục:
- Trong Project Settings → Packaging, đặt Build Configuration thành Shipping
- Đóng gói lại dự án của bạn

Trong một số dự án chỉ Blueprint, Unreal Engine vẫn có thể build ở cấu hình Development ngay cả khi Shipping được chọn. Nếu điều này xảy ra, hãy chuyển đổi dự án của bạn thành dự án C++ bằng cách thêm ít nhất một lớp C++ (có thể để trống). Để thực hiện, vào Tools → New C++ Class trong menu UE editor và tạo một lớp trống. Điều này sẽ buộc dự án build chính xác ở cấu hình Shipping. Dự án của bạn có thể vẫn giữ chức năng chỉ Blueprint, lớp C++ chỉ cần thiết cho cấu hình build phù hợp.
Giảm khả năng phản hồi của Lip Sync: Nếu bạn gặp tình trạng lip sync trở nên kém phản hồi hơn theo thời gian khi sử dụng Streaming Sound Wave hoặc Capturable Sound Wave, điều này có thể do tích lũy bộ nhớ. Theo mặc định, bộ nhớ được cấp phát lại mỗi khi âm thanh mới được nối thêm. Để ngăn sự cố này, hãy gọi hàm ReleaseMemory định kỳ để giải phóng bộ nhớ tích lũy, chẳng hạn như mỗi 30 giây hoặc lâu hơn.
Tối ưu hóa hiệu suất:
- Điều chỉnh Processing Chunk Size cho Realistic models dựa trên yêu cầu hiệu suất của bạn
- Sử dụng số lượng luồng phù hợp với phần cứng mục tiêu của bạn
- Xem xét sử dụng loại đầu ra Mouth Only cho các mô hình hỗ trợ mood khi không cần hoạt ảnh khuôn mặt đầy đủ