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

Cấu hình Plugin

Cấu hình Model​

Tạo lại các trình tạo mô hình thực tế cho từng quá trình 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 generator trước mỗi lần phát audio mới thay vì tái sử dụng một generator xuyên suốt các khoảng lặng dài. Xem Tạo lại Generator trong phần Khắc phục sự cố để biết chi tiết.

Cấu hình Model tiêu chuẩn​

Nút Create Runtime Viseme Generator sử dụng cài đặt mặc định hoạt động tốt cho hầu hết các tình huống. Việc cấu hình được xử lý thông qua các thuộc tính của nút blending trong Animation Blueprint.

Đối với 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 Model chân thực​

Node 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 Model Type xác định phiên bản nào của mô hình thực tế sẽ được sử dụng:

Loại ModelHiệu suấtChất lượng hình ảnhXử lý tiếng ồnTrường hợp sử dụng được đề xuất
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ể xuất hiện chuyển động miệng đáng chú ý khi có 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 yêu cầu hiệu suất cao
Bán tối ưu hóaHiệu suất tốt, mức 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 giữa hiệu suất và chất lượng, điều kiện âm thanh hỗn hợp
Nguyên bảnPhù hợp cho 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óiCác sản phẩm 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: 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ố 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ý quyết đị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 ở 16kHz):

  • Giá trị nhỏ hơn cung cấp cập nhật thường xuyên hơn nhưng làm 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 lip sync
  • 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 Model hỗ trợ Mood​

Node 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 lip sync.

  • 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 khả năng đồng bộ hóa tốt hơn nhưng làm tăng độ trễ

Loại đầu ra: Kiểm soát những điều khiển khuôn mặt nào đượ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à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​

Tâm trạng khả dụng:

  • Trung lập, Vui vẻ, Buồn bã, Ghê tởm, Giận dữ, Ngạc nhiên, Sợ hãi
  • Tự tin, Phấn khích, Buồn chán, Tinh nghịch, Bối rối

Cường độ cảm xúc: Điều khiển mức độ ảnh hưởng của cảm xúc lên hoạt ảnh (0.0 đến 1.0)

Kiểm soát tâm trạng thời gian chạy​

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 đến hoạt ảnh (0.0 đến 1.0)
  • Đặt Lookahead Ms: Thay đổi thời gian lookahead để đồ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:

MoodPhù hợp nhất choKhoảng cường độ điển hình
Trung tínhHội thoại thông thường, tường thuật, trạng thái mặc định0.5 - 1.0
Vui vẻNội dung tích cực, đối thoại vui tươi, lễ kỷ niệm0.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 khó chịu, sự từ chối0.4 - 0.8
Giận dữĐối thoại hung hăng, cảnh đối đầu, sự bực bội0.6 - 1.0
Ngạc nhiênSự kiện bất ngờ, tiết lộ, phản ứng sốc0.7 - 1.0
Sợ hãiTình huống đe dọa, lo lắng, đối thoại căng thẳng0.5 - 0.9
Tự tinThuyết trình chuyên nghiệp, đối thoại lãnh đạo, phát ngôn quyết đoán0.7 - 1.0
Hào hứngNội dung tràn đầy năng lượng, thông báo, đối thoại nhiệt tình0.8 - 1.0
Chán nảnNội dung đơn điệu, đối thoại thiếu quan tâm, lời nói mệt mỏi0.3 - 0.7
Tinh nghịchTrò chuyện thân mật, hài hước, tương tác nhẹ nhàng0.6 - 0.9
Bối rốiĐối thoại nhiều câu hỏi, sự không chắc chắn, sự 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 dẫn đến chuyển đổi nhanh hơn và đột ngột hơn.
Thời gian đặt lại0.2Khoảng thời gian tính bằng giây, sau đó lip sync được đặt lại. Điều này hữu ích để ngăn lip sync tiếp tục sau khi âm thanh đã dừng.

Hoạt ảnh tiếng cười​

Bạn cũng có thể thêm hoạt ảnh cười để phản hồi linh hoạt với tiếng cười được phát hiện 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 pin Viseme Generator
  3. Nếu bạn đã sử dụng lip sync:
    • 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ó lip sync:
    • Kết nối source pose của bạ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 phát hiện tiếng cười trong âm thanh, nhân vật của bạn sẽ tự động hoạt họa 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 của chuyển động môi giữa các hoạt ảnh cười. Giá trị cao hơn dẫn đến chuyển đổi nhanh hơn và độ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 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 các Animation hiện có​

Hướng dẫn bằng video

Bạn thích xem hơn là đọc? Hãy xem hướng dẫn bằng video về đúng thiết lập này.

Để á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 đè 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 thuộc Animation Blueprint của cơ thể. Đối với các hoạt ảnh cơ thể tùy chỉnh (ví dụ: thân, 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 tư thế đầu ra trong Animation Blueprint của cơ thể. Không cần thiết lập thêm ở đó.

  1. Thêm một nút Layered blend per bone giữa các hoạt ảnh cơ thể của bạn và đầu ra cuối cùng.
  2. Cấu hình thiết lập lớp:
    • 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 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 đúng cách lên trên lip sync.
  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à Sequence Player với asset chuỗi hoạt ảnh mong muốn) → đầu vào Base Pose
    • Đầu ra hoạt ảnh khuôn mặt (từ các node lip sync và/hoặc cười) → đầu vào Blend Poses 0
    • Node blend phân lớp → tư thế Result cuối cùng

Layered Blend Per Bone

Lựa chọn bộ Morph Target​

Mô hình Tiêu chuẩn sử dụng 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 thêm.

Tinh chỉnh hành vi Lip Sync​

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

Bạn có thể giảm chấn (hoặc khuếch đại) các chuyển động khuôn mặt riêng lẻ được tạo ra bởi lip sync bằng cách sử dụng nút Modify Curve. Điều này hữu ích khi một curve cụ thể trông quá rõ đối 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 lip sync của bạn, hãy 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 curve bạn muốn scale
  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 thông thường
CTRL_expressions_tongueOutĐộ nhô lưỡi về phía trước trong một số phoneme nhất địnhMô hình tiêu chuẩn0.8 để giảm độ nhô
CTRL_expressions_jawOpenPhạm vi mở hàmMô 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 nút Modify Curve để điều chỉnh tỉ lệ nhiều đường cong cùng lúc.

Tinh chỉnh theo từng cảm xúc​

Đố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ể:

Điều khiển 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

Điều khiển 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 cân nhắc những 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 hỗ trợ Cảm xúc
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ỉnhNhân vật MetaHumans (và ARKit)Nhân vật MetaHumans (và ARKit)
Chất lượng hình ảnhLip sync tốt với hiệu suất hiệu quảTăng cường độ chân thực với chuyển động miệng tự nhiên hơnTăng cường độ chân thực với biểu cảm cảm xúc
Hiệu suấtĐược tối ưu hóa cho tất cả các nền tảng bao gồm 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 mức tối ưu hóa81 điều khiển khuôn mặt, 12 cảm xúc, đầ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, trò chơi, 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​

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

Nếu bạn đang sử dụng Unreal Engine 5.2, các Realistic Model có thể không hoạt động chính xác do một 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 lip sync đáng tin cậy, vui lòng sử dụng Standard Model thay thế.

Vấn đề 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 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 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 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 model
  • 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

Khắc phục sự cố​

Các vấn đề thường gặp​

Tạo lại Generator cho Realistic Models: Để vận hành ổn định và nhất quán với Realistic Models, bạn nên tạo lại generator mỗi khi muốn nạ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 ONNX runtime có thể khiến lip sync ngừng hoạt động khi tái sử dụng generator sau những khoảng im lặng.

Ví dụ, bạn có thể tạo lại trình tạo 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 sóng âm thanh và lip sync:

Recreate Lip Sync Generator On Play Sound

Vị trí plugin để 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 dùng ONNX Runtime), bạn có thể gặp sự cố 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 RuntimeMetaHumanLipSync và RuntimeTextToSpeech vào thư mục Plugins của dự án của bạ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 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 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 ONNX runtime của các mô hình chân thực trong các bản build đã đóng gói.

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

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

Shipping Configuration

Các 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 dự án của bạn sang dự án C++ bằng cách thêm ít nhất một lớp C++ (lớp này có thể để trống). Để làm điều này, hãy vào Tools → New C++ Class trong menu của trình biên tập UE và tạo một lớp trống. Điều này sẽ buộc dự án build đúng cách ở 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 chính xác.

Độ phản hồi Lip Sync bị suy giảm: 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ể là do tích tụ bộ nhớ. Theo mặc định, bộ nhớ được cấp phát lại mỗi khi âm thanh mới được thêm vào. Để ngăn ngừa 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ư khoảng 30 giây một lần.

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

  • Điều chỉnh Kích thước Phân đoạn Xử lý cho các mô hình Realistic dựa trên yêu cầu hiệu năng 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 Mouth Only cho các mô hình có hỗ trợ biểu cảm khi không cần hoạt ảnh khuôn mặt đầy đủ