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

Cấu hình Plugin

Cấu hình mô hình

Tái tạo các trình tạo mô hình chân thực cho từng lần phát lại

Để vận hành đáng tin cậy với các mô hình Realistic và Mood-Enabled Realistic, hãy tạo lại bộ sinh (generator) trước mỗi lần phát âm thanh mới thay vì tái sử dụng một bộ sinh qua các khoảng im lặng dài. Xem Tạo lại Bộ sinh trong phần Khắc phục sự cố để biết chi tiết.

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 hoạt động tốt cho hầu hết các tình huống. Cấu hình được xử lý 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 Chân Thực

Nút Create Realistic MetaHuman Lip Sync Generator chấp nhận 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 mô hình chân thực nào sẽ được sử dụng:

Loại mô hìnhHiệu suấtChất lượng hình ảnhXử lý nhiễuCác trường hợp sử dụng được khuyến nghị
Tối ưu hóa cao (Mặc định)Hiệu suất cao nhất, mức sử dụng CPU thấp nhấtChất lượng tốtCó thể thấy chuyển động miệng rõ rệt khi có 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 yêu cầu hiệu suất cao
Bán Tối ƯuHiệu suất tốt, mức sử dụng CPU vừa phảiChất lượng caoCải thiện độ ổn định với âm thanh nhiễuHiệu suất và chất lượng cân bằng, điều kiện âm thanh hỗn hợp
Bản gốcPhù hợp để 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 ồn ào, khi cần độ chính xác tối đa

Cài đặt Hiệu suất

Intra Op Threads: Kiểm soát 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ố lõi 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 hệ thống đa lõi nhưng sử dụng nhiều CPU hơn.

Inter Op Threads: Kiểm soát số lượng luồng được sử dụng để thực thi song song các thao tác 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ố lõi CPU khả dụng, tối đa 2)
  • 1-8: Chỉ định thủ công số luồng. Thường được giữ ở mức thấp để xử lý thời gian thực

Kích thước Khối Xử lý

Kích thước Khối Xử lý xác định số lượng 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 ở tần số 16kHz).

  • Giá trị nhỏ hơn cung cấp cập nhật thường xuyên hơn nhưng tăng mức sử dụng CPU
  • Giá trị lớn hơn giảm tải CPU nhưng có thể làm giảm độ 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

Setting Processing Chunk Size

Cấu Hình Mô Hình Hỗ Trợ 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 Lookahead tính bằng mili giây để cải thiện độ chính xác của đồ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 mang lại đồng bộ tốt hơn nhưng tăng độ trễ

Loại Đầu Ra: Kiểm soát các điều khiển khuôn mặt được tạo ra.

  • Toàn bộ khuôn mặt: 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)
  • Chỉ miệng: 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 thiết lập 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 Có Sẵn:

  • Trung tính, Vui vẻ, Buồn bã, Ghê tởm, Tức giận, Ngạc nhiên, Sợ hãi
  • Tự tin, Hào hứng, Chán nản, Tinh nghịch, Bối rối

Cường độ cảm xúc: Kiểm soát mức độ ảnh hưởng của cảm xúc lên hoạt ảnh (từ 0.0 đến 1.0)

Kiểm soát Tâm trạng Thời gian thực

Bạn có thể điều chỉnh cài đặt tâm trạng trong thời gian chạy bằng các hàm sau:

  • Đặt Tâm Trạng: Thay đổi loại tâm trạng hiện tại
  • Đặt Cường Độ Tâm Trạng: Đ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)
  • Đặt Thời Gian Nhìn Trước (Ms): Sửa đổi thời gian nhìn trước để đồng bộ hóa
  • Đặt Loại Đầu Ra: Chuyển đổi giữa điều khiển Toàn Bộ Khuôn Mặt và Chỉ Miệng

Mood Configuration

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:

MoodTốt nhất choDải Cường Độ Điển Hình
Trung tínhHội thoại chung, tường thuật, trạng thái mặc định0.5 - 1.0
Vui vẻNội dung tích cực, hội thoại vui vẻ, những dịp ăn mừng0.6 - 1.0
BuồnNội dung u sầu, cảnh xúc động, khoảnh khắc ảm đạm0.5 - 0.9
Ghê tởmPhản ứng tiêu cực, nội dung phản cảm, sự từ chối0.4 - 0.8
Tức giậnĐối thoại gay gắt, cảnh đối đầu, sự thất vọng0.6 - 1.0
Ngạc nhiênSự kiện bất ngờ, tiết lộ gây sốc, phản ứng chấn động0.7 - 1.0
Sợ hãiTình huống đe dọa, lo âu, hội thoại căng thẳng0.5 - 0.9
Tự tinBài thuyết trình chuyên nghiệp, đối thoại lãnh đạo, lời nói quyết đoán0.7 - 1.0
Phấn khíchNội dung sôi động, thông báo, hội thoại nhiệt tình0.8 - 1.0
ChánNội dung đơn điệu, hội thoại thiếu hứng thú, giọng nói mệt mỏi0.3 - 0.7
Vui tươiTrò chuyện thân mật, hài hước, tương tác vui vẻ0.6 - 0.9
Bối rốiĐối thoại nhiều câu hỏi, sự không chắc chắn, hoang mang0.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ả
Tốc độ nội suy25Kiểm soát tốc độ chuyển đổi chuyển động môi giữa các viseme. Giá trị cao hơn tạo ra các chuyển đổi nhanh hơn, đột ngột hơn.
Thời gian đặt lại0.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 các hoạt ảnh cười để phản hồi linh hoạt khi phát hiện tiếng cười trong âm thanh.

  1. Thêm node 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 khớp môi:
    • Kết nối đầu ra từ node Blend Runtime MetaHuman Lip Sync với Source Pose của node Blend Runtime MetaHuman Laughter
    • Kết nối đầu ra của node 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ộ khẩu hình:
    • Kết nối pose nguồn của bạn trực tiếp vào Source Pose của node Blend Runtime MetaHuman Laughter
    • Kết nối đầu ra vào chân Result

Blend Runtime MetaHuman Laughter

Khi phát hiện tiếng cười trong âm thanh, nhân vật của bạn sẽ tự động hoạt ảnh tương ứng:

Cấu hình Tiếng Cười

Nút Blend Runtime MetaHuman Laughter có các tùy chọn cấu hình riêng:

Thuộc tínhMặc địnhMô tả
Tốc độ nội suy25Kiểm soát tốc độ chuyển đổi chuyển động môi giữa các hoạt ảnh cười. Giá trị cao hơn tạo ra các chuyển đổi nhanh hơn, đột ngột hơn.
Thời gian đặt lại0.2Khoảng thời gian 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.
Trọng số Cười Tối đa0.7Điều chỉnh 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 Mô hình Tiêu chuẩn.

Kết hợp với các Hoạt ảnh Hiện có

Để áp dụng đồng bộ môi 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:

Hoạt ảnh cơ thể

Thiết lập này áp dụng cho Animation Blueprint của khuôn mặt, vì lip sync không nằm trong Animation Blueprint của cơ thể. Đối với các hoạt ảnh cơ thể tùy chỉnh (ví dụ: thân mình, cánh tay và các chuyển động cơ thể khác), chỉ cần kết nối chuỗi hoạt ảnh của bạn (thông qua Sequence Player) trực tiếp với pose đầu ra trong Animation Blueprint của cơ thể. Không cần thiết lập bổ sung nào ở đó.

  1. Thêm một node Layered blend per bone giữa các animation cơ thể và đầu ra cuối cùng. Đảm bảo Use Attached Parent được bật.
  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 xếp lớp chính xác lên trên đồng bộ môi.
  4. Thực hiện các kết nối:
    • Hoạt ảnh tùy chỉnh của bạn (thường là một Sequence Player với asset hoạt ảnh mong muốn) → đầu vào Base Pose
    • Đầu ra hoạt ảnh khuôn mặt (từ các node đồng bộ môi và/hoặc tiếng cười) → đầu vào Blend Poses 0
    • Node pha trộn theo lớp → tư thế Result cuối cùng

Layered Blend Per Bone

Lựa chọn Bộ Morph Target

Mô hình Chuẩn sử dụng các pose asset vốn hỗ trợ mọi quy ước đặt tên morph target thông qua thiết lập pose asset tùy chỉnh. Không cần cấu hình bổ sung.

Tinh chỉnh hành vi đồng bộ môi

Điều chỉnh tỷ lệ các đường cong Lip Sync cụ thể

Bạn có thể làm giảm (hoặc khuếch đại) các chuyển động khuôn mặt riêng lẻ do khớp môi tạo ra bằng cách sử dụng nút Modify Curve. Điều này hữu ích khi một đường cong cụ thể trông quá rõ rệt so với nội dung âm thanh hoặc nhân vật của bạn.

Thiết lập:

  1. Sau nút blend đồng bộ môi của bạn, thêm một nút Modify Curve
  2. Nhấp chuột phải vào nút và chọn Add Curve Pin, sau đó nhập tên đường cong bạn muốn điều chỉnh tỷ lệ
  3. Đặt thuộc tính Apply Mode của nút thành Scale
  4. Đặt tham số Value: giá trị dưới 1.0 làm giảm chuyển động, giá trị trên 1.0 làm tăng cường chuyển động (ví dụ: 0.8 = giảm 20%)

Các đường cong thường được chia tỷ lệ:

Tên CurveMục đíchÁp dụng choĐiều chỉnh điển hình
CTRL_expressions_tongueOutĐẩy lưỡi về phía trước trong một số âm vị nhất địnhMô hình tiêu chuẩn0.8 để giảm độ nhô ra
CTRL_expressions_jawOpenPhạm vi mở hàmCác mô hình chân thực0.9 để giảm chuyển động hàm

Bạn có thể thêm nhiều chân đường cong vào cùng một node Modify Curve để điều chỉnh tỷ lệ nhiều đường cong cùng lúc.

Tinh chỉnh theo Tâm trạng

Đối với các mô hình hỗ trợ cảm xúc, 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

Chọn giữa các mô hình

Khi quyết định sử dụng mô hình đồng bộ khẩu hình miệng nào cho dự án của bạn, hãy cân nhắc các yếu tố sau:

Cân nhắcMô hình Tiêu chuẩnMô hình Chân thựcMô hình Chân thực có Hỗ trợ Cảm xúc
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à nhân vật ARKit)MetaHumans (và nhân vật ARKit)
Chất lượng hình ảnhKhớp khẩu hình tốt với hiệu suất hiệu quảTăng cường tính chân thực với chuyển động miệng tự nhiên hơnTăng cường tính chân thực với biểu cảm cảm xúc
Hiệu suấtTối ưu hóa cho mọi nền tảng bao gồm cả thiết bị di động/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 viseme, phát hiện tiếng cười81 điều khiển khuôn mặt, 3 cấp độ 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
Các trường hợp sử dụngỨng dụng tổng quát, trò chơi, VR/AR, thiết bị 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

Tương thích Phiên bản Engine

Vấn đề tương thích UE 5.2

Nếu bạn đang sử dụng Unreal Engine 5.2, các Mô hình Thực tế (Realistic Models) có thể không hoạt động chính xác do lỗi trong thư viện lấy mẫu lại của UE. Đối với người dùng UE 5.2 cần chức năng đồng bộ môi (lip sync) đáng tin cậy, vui lòng sử dụng Mô hình Chuẩn (Standard Model) thay thế.

Vấn đề này chỉ xảy ra trên 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, Mô hình Tiêu chuẩn mang lại sự cân bằng tuyệt vời giữa chất lượng và hiệu suất
  • Sử dụng Mô hình Chân thực 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 Mô hình Chân thực Hỗ trợ Cảm xúc khi việc kiểm soát biểu cảm cảm xúc là quan trọng đối với ứng dụng của bạn
  • Hãy cân nhắc 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
  • Hãy thử nghiệm các mức độ tối ưu hóa khác nhau để tìm ra sự cân bằng tốt nhất cho trường hợp sử dụng cụ thể của bạn

Xử lý sự cố

Các Vấn Đề Thường Gặp

Tạo lại Generator cho Mô Hình Chân Thực: Để đảm bảo hoạt động ổn định và nhất quán với các Mô Hình Chân Thực, bạn nên tạo lại generator mỗi khi muốn đưa dữ liệu âm thanh mới vào sau một khoảng thời gian không hoạt động. Điều này là do hành vi của ONNX runtime có thể khiến quá trình đồng bộ môi ngừng hoạt động khi tái sử dụng generator sau những khoảng im lặng kéo dài.

Ví dụ, bạn có thể tạo lại trình tạo đồng bộ khẩu hình mỗi khi bắt đầu phát lại, chẳng hạn như bất cứ khi nào bạn gọi Play Sound 2D hoặc sử dụng bất kỳ phương pháp nào khác để bắt đầu phát sóng âm thanh và đồng bộ khẩu hình:

Recreate Lip Sync Generator On Play Sound

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 điều này:

  1. Tìm cả hai plugin trong thư mục cài đặt UE của bạn tại \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 chưa có thư mục Plugins, hãy tạo một thư mục mới 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 vấn đề 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 đồng bộ môi 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 thời gian chạy ONNX của các mô hình thực tế trong các bản build đã đóng gói.

Để khắc phục điều này:

  1. Trong Cài đặt Dự án → Đóng gói, đặt Cấu hình Build thành Shipping
  2. Đóng gói lại dự án của bạn

Shipping Configuration

Dự án Chỉ Dùng Blueprint

Trong một số dự án chỉ dùng Blueprint, Unreal Engine vẫn có thể build ở cấu hình Development ngay cả khi đã chọn Shipping. 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ể là lớp rỗng). Để thực hiện, vào Tools → New C++ Class trong menu trình chỉnh sửa UE và tạo một lớp rỗ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 vẫn có thể chỉ dùng Blueprint về mặt chức năng, lớp C++ chỉ cần thiết để cấu hình build phù hợp.

Giảm độ 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, nguyên nhân có thể do tích tụ bộ nhớ. Theo mặc định, bộ nhớ được cấp phát lại mỗi khi có âm thanh mới được thêm vào. Để ngăn chặn vấn đề này, hãy gọi hàm ReleaseMemory định kỳ để giải phóng bộ nhớ tích tụ, chẳng hạn như mỗi 30 giây một lần.

Tối ưu hóa Hiệu suất:

  • Điều chỉnh Kích thước Khối Xử lý cho các mô hình Hiện thực 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 cho phần cứng mục tiêu của bạn
  • Cân nhắc sử dụng loại đầu ra Chỉ Miệng cho các mô hình hỗ trợ tâm trạng khi không cần hoạt ảnh khuôn mặt đầy đủ