Chuyển tới nội dung chính

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ìnhHiệu suấtChất lượng Hình ảnhXử lý Tiếng ồnTrườ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ấtChất lượng tốtCó 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óiMôi trường âm thanh sạch, các tình huống quan trọng về hiệu suất
Semi-OptimizedHiệu suất tốt, sử dụng CPU vừa phảiChất lượng caoỔn định hơn với âm thanh nhiễuCân bằng hiệu suất và chất lượng, điều kiện âm thanh hỗn hợp
OriginalPhù hợp cho việc sử dụng thời gian thực trên các CPU hiện đạiChấ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óiSả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

Đặt Kích thước Phần xử lý

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

Cấu hình Tâm trạng

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ạngPhù hợp NhấtPhạm vi Cường độ Điển hình
NeutralHội thoại chung, tường thuật, trạng thái mặc định0.5 - 1.0
HappyNội dung tích cực, đối thoại vui vẻ, lễ kỷ niệm0.6 - 1.0
SadNội dung u sầu, cảnh cảm xúc, khoảnh khắc buồn bã0.5 - 0.9
DisgustPhản ứng tiêu cực, nội dung khó chịu, từ chối0.4 - 0.8
AngerĐối thoại hung hăng, cảnh đối đầu, bực bội0.6 - 1.0
SurpriseSự kiện bất ngờ, tiết lộ, phản ứng sốc0.7 - 1.0
FearTình huống đe dọa, lo lắng, đối thoại căng thẳng0.5 - 0.9
ConfidentThuyết trình chuyên nghiệp, đối thoại lãnh đạo, lời nói quả quyết0.7 - 1.0
ExcitedNội dung tràn đầy năng lượng, thông báo, đối thoại nhiệt tình0.8 - 1.0
BoredNội dung đơn điệu, đối thoại không hứng thú, lời nói mệt mỏi0.3 - 0.7
PlayfulHộ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ối0.4 - 0.8

Cấu hình Animation Blueprint

Cấu hình Lip Sync

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ínhMặc địnhMô tả
Interpolation Speed25Đ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 Time0.2Khoả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:

  1. Thêm nút Blend Runtime MetaHuman Laughter
  2. Kết nối biến RuntimeVisemeGenerator của bạn với chân Viseme Generator
  3. Nếu bạn đã sử dụng đồng bộ môi:
    • Kết nối đầu ra từ nút Blend Runtime MetaHuman Lip Sync với Source Pose của nút Blend Runtime MetaHuman Laughter
    • Kết nối đầu ra của nút Blend Runtime MetaHuman Laughter với chân Result của Output Pose
  4. 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 Pose của nút Blend Runtime MetaHuman Laughter
    • Kết nối đầu ra với chân Result

Blend Runtime MetaHuman Laughter

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ínhMặc địnhMô tả
Interpolation Speed25Đ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 Time0.2Thờ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 Weight0.7Tỉ 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.

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:

  1. Thêm một node Layered blend per bone giữa các hoạt ảnh cơ thể của bạn và đầu ra cuối cùng. Đảm bảo Use Attached Parent là true.
  2. 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 Filters cho layer đó, với các Bone Name sau:
      • FACIAL_C_FacialRoot
      • FACIAL_C_Neck2Root
      • FACIAL_C_Neck1Root
  3. 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.
  4. Thực hiện các kết nối:
    • Hoạt ảnh hiện có (chẳng hạn như BodyPose) → đầu vào Base 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 Result cuối cùng

Layered Blend Per Bone

Lựa chọn bộ Morph Target

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.

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:

  1. Sau node blend lip sync của bạn, thêm một node Modify Curve
  2. Nhấp chuột phải vào node Modify Curve và chọn Add Curve Pin
  3. Thêm một curve pin với tên CTRL_expressions_tongueOut
  4. Đặt thuộc tính Apply Mode của node thành Scale
  5. Đ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:

  1. Sau node blend lip sync của bạn, thêm một node Modify Curve
  2. Nhấp chuột phải vào node Modify Curve và chọn Add Curve Pin
  3. Thêm một curve pin với tên CTRL_expressions_jawOpen
  4. Đặt thuộc tính Apply Mode của node thành Scale
  5. Đ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 trong
  • CTRL_expressions_browRaiseOuterL / CTRL_expressions_browRaiseOuterR - Nâng lông mày ngoài
  • CTRL_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ắt
  • CTRL_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étStandard ModelRealistic ModelMood-Enabled Realistic Model
Khả năng tương thích nhân vậtMetaHumans và tất cả các loại nhân vật tùy chỉnhMetaHumans (và các nhân vật ARKit)MetaHumans (và các nhân vật ARKit)
Chất lượng hình ảnhLip 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/VRYêu cầu tài nguyên cao hơnYêu cầu tài nguyên cao hơn
Tính năng14 visemes, phát hiện tiếng cười81 điều khiển khuôn mặt, 3 mức tối ưu hóa81 đ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ảngWindows, Android, QuestWindows, Mac, iOS, Linux, Android, QuestWindows, Mac, iOS, Linux, Android, Quest
Trường hợp sử dụngỨng dụng chung, game, VR/AR, di độngTrải nghiệm điện ảnh, tương tác cận cảnhKể 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

Sự cố tương thích UE 5.2

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:

Tạo lại Lip Sync Generator khi phát

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:

  1. 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)
  2. Di chuyển cả hai thư mục RuntimeMetaHumanLipSyncRuntimeTextToSpeech vào thư mục Plugins của dự án
  3. 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 .uproject của bạn
  4. 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:

  1. Trong Project Settings → Packaging, đặt Build Configuration thành Shipping
  2. Đóng gói lại dự án của bạn

Cấu hình Shipping

Dự án chỉ Blueprint

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 đủ