Trình hỗ trợ Hoạt ảnh Mắt
Ngoài khả năng đồng bộ môi, plugin Runtime MetaHuman Lip Sync bao gồm hai tiện ích hỗ trợ tùy chọn để tạo hoạt ảnh cho mắt MetaHuman:
- Auto Blink: một trình hỗ trợ tạo ra các nháy mắt ngẫu nhiên, tự nhiên cho MetaHuman
- Eyes Aim: một nút Animation Blueprint giúp mắt MetaHuman nhìn vào một vị trí trong không gian thế giới
Các tính năng này hoàn toàn độc lập với đồng bộ môi và có thể được sử dụng riêng lẻ, cùng nhau, hoặc kết hợp với các nút đồng bộ môi. Chúng được thiết kế như những trình hỗ trợ nhẹ, dễ tích hợp để thêm hành vi mắt sống động mà không cần phải tạo thủ công.
Xem trước Tính năng
Nếu quy trình hoạt ảnh khuôn mặt của bạn đã bao gồm nháy mắt và ánh mắt động, bạn có thể bỏ qua trang này. Các công cụ hỗ trợ này tồn tại cho những trường hợp bạn muốn có hành vi mắt sống động như thật mà không cần tự tạo chúng, ví dụ: khi các chuỗi hoạt ảnh của bạn không bao gồm nháy mắt, hoặc khi bạn cần mắt động theo dõi một mục tiêu đang di chuyển (điều mà các chuỗi hoạt ảnh tĩnh không thể làm được). Chúng cũng có thể được xếp lớp lên trên các hoạt ảnh khuôn mặt hiện có để thêm các phần còn thiếu, chẳng hạn như nháy mắt trên một chuỗi chỉ hoạt ảnh miệng.
Tự động Nháy Mắt
Công cụ hỗ trợ Tự động Nháy Mắt tạo ra các cái nháy mắt ngẫu nhiên, trông tự nhiên bằng cách điều khiển các đường cong CTRL_L_eye_blink và CTRL_R_eye_blink của MetaHuman Face Control Rig.
Cách Hoạt Động
Mỗi khung hình, bạn gọi Update MetaHuman Auto Blink từ Event Graph của Face Animation Blueprint và truyền vào delta time của khung hình đó. Hàm này:
- Theo dõi trạng thái riêng cho từng nhân vật (thời gian nháy mắt tiếp theo, pha hiện tại đang mở/đóng, v.v.) được khóa bởi
AnimInstancegọi nó - Trả về hai giá trị float trong phạm vi 0..1, một cho mắt trái và một cho mắt phải, biểu thị mức độ nhắm của mỗi mắt tại thời điểm đó
- Sau đó, bạn lưu trữ các giá trị này trong các biến Blueprint và đưa chúng vào nút Control Rig trong Anim Graph
Thiết lập
Hai bước: thêm lệnh gọi nháy mắt vào Event Graph của bạn, sau đó đưa các giá trị vào nút Control Rig trong Anim Graph.
1. Event Graph: điều khiển giá trị nháy mắt mỗi khung hình
Trong Face Animation Blueprint của bạn (ví dụ: Face_AnimBP hoặc phiên bản đã sao chép/duplicate của nó, xem Hướng dẫn Thiết lập), mở Event Graph và thêm nội dung sau vào Event Blueprint Update Animation:
- Gọi
Update MetaHuman Auto Blink - Kết nối Delta Time X (từ sự kiện) với Delta Seconds
- (Tùy chọn) Cấu hình struct Config. Các giá trị mặc định đã trông tự nhiên
- Thăng cấp Left Blink Value và Right Blink Value thành các biến Blueprint (ví dụ:
LeftBlinkValue,RightBlinkValue)

2. Anim Graph: đưa các giá trị vào Face Control Rig
Trong Anim Graph của cùng Animation Blueprint đó:
- Đặt một nút Control Rig sau tất cả các logic khuôn mặt khác có thể ghi vào các đường cong nháy mắt (ví dụ: sau
Blend Runtime MetaHuman Lip Syncvà bất kỳ lớp hoạt ảnh khuôn mặt tùy chỉnh nào) - Trong bảng Details của nút, đặt Control Rig Class thành Control Rig khuôn mặt MetaHuman của bạn. Đường dẫn thường là:
/All/Game/MetaHumans/Common/Face/Face_ControlBoard_CtrlRig- Dự án của bạn có thể có một đường dẫn khác tùy thuộc vào cách MetaHuman được nhập.
- Trong bảng Details, mở rộng phần Input và bật Use Pin cho:
CTRL_L_eye_blinkCTRL_R_eye_blink
- Kết nối biến
LeftBlinkValuecủa bạn vớiCTRL_L_eye_blink - Kết nối biến
RightBlinkValuecủa bạn vớiCTRL_R_eye_blink

Đặt nút Control Rig sau các nút blend đồng bộ môi (và bất kỳ nút hoạt ảnh khuôn mặt nào khác) để các giá trị nháy mắt không bị ghi đè bởi logic khác.
Cấu hình
Nút Update MetaHuman Auto Blink chấp nhận một struct Config tùy chọn. Các giá trị mặc định đã trông tự nhiên cho hầu hết các nhân vật, hãy mở rộng bên dưới nếu bạn muốn tinh chỉnh hành vi.
Các thuộc tính Config
Thời gian
| Thuộc tính | Mặc định | Mô tả |
|---|---|---|
| Min Time Between Blinks | 2.0 s | Khoảng thời gian tối thiểu giữa các lần nháy mắt khi mắt đang mở hoàn toàn. |
| Max Time Between Blinks | 4.0 s | Khoảng thời gian tối đa giữa các lần nháy mắt. Khoảng thời gian thực tế được ngẫu nhiên hóa giữa tối thiểu và tối đa. |
| Min Closed Hold Time | 0.04 s | Thời gian tối thiểu mắt ở trạng thái nhắm hoàn toàn. |
| Max Closed Hold Time | 0.08 s | Thời gian tối đa mắt ở trạng thái nhắm hoàn toàn. |
Nội suy
| Thuộc tính | Mặc định | Mô tả |
|---|---|---|
| Close Interp Speed | 35.0 | Tốc độ khi nhắm mắt. Con người nhắm mắt nhanh hơn mở mắt, vì vậy giá trị này được đặt cao hơn tốc độ mở một cách có chủ ý. |
| Open Interp Speed | 18.0 | Tốc độ khi mở mắt. |
| Closed Threshold | 0.97 | Giá trị mà tại đó nháy mắt được coi là "nhắm hoàn toàn" và pha giữ bắt đầu. |
| Open Threshold | 0.02 | Giá trị mà tại đó nháy mắt được coi là "mở hoàn toàn" và lần nháy mắt tiếp theo được lên lịch. |
Linh tinh
| Thuộc tính | Mặc định | Mô tả |
|---|---|---|
| Independent Eyes | false | Khi true, mắt trái và mắt phải nháy độc lập với thời gian riêng biệt. Khi false (mặc định), cả hai mắt nháy đồng bộ hoàn hảo. |
bEnabled (chân hàm) | true | Khi false, mắt từ từ mở ra và tạm dừng nháy. Hữu ích cho các cảnh quay, ngủ, chết, v.v. |
Điều khiển Runtime
Bạn cũng có thể gọi Reset Auto Blink State để xóa rõ ràng trạng thái nội bộ cho một AnimInstance nhất định (ví dụ: khi hồi sinh một nhân vật hoặc chuyển đổi trạng thái điện ảnh).
Ánh mắt
Công cụ hỗ trợ Ánh mắt là một nút Animation Blueprint (Runtime MetaHuman Eyes Aim) giúp mắt của nhân vật theo dõi một vị trí trong không gian thế giới — ví dụ: camera người chơi, một diễn viên khác hoặc bất kỳ mục tiêu di chuyển nào. Nó hỗ trợ giới hạn yaw/pitch, làm mượt, bảo vệ chống lật khi mục tiêu đi qua phía sau đầu và các vi chuyển động mắt (micro-saccades) tùy chọn để tăng thêm tính chân thực.
Chọn Chế Độ
Nút hỗ trợ hai chế độ, được chọn qua menu thả xuống Mode trong bảng Details của nút:
| Chế độ | Nó điều khiển cái gì | Nên đặt ở đâu |
|---|---|---|
| Curves (mặc định) | Các đường cong điều khiển ánh nhìn mắt của Face Control Rig (CTRL_expressions_eyeLook*) | Trong Face Animation Blueprint (ví dụ: Face_AnimBP), trước nút Control Rig |
| Bones | Các bone FACIAL_L_Eye / FACIAL_R_Eye trực tiếp, bỏ qua Control Rig | Trong Face Post Process Animation Blueprint (ví dụ: Face_PostProcess_AnimBP), sau nút AnimNode_RigLogic |
Chế độ Curves là chế độ mặc định được khuyến nghị. Nó kết hợp một cách sạch sẽ với các hệ thống khuôn mặt dựa trên đường cong khác (đồng bộ môi, biểu cảm, blendshape ARKit, v.v.), vì các giá trị được kết hợp thông qua đánh giá Control Rig thông thường thay vì tranh giành các phép biến đổi bone.
Trên một số biến thể MetaHuman (đặc biệt là các rig cũ hơn, bao gồm một số được tải xuống qua Quixel Bridge), các đường cong điều khiển ánh nhìn mắt không thực sự điều khiển mắt. Triệu chứng có thể thấy là mắt nhìn xuống dưới với đồng tử gần như bị che khuất khi nút ở chế độ Curves đang hoạt động, bất kể vị trí mục tiêu.
Nếu bạn thấy điều này, hãy chuyển sang Chế độ Bones. Chế độ Bones trực tiếp xoay các bone mắt, do đó nó hoạt động trên mọi biến thể MetaHuman bất kể Control Rig được kết nối như thế nào. Xem tab Bones trong Thiết lập bên dưới.
Thiết lập
- Chế độ Curves (mặc định)
- Chế độ Bones (dự phòng)
Thiết lập mặc định. Nút nằm trong Face Animation Blueprint tiêu chuẩn và điều khiển các đường cong ánh nhìn mắt của Face Control Rig.
Hai bước: thêm nút vào Anim Graph của bạn, sau đó cung cấp vị trí mục tiêu từ Event Graph.
1. Anim Graph: thêm nút
Trong Anim Graph của Face Animation Blueprint của bạn:
- Thêm một nút
Runtime MetaHuman Eyes Aim - Để Mode ở chế độ Curves trong bảng Details
- Đặt nó sau tất cả các logic khuôn mặt khác có thể ghi vào các đường cong ánh nhìn mắt (đồng bộ môi, hoạt ảnh tùy chỉnh, v.v.), cùng nguyên tắc với nút Control Rig Tự động Nháy Mắt
- Kết nối pose hiện có với Source Pose
- Kết nối đầu ra với nút tiếp theo trong chuỗi của bạn (hoặc
Output Pose) - Tạo một biến Blueprint
Vector(ví dụ:TargetWorldLocation) và kết nối nó với chân Target World Location của nút. Bạn sẽ cập nhật biến này từ Event Graph trong bước tiếp theo.

2. Event Graph: cung cấp vị trí mục tiêu
Chân Target World Location mong đợi một FVector trong không gian thế giới. Một trường hợp phổ biến là để MetaHuman nhìn vào camera người chơi. Trong Event Blueprint Update Animation:
- Lấy Player Camera Manager (Player Index 0)
- Kiểm tra Is Valid
- Nếu hợp lệ, gọi Get Camera Location
- Lưu trữ nó trong biến Blueprint
TargetWorldLocation

Để theo dõi một diễn viên tùy ý (NPC, vật phẩm, điểm ưa thích) thay vào đó, hãy lấy vị trí của diễn viên đó mỗi khung hình và lưu trữ nó trong cùng một biến. Đối với một điểm nhìn cố định, hãy đặt Target World Location một lần hoặc như một hằng số trong bảng Details của nút.
Sử dụng thiết lập này nếu phương pháp Chế độ Curves không hoạt động với biến thể MetaHuman của bạn (xem cảnh báo ở trên). Trong Chế độ Bones, nút trực tiếp xoay các bone mắt và phải chạy sau khi Control Rig đã đánh giá xong, điều này có nghĩa là nó thuộc về Face Post Process Animation Blueprint thay vì Face AnimBP thông thường.
Ba bước: xác định vị trí Post Process Anim BP, thêm nút sau RigLogic, sau đó cung cấp vị trí mục tiêu từ Event Graph của blueprint đó.
1. Xác định vị trí Face Post Process Anim BP
- Mở tài sản Skeletal Mesh khuôn mặt của MetaHuman (ví dụ:
Facetrong thư mục MetaHuman của bạn) - Trong bảng Details của tài sản, tìm trường Post Process Anim Blueprint
- Mở tài sản đó, nó thường được đặt tên như
Face_PostProcess_AnimBP
2. Anim Graph: thêm nút sau RigLogic
Trong Anim Graph của Face Post Process Anim BP:
- Xác định vị trí nút
AnimNode_RigLogichiện có (nó chuyển đổi các đường cong của Face Control Rig thành các phép biến đổi bone) - Thêm một nút
Runtime MetaHuman Eyes AimsauAnimNode_RigLogicvà trướcOutput Pose - Trong bảng Details của nút, đặt Mode thành Bones
- Kết nối
AnimNode_RigLogicvới Source Pose của nút Eyes Aim - Kết nối đầu ra của nút Eyes Aim với
Output Pose - Tạo một biến Blueprint
Vector(ví dụ:TargetWorldLocation) trong Post Process Anim BP này và kết nối nó với chân Target World Location của nút

Các tham chiếu bone mặc định (FACIAL_L_Eye và FACIAL_R_Eye) khớp với bộ xương khuôn mặt MetaHuman tiêu chuẩn. Nếu nhân vật của bạn sử dụng bộ xương tùy chỉnh với các tên bone mắt khác, hãy ghi đè chúng trong bảng Details của nút trong danh mục Bones.
3. Event Graph: cung cấp vị trí mục tiêu
Vì nút nằm trong Post Process Anim BP, logic vị trí mục tiêu cũng phải nằm trong Event Graph của blueprint này, không phải trong Face_AnimBP. Thiết lập giống hệt với Chế độ Curves (lấy vị trí camera, vị trí của một diễn viên hoặc sử dụng một hằng số), chỉ được thực hiện bên trong Face_PostProcess_AnimBP.

Bất kỳ logic không liên quan nào (đồng bộ môi, tự động nháy mắt, v.v.) có thể ở lại trong Face AnimBP thông thường. Chỉ có phép tính vị trí mục tiêu cho Ánh mắt mới cần được di chuyển đến đây. Face Control Rig buộc phải điều khiển các bone mắt mỗi khung hình dựa trên các đường cong của nó. Nếu nút Eyes Aim chạy trong Face AnimBP thông thường (trước Control Rig), Control Rig sẽ ghi đè các phép xoay bone sau đó. Post Process Anim BP chạy sau khi Control Rig đã tạo ra các phép biến đổi bone cuối cùng, do đó nó là nơi thích hợp để áp dụng các phép xoay bone cuối cùng cần được "ưu tiên".Tại sao Chế độ Bones cần Post Process Anim BP?
Cấu hình
Tất cả các cài đặt đều được hiển thị trên bảng Details của nút Runtime MetaHuman Eyes Aim.
Nhắm & Giới hạn
Nhắm
| Thuộc tính | Mặc định | Mô tả |
|---|---|---|
| Mode | Curves | Chọn cách mắt được điều khiển. Xem Chọn Chế Độ. |
| Target World Location | (0,0,0) | Điểm trong không gian thế giới mà mắt nhìn vào. Được hiển thị dưới dạng chân theo mặc định. |
bEnabled | true | Khi false, mắt từ từ trở về phía trước và bỏ qua mục tiêu. Được hiển thị dưới dạng chân theo mặc định. |
Giới hạn
| Thuộc tính | Mặc định | Mô tả |
|---|---|---|
| Max Yaw Degrees | 35° | Độ lệch ngang (yaw) tối đa so với hướng về phía trước của đầu. Giới hạn từ 0 đến 80. |
| Max Pitch Degrees | 25° | Độ lệch dọc (pitch) tối đa so với hướng về phía trước của đầu. Giới hạn từ 0 đến 80. |
| Anti Flip Behind | true | Ngăn mắt bị lật khi mục tiêu đi qua phía sau đầu. |
Làm mượt & Vi chuyển động mắt (Saccades)
Làm mượt
| Thuộc tính | Mặc định | Mô tả |
|---|---|---|
| Interp Speed | 12.0 | Tốc độ làm mượt cho chuyển động của mắt. Cao hơn = nhanh hơn, thấp hơn = chậm chạp hơn. |
Vi chuyển động mắt (Saccades)
Vi chuyển động mắt là những thay đổi hướng nhìn nhỏ, ngẫu nhiên mà mắt thật liên tục thực hiện. Thêm chúng sẽ tránh được vẻ ngoài "mắt chết" của việc theo dõi hoàn toàn mượt mà.
| Thuộc tính | Mặc định | Mô tả |
|---|---|---|
| Enable Saccades | true | Bật/tắt vi chuyển động mắt. |
| Saccade Yaw Amplitude Deg | 1.5° | Độ rung ngang tối đa mỗi lần vi chuyển động. Giá trị nhỏ (1–2°) cảm thấy tự nhiên; giá trị lớn hơn trông giật. |
| Saccade Pitch Amplitude Deg | 1.0° | Độ rung dọc tối đa mỗi lần vi chuyển động. Thường nhỏ hơn một chút so với biên độ yaw. |
| Min Saccade Interval | 0.6 s | Thời gian tối thiểu giữa các lần vi chuyển động. |
| Max Saccade Interval | 2.5 s | Thời gian tối đa giữa các lần vi chuyển động. Giá trị lớn hơn cảm thấy bình tĩnh hơn, giá trị nhỏ hơn cảm thấy bồn chồn hơn. |
Bones (Chỉ chế độ Bones)
| Thuộc tính | Mặc định | Mô tả |
|---|---|---|
| Left Eye Bone | FACIAL_L_Eye | Tên bone mắt trái. Khớp với bộ xương khuôn mặt MetaHuman tiêu chuẩn. |
| Right Eye Bone | FACIAL_R_Eye | Tên bone mắt phải. Khớp với bộ xương khuôn mặt MetaHuman tiêu chuẩn. |
Hiệu chỉnh (Chỉ chế độ Curves)
Các giá trị này xác định cách các góc trong không gian đầu được ánh xạ tới các giá trị đường cong ánh nhìn mắt của MetaHuman face CR. Các giá trị mặc định được tinh chỉnh cho MetaHuman face CR tiêu chuẩn và hiếm khi cần thay đổi.
| Thuộc tính | Mặc định | Mô tả |
|---|---|---|
| Yaw Degrees Per Unit Curve | 30° | Góc được ánh xạ tới giá trị đường cong là 1.0 cho các đường cong ánh nhìn yaw. |
| Pitch Degrees Per Unit Curve | 25° | Góc được ánh xạ tới giá trị đường cong là 1.0 cho các đường cong ánh nhìn pitch. |
Kết Hợp Với Đồng Bộ Môi và Các Hoạt Ảnh Khác
Cả hai công cụ hỗ trợ đều được thiết kế để cùng tồn tại với các nút đồng bộ môi của plugin và bất kỳ hoạt ảnh khuôn mặt tùy chỉnh nào bạn đã có. Nguyên tắc chung: đặt các nút Eyes Aim và Control Rig (tự động nháy mắt) sau đồng bộ môi và bất kỳ hoạt ảnh khuôn mặt tùy chỉnh nào, để các giá trị của chúng không bị ghi đè ở phía sau.
Xem Sơ đồ Luồng Thực thi Chi tiết (Chế độ Curves so với Bones)
Tùy thuộc vào việc rig MetaHuman của bạn sử dụng Chế độ Curves được khuyến nghị hay Chế độ Bones dự phòng, vị trí đặt logic thực thi của bạn sẽ thay đổi. Mở rộng sơ đồ bên dưới để xem thứ tự thực thi chính xác cho cả hai quy trình:
Auto Blink và lip sync vẫn nằm trong Face AnimBP thông thường ở cả hai chế độ.
Để biết chi tiết về việc xếp lớp với hoạt ảnh cơ thể, hãy xem Kết hợp với Hoạt ảnh Hiện có.
Ghi chú & Giới hạn
Các trình trợ giúp này dành riêng cho MetaHuman. Chúng dựa trên các tên đường cong Control Rig khuôn mặt MetaHuman tiêu chuẩn (CTRL_L_eye_blink, CTRL_R_eye_blink, CTRL_expressions_eyeLook*) và các xương mắt tiêu chuẩn (FACIAL_L_Eye, FACIAL_R_Eye). Chúng không được thiết kế cho các nhân vật tùy chỉnh không phải MetaHuman.
Cần trợ giúp?
Đối với các yêu cầu phát triển tùy chỉnh, hãy liên hệ [email protected].