مساعدات تحريك العين
بالإضافة إلى مزامنة الشفاه، يتضمن إضافة Runtime MetaHuman Lip Sync أداتين مساعدتين اختياريتين لتحريك عيون MetaHuman:
- Auto Blink: أداة مساعدة تنتج رموش عين عشوائية طبيعية على MetaHuman
- Eyes Aim: عقدة Animation Blueprint تجعل عيون MetaHuman تنظر إلى موقع في الفضاء العالمي
هذه الميزات مستقلة تمامًا عن مزامنة الشفاه ويمكن استخدامها بمفردها، أو معًا، أو مدمجة مع عُقد مزامنة الشفاه. صُممت كأدوات مساعدة خفيفة الوزن وقابلة للإضافة بسهولة لإضفاء سلوك عين واقعي دون الحاجة إلى إنشائه يدويًا.
معاينات الميزات
إذا كان خط أنابيب الرسوم المتحركة للوجه لديك يتضمن بالفعل ومضات عين ونظرة ديناميكية، يمكنك تخطي هذه الصفحة. هذه المساعدات موجودة للحالات التي تريد فيها سلوك عين واقعي دون تأليفه بنفسك، على سبيل المثال، عندما لا تتضمن تسلسلات الرسوم المتحركة الخاصة بك ومضات عين، أو عندما تحتاج العيون إلى متابعة هدف متحرك ديناميكيًا (وهو أمر لا تستطيع تسلسلات الرسوم المتحركة الثابتة فعله). يمكن أيضًا وضعها فوق الرسوم المتحركة للوجه الموجودة لإضافة أجزاء مفقودة، مثل ومضات العين فوق تسلسل يحرك الفم فقط.
Auto Blink
يقوم مساعد Auto Blink بإنتاج ومضات عين عشوائية وطبيعية المظهر عن طريق تحريك منحنيات CTRL_L_eye_blink و CTRL_R_eye_blink الخاصة بـ MetaHuman Face Control Rig.
كيف يعمل
في كل إطار، تقوم باستدعاء Update MetaHuman Auto Blink من Event Graph الخاص بـ Face Animation Blueprint الخاص بك وتمرير وقت دلتا الإطار. تقوم الدالة بما يلي:
- تتبع حالة كل شخصية (وقت الومضة التالية، مرحلة الفتح/الإغلاق الحالية، إلخ) مرتبطة بـ
AnimInstanceالمستدعي - تُرجع قيمتين عشريتين في النطاق 0..1، واحدة للعين اليسرى والأخرى للعين اليمنى، تمثلان مدى إغلاق كل عين حاليًا
- تقوم بعد ذلك بتخزين هذه القيم في متغيرات Blueprint وتغذيتها في عقدة Control Rig في Anim Graph
الإعداد
خطوتان: أضف استدعاء الومضة إلى Event Graph الخاص بك، ثم قم بتغذية القيم في عقدة Control Rig في Anim Graph.
1. Event Graph: تحريك قيم الومضة كل إطار
في Face Animation Blueprint الخاص بك (مثل Face_AnimBP أو نسختك المكررة/المنسوخة، راجع دليل الإعداد)، افتح Event Graph وأضف ما يلي إلى Event Blueprint Update Animation:
- استدع
Update MetaHuman Auto Blink - قم بتوصيل Delta Time X (من الحدث) بـ Delta Seconds
- (اختياري) قم بتكوين هيكل Config. الإعدادات الافتراضية تبدو طبيعية بالفعل
- قم بترقية Left Blink Value و Right Blink Value إلى متغيرات Blueprint (مثل
LeftBlinkValue,RightBlinkValue)

2. Anim Graph: تغذية القيم في Face Control Rig
في Anim Graph لنفس Animation Blueprint:
- ضع عقدة Control Rig بعد كل منطق الوجه الآخر الذي قد يكتب إلى منحنيات ومضة العين (مثل بعد
Blend Runtime MetaHuman Lip Syncوأي طبقات رسوم متحركة للوجه مخصصة) - في لوحة Details الخاصة بالعقدة، عيّن Control Rig Class إلى Control Rig لوجه MetaHuman الخاص بك. المسار عادةً هو:
/All/Game/MetaHumans/Common/Face/Face_ControlBoard_CtrlRig- قد يكون لمشروعك مسار مختلف اعتمادًا على كيفية استيراد MetaHuman.
- في لوحة Details، قم بتوسيع قسم Input وقم بتمكين Use Pin لكل من:
CTRL_L_eye_blinkCTRL_R_eye_blink
- قم بتوصيل متغير
LeftBlinkValueالخاص بك بـCTRL_L_eye_blink - قم بتوصيل متغير
RightBlinkValueالخاص بك بـCTRL_R_eye_blink

ضع عقدة Control Rig بعد عقد مزج مزامنة الشفاه (وأي عقد رسوم متحركة للوجه أخرى) حتى لا يتم استبدال قيم الومضة بمنطق آخر.
التكوين
تقبل عقدة Update MetaHuman Auto Blink هيكل Config اختياريًا. الإعدادات الافتراضية تبدو طبيعية بالفعل لمعظم الشخصيات، قم بالتوسيع أدناه إذا كنت تريد ضبط السلوك.
خصائص التكوين
التوقيت
| الخاصية | الافتراضي | الوصف |
|---|---|---|
| Min Time Between Blinks | 2.0 ثانية | الحد الأدنى للفاصل الزمني بين الومضات بينما تكون العيون مفتوحة بالكامل. |
| Max Time Between Blinks | 4.0 ثانية | الحد الأقصى للفاصل الزمني بين الومضات. يتم اختيار الفاصل الزمني الفعلي عشوائيًا بين الحد الأدنى والحد الأقصى. |
| Min Closed Hold Time | 0.04 ثانية | الحد الأدنى للوقت الذي تبقى فيه العيون مغلقة بالكامل. |
| Max Closed Hold Time | 0.08 ثانية | الحد الأقصى للوقت الذي تبقى فيه العيون مغلقة بالكامل. |
الاستيفاء
| الخاصية | الافتراضي | الوصف |
|---|---|---|
| Close Interp Speed | 35.0 | السرعة عند إغلاق العينين. يغلق البشر أعينهم أسرع مما يفتحونها، لذلك هذه القيمة أعلى عمدًا من سرعة الفتح. |
| Open Interp Speed | 18.0 | السرعة عند فتح العينين. |
| Closed Threshold | 0.97 | القيمة التي تعتبر عندها الومضة "مغلقة بالكامل" وتبدأ مرحلة الإمساك. |
| Open Threshold | 0.02 | القيمة التي تعتبر عندها الومضة "مفتوحة بالكامل" ويتم جدولة الومضة التالية. |
متنوع
| الخاصية | الافتراضي | الوصف |
|---|---|---|
| Independent Eyes | false | عندما تكون true، تومض العين اليسرى واليمنى بشكل مستقل بتوقيت منفصل. عندما تكون false (افتراضي)، تومض كلتا العينين بشكل متزامن تمامًا. |
bEnabled (دبوس الدالة) | true | عندما تكون false، تنفتح العيون ببطء ويتوقف الوميض. مفيد لمشاهد القطع، النوم، الموت، إلخ. |
التحكم في وقت التشغيل
يمكنك أيضًا استدعاء Reset Auto Blink State لمسح الحالة الداخلية بشكل صريح لـ AnimInstance معين (على سبيل المثال، عند إعادة ظهور شخصية أو تبديل حالات السينما).
Eyes Aim
مساعد Eyes Aim هو عقدة Animation Blueprint (Runtime MetaHuman Eyes Aim) تجعل عيون الشخصية تتبع موقعًا في مساحة العالم — على سبيل المثال، كاميرا اللاعب، أو ممثل آخر، أو أي هدف متحرك. يدعم تثبيت الانعراج/الإمالة، والتنعيم، والحماية من الانقلاب عندما يمر الهدف خلف الرأس، والحركات البصرية الدقيقة الاختيارية (micro-saccades) لمزيد من الواقعية.
اختيار الوضع
تدعم العقدة وضعين، يتم اختيارهما عبر القائمة المنسدلة Mode في لوحة Details الخاصة بالعقدة:
| الوضع | ما يحركه | أين تضعه |
|---|---|---|
| Curves (افتراضي) | منحنيات Control Rig لنظرة العين (CTRL_expressions_eyeLook*) | في Face Animation Blueprint (مثل Face_AnimBP)، قبل عقدة Control Rig |
| Bones | عظام FACIAL_L_Eye / FACIAL_R_Eye مباشرة، متجاوزًا Control Rig | في Face Post Process Animation Blueprint (مثل Face_PostProcess_AnimBP)، بعد عقدة AnimNode_RigLogic |
وضع Curves هو الوضع الافتراضي الموصى به. يتكون بشكل نظيف مع أنظمة الوجه الأخرى القائمة على المنحنيات (مزامنة الشفاه، التعبيرات، أشكال ARKit، إلخ)، حيث يتم دمج القيم من خلال تقييم Control Rig العادي بدلاً من التنافس على تحويلات العظام.
في بعض متغيرات MetaHuman (خاصة الهياكل القديمة، بما في ذلك بعض تلك التي تم تنزيلها عبر Quixel Bridge)، لا تقوم منحنيات نظرة العين فعليًا بتحريك العيون. العرض المرئي هو أن العيون تنظر إلى الأسفل مع إخفاء حدقة العين تقريبًا عندما تكون عقدة وضع Curves نشطة، بغض النظر عن موقع الهدف.
إذا رأيت هذا، قم بالتبديل إلى وضع Bones. يقوم وضع Bones بتدوير عظام العين مباشرة، لذلك يعمل على كل متغير MetaHuman بغض النظر عن كيفية توصيل Control Rig. راجع علامة التبويب Bones في الإعداد أدناه.
الإعداد
- وضع Curves (افتراضي)
- وضع Bones (احتياطي)
الإعداد الافتراضي. تعيش العقدة في Face Animation Blueprint القياسي وتحرك منحنيات نظرة العين الخاصة بـ Control Rig للوجه.
خطوتان: أضف العقدة إلى Anim Graph الخاص بك، ثم قم بتغذيتها بموقع هدف من Event Graph.
1. Anim Graph: إضافة العقدة
في Anim Graph الخاص بـ Face Animation Blueprint الخاص بك:
- أضف عقدة
Runtime MetaHuman Eyes Aim - اترك Mode مضبوطًا على Curves في لوحة Details
- ضعها بعد كل منطق الوجه الآخر الذي قد يكتب إلى منحنيات نظرة العين (مزامنة الشفاه، الرسوم المتحركة المخصصة، إلخ)، نفس مبدأ عقدة Control Rig الخاصة بـ Auto Blink
- قم بتوصيل الوضعية الحالية بـ Source Pose
- قم بتوصيل المخرجات بالعقدة التالية في سلسلتك (أو
Output Pose) - أنشئ متغير
Vectorمن نوع Blueprint (مثلTargetWorldLocation) وقم بتوصيله بدبوس Target World Location الخاص بالعقدة. ستقوم بتحديث هذا المتغير من Event Graph في الخطوة التالية.

2. Event Graph: تغذية موقع هدف
يتوقع دبوس Target World Location FVector في مساحة العالم. حالة شائعة هي جعل MetaHuman ينظر إلى كاميرا اللاعب. في Event Blueprint Update Animation:
- احصل على Player Camera Manager (Player Index 0)
- تحقق من Is Valid
- إذا كان صالحًا، استدع Get Camera Location
- قم بتخزينه في متغير Blueprint
TargetWorldLocation

لتتبع ممثل عشوائي (NPC، عنصر، نقطة اهتمام) بدلاً من ذلك، احصل على موقع ذلك الممثل كل إطار وقم بتخزينه في نفس المتغير. لنقطة نظر ثابتة، عيّن Target World Location مرة واحدة أو كثابت في لوحة Details الخاصة بالعقدة.
استخدم هذا الإعداد إذا كان نهج وضع Curves لا يعمل مع متغير MetaHuman الخاص بك (راجع التحذير أعلاه). في وضع Bones، تقوم العقدة بتدوير عظام العين مباشرة ويجب أن تعمل بعد أن ينتهي Control Rig من التقييم، مما يعني أنها تنتمي إلى Face Post Process Animation Blueprint بدلاً من Face AnimBP العادي.
ثلاث خطوات: حدد موقع Post Process Anim BP، أضف العقدة بعد RigLogic، ثم قم بتغذيتها بموقع هدف من Event Graph لذلك Blueprint.
1. تحديد موقع Face Post Process Anim BP
- افتح أصل Skeletal Mesh للوجه الخاص بـ MetaHuman الخاص بك (مثل
Faceضمن مجلد MetaHuman الخاص بك) - في لوحة Details الخاصة بالأصل، ابحث عن حقل Post Process Anim Blueprint
- افتح ذلك الأصل، عادةً ما يكون اسمه شيئًا مثل
Face_PostProcess_AnimBP
2. Anim Graph: إضافة العقدة بعد RigLogic
في Anim Graph الخاص بـ Face Post Process Anim BP:
- حدد موقع عقدة
AnimNode_RigLogicالموجودة (تقوم بتحويل منحنيات Control Rig للوجه إلى تحويلات عظام) - أضف عقدة
Runtime MetaHuman Eyes AimبعدAnimNode_RigLogicو قبلOutput Pose - في لوحة Details الخاصة بالعقدة، عيّن Mode إلى Bones
- قم بتوصيل
AnimNode_RigLogicبـ Source Pose لعقدة Eyes Aim - قم بتوصيل مخرج عقدة Eyes Aim بـ
Output Pose - أنشئ متغير
Vectorمن نوع Blueprint (مثلTargetWorldLocation) في Post Process Anim BP هذا وقم بتوصيله بدبوس Target World Location الخاص بالعقدة

مراجع العظام الافتراضية (FACIAL_L_Eye و FACIAL_R_Eye) تطابق هيكل وجه MetaHuman القياسي. إذا كانت شخصيتك تستخدم هيكلًا مخصصًا بأسماء عظام عين مختلفة، فقم بتجاوزها في لوحة Details الخاصة بالعقدة ضمن فئة Bones.
3. Event Graph: تغذية موقع هدف
نظرًا لأن العقدة تعيش في Post Process Anim BP، يجب أن يعيش منطق موقع الهدف أيضًا في Event Graph لهذا Blueprint، وليس في Face_AnimBP. الإعداد مماثل لوضع Curves (الحصول على موقع الكاميرا، موقع ممثل، أو استخدام ثابت)، فقط يتم تنفيذه داخل Face_PostProcess_AnimBP.

أي منطق غير ذي صلة (مزامنة الشفاه، Auto Blink، إلخ) يمكن أن يبقى في Face AnimBP العادي. فقط حساب موقع الهدف لـ Eyes Aim يحتاج إلى الانتقال إلى هنا. يقوم Face Control Rig بتحريك عظام العين قسرًا كل إطار بناءً على منحنياته. إذا تم تشغيل عقدة Eyes Aim في Face AnimBP العادي (قبل Control Rig)، فسيقوم Control Rig باستبدال دورانات العظام بعد ذلك. يعمل Post Process Anim BP بعد أن ينتج Control Rig تحويلات العظام النهائية، لذلك فهو المكان الصحيح لتطبيق دورانات العظام النهائية التي تحتاج إلى "الغلبة".لماذا يحتاج وضع Bones إلى Post Process Anim BP؟
التكوين
جميع الإعدادات مكشوفة في لوحة Details لعقدة Runtime MetaHuman Eyes Aim.
التصويب والتثبيت
التصويب
| الخاصية | الافتراضي | الوصف |
|---|---|---|
| Mode | Curves | يختار كيفية تحريك العيون. راجع اختيار الوضع. |
| Target World Location | (0,0,0) | نقطة في مساحة العالم تنظر إليها العيون. مكشوفة كدبوس افتراضيًا. |
bEnabled | true | عندما تكون false، تعود العيون ببطء إلى الأمام وتتجاهل الهدف. مكشوفة كدبوس افتراضيًا. |
التثبيت
| الخاصية | الافتراضي | الوصف |
|---|---|---|
| Max Yaw Degrees | 35° | أقصى انحراف أفقي (انعراج) عن اتجاه الرأس الأمامي. مثبت بين 0 و 80. |
| Max Pitch Degrees | 25° | أقصى انحراف رأسي (إمالة) عن اتجاه الرأس الأمامي. مثبت بين 0 و 80. |
| Anti Flip Behind | true | يمنع العيون من الانقلاب عندما يمر الهدف خلف الرأس. |
التنعيم والحركات البصرية الدقيقة (Saccades)
التنعيم
| الخاصية | الافتراضي | الوصف |
|---|---|---|
| Interp Speed | 12.0 | سرعة التنعيم لحركة العين. أعلى = أسرع، أقل = أكثر خمولاً. |
الحركات البصرية الدقيقة (Saccades)
الحركات البصرية الدقيقة هي تحولات نظرة عشوائية صغيرة تؤديها العيون الحقيقية باستمرار. إضافتها تتجنب مظهر "العين الميتة" للتتبع السلس تمامًا.
| الخاصية | الافتراضي | الوصف |
|---|---|---|
| Enable Saccades | true | يشغل/يطفئ الحركات البصرية الدقيقة. |
| Saccade Yaw Amplitude Deg | 1.5° | أقصى ارتعاش أفقي لكل حركة بصرية دقيقة. القيم الصغيرة (1–2°) تبدو طبيعية؛ القيم الأكبر تبدو عصبية. |
| Saccade Pitch Amplitude Deg | 1.0° | أقصى ارتعاش رأسي لكل حركة بصرية دقيقة. عادةً ما تكون أصغر قليلاً من سعة الانعراج. |
| Min Saccade Interval | 0.6 ثانية | الحد الأدنى للوقت بين الحركات البصرية الدقيقة. |
| Max Saccade Interval | 2.5 ثانية | الحد الأقصى للوقت بين الحركات البصرية الدقيقة. القيم الأكبر تبدو أكثر هدوءًا، والقيم الأصغر تبدو مضطربة. |
العظام (وضع Bones فقط)
| الخاصية | الافتراضي | الوصف |
|---|---|---|
| Left Eye Bone | FACIAL_L_Eye | اسم عظم العين اليسرى. يطابق هيكل وجه MetaHuman القياسي. |
| Right Eye Bone | FACIAL_R_Eye | اسم عظم العين اليمنى. يطابق هيكل وجه MetaHuman القياسي. |
المعايرة (وضع Curves فقط)
تحدد هذه القيم كيفية تعيين زوايا مساحة الرأس إلى قيم منحنيات نظرة العين الخاصة بـ MetaHuman Face CR. الإعدادات الافتراضية مضبوطة لـ MetaHuman Face CR القياسي ونادرًا ما تحتاج إلى تغيير.
| الخاصية | الافتراضي | الوصف |
|---|---|---|
| Yaw Degrees Per Unit Curve | 30° | الزاوية التي يتم تعيينها إلى قيمة منحنى 1.0 لمنحنيات نظرة الانعراج. |
| Pitch Degrees Per Unit Curve | 25° | الزاوية التي يتم تعيينها إلى قيمة منحنى 1.0 لمنحنيات نظرة الإمالة. |
الدمج مع مزامنة الشفاه والرسوم المتحركة الأخرى
تم تصميم كلا المساعدين للتعايش مع عُقد مزامنة الشفاه الخاصة بالبرنامج المساعد وأي رسوم متحركة للوجه مخصصة لديك بالفعل. القاعدة العامة: ضع عقد Eyes Aim و Control Rig (Auto Blink) بعد مزامنة الشفاه وأي رسوم متحركة للوجه مخصصة، حتى لا يتم استبدال قيمها في المراحل اللاحقة.
عرض مخطط تدفق التنفيذ التفصيلي (وضع Curves مقابل وضع Bones)
اعتمادًا على ما إذا كان هيكل MetaHuman الخاص بك يستخدم وضع Curves الموصى به أو وضع Bones الاحتياطي، سيتغير موضع منطق التنفيذ الخاص بك. قم بتوسيع المخطط أدناه لرؤية ترتيب التنفيذ الدقيق لكلا خطي الأنابيب:
لا تزال ميزات الطرف التلقائي ومزامنة الشفاه موجودة في Face AnimBP العادي في كلا الوضعين.
للحصول على تفاصيل حول الطبقات مع الرسوم المتحركة للجسم، راجع الدمج مع الرسوم المتحركة الموجودة.
الملاحظات والقيود
هذه المساعدات خاصة بـ MetaHuman. تعتمد على أسماء منحنيات Control Rig القياسية للوجه في MetaHuman (CTRL_L_eye_blink, CTRL_R_eye_blink, CTRL_expressions_eyeLook*) وعظام العين القياسية (FACIAL_L_Eye, FACIAL_R_Eye). وهي غير مخصصة لشخصيات غير MetaHuman المخصصة.
هل تحتاج إلى مساعدة؟
لطلبات التطوير المخصصة، اتصل بـ [email protected].