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

Để hoạt động đá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 âm thanh mới thay vì tái sử dụng một generator qua các khoảng im lặng kéo dài. Xem Tạo lại Generator trong phần Xử lý sự cố để biết chi tiết.

Cấu hình mô hình tiêu chuẩn

Nút Create Runtime Viseme Generator sử dụng các cài đặt mặc định hoạt động tốt trong 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 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 mô hình chân thực

Node 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 Model

Cài đặt Loại mô hình xác định phiên bản nào của mô hình chân thực sẽ được sử dụng:

Loại mô hìnhHiệu suấtChất lượng hình ảnhXử lý nhiễuTrườ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ể hiển thị 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óiMôi trường âm thanh sạch, các tình huống yêu cầu hiệu suất cao
Tối ưu hóa một phầnHiệ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 có 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 để 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 có 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 thao tác xử lý mô hình nội bộ.

  • 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 các hệ thống đa lõi nhưng sử dụng nhiều CPU hơn.

Luồng giữa các thao tác: 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 tính năng tự động phát hiện (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 mang lại các bản 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 đồng bộ môi
  • Nên 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ợ cảm xúc

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

Nhìn trước (ms): Thời gian nhìn trước tính bằng mili giây để cải thiện độ chính xác khớp 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 làm tăng độ trễ

Loại đầu ra: Xác định loại bộ điều khiển khuôn mặt nào được tạo ra.

  • Khuôn mặt đầy đủ: 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

Các tâm trạng có sẵn:

  • Trung lập, Vui vẻ, Buồn bã, Kinh tởm, Giận dữ, 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 độ tâm trạng: Kiểm soát mức độ ảnh hưởng của tâm trạng đến hoạt ảnh (0.0 đến 1.0)

Kiểm soát tâm trạng theo 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ách sử dụ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): Điều chỉnh 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 lựa 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, hội thoại vui tươi, các 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
Kinh tởmPhản ứng tiêu cực, nội dung khó chịu, sự từ chối0.4 - 0.8
Tức giậnHộ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ờ, những tiết lộ, phản ứng sốc0.7 - 1.0
Sợ hãiTình huống đe dọa, lo âu, hội thoại bồn chồn0.5 - 0.9
Tự tinThuyết trình chuyên nghiệp, hội thoại lãnh đạo, lời nói quyết đoán0.7 - 1.0
Phấn khíchNội dung tràn đầy năng lượng, thông báo, hội thoại hào hứng0.8 - 1.0
Chán nảnNội dung đơn điệu, hội thoại thờ ơ, lời nói mệt mỏi0.3 - 0.7
Tinh nghịchHội thoại thân mật, hài hước, tương tác nhẹ nhàng0.6 - 0.9
Bối rốiHộ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 khớp khẩu hình

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 của 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 không cho 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 tiếng cười phản ứng động theo 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 lip sync:
    • Kết nối đầu ra từ nút Blend Runtime MetaHuman Lip Sync với chân 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 nút Output Pose
  4. Nếu chỉ sử dụng tiếng cười mà không có khớp 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 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ẽ hoạt họa động 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 tiếp của chuyển động môi giữa các hoạt ảnh tiếng cười. Giá trị cao hơn sẽ tạo ra các chuyển tiếp 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 đó trạng thái 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ố tiếng cười tối đa0.7Điều chỉnh tỷ lệ cường độ tối đa của hoạt ảnh tiếng 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 hoạt ảnh hiện có

Video hướng dẫn

Thích xem hơn đọc? Hãy xem video hướng dẫn về cách thiết lập chính xác 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à các 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 thuộc về Animation Blueprint của cơ thể. Đối với các hoạt ảnh tùy chỉnh của cơ thể (ví dụ: thân, 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 nút Layered blend per bone vào giữa các animation cơ thể của bạn và đầu ra cuối cùng. Đảm bảo Use Attached Parent được đặt là true.
  2. Cấu hình thiết lập lớp:
    • Thêm 1 phần tử vào mảng Layer Setup
    • Thêm 3 phần tử 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 Tùy chọn hòa trộn đường cong, chọn "Sử dụng Giá trị Tối đa". Đ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 đúng cách phía trên khớp môi.
  4. Tạo 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 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 tiếng 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ộ mục tiêu biến dạng

Standard Model 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 Lip Sync

Đ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 lip sync tạo ra bằng cách sử dụng node Modify Curve. Điều này hữu ích khi một curve 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 lip sync 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 scale
  3. Đặt thuộc tính Apply Mode của nút thành Scale
  4. Đặt tham số Value: các giá trị dưới 1.0 sẽ làm giảm chuyển động, các giá trị trên 1.0 sẽ khuếch đại nó (ví dụ: 0.8 = giảm 20%)

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

Tên đường congMục đíchÁp dụng choĐiều chỉnh điển hình
CTRL_expressions_tongueOutLưỡi nhô về phía trước trong một số âm vị nhất địnhMô hình chuẩn0.8 để giảm độ nhô lưỡi
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 pin đường cong vào cùng một nút Modify Curve để chia tỷ lệ nhiều đường cong cùng một lúc.

Tinh Chỉnh Theo Tâm Trạng Cụ Thể

Đối với các mô hình hỗ trợ tâm trạng, 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 - Nhướng lông mày trong
  • CTRL_expressions_browRaiseOuterL / CTRL_expressions_browRaiseOuterR - Nhướ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

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 các yếu tố sau:

Tiêu chíMô hình tiêu chuẩnMô hình chân thựcMô hình chân thực có cảm xúc
Tương thích nhân vậtMetaHumans và mọi 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 ảnhKhớp môi tốt với hiệu suất tối ưuTăng tính chân thực với chuyển động miệng tự nhiên hơnTă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 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 bộ điều khiển khuôn mặt, 3 mức tối ưu hóa81 bộ điều khiển khuôn mặt, 12 tâm trạng, đầu ra tùy chỉ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 thông thường, 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

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ế 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 khớp môi đáng tin cậy, vui lòng sử dụng Mô hình Chuẩn thay thế.

Sự cố này chỉ xảy ra cụ thể 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 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 bộ tạo cho Realistic Models:

Để vận hành đáng tin cậy và nhất quán với Realistic Models, bạn nên tạo lại bộ tạo mỗi lần 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 khớp môi ngừng hoạt động khi tái sử dụng các bộ tạo sau những khoảng thời gian im lặng.

Ví dụ: bạn có thể tạo lại bộ tạo lip sync ở mỗi lần 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 thức nào khác để bắt đầu phát lại âm thanh và lip sync:

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ố 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 bạ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 trong cùng thư mục chứa tệp .uproject
  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 tính năng khớp môi (lip sync) không hoạt động chính xác trong dự án đã đóng gói 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 thực tế trong các bản đó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ỉ sử dụng Blueprint

Trong một số dự án chỉ sử dụng Blueprint, Unreal Engine vẫn có thể biên dịch ở cấu hình Development ngay cả khi bạn đã 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, hãy vào Công cụ → Lớp C++ mới trong menu của trình biên tập UE và tạo một lớp rỗng. Điều này sẽ buộc dự án được biên dịch đúng ở cấu hình Shipping. Dự án của bạn vẫn có thể chỉ sử dụng Blueprint về mặt chức năng; lớp C++ chỉ cần thiết để có cấu hình biên dịch phù hợp.

Suy giảm phản hồi 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 sự tích tụ bộ nhớ. Theo mặc định, bộ nhớ được cấp phát lại mỗi khi dữ liệu â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 hoặc tương tự.

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

  • Điều chỉnh kích thước chunk xử lý cho các mô hình Realistic 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 Mouth Only cho các mô hình hỗ trợ cảm xúc khi không cần hoạt ảnh khuôn mặt đầy đủ