انتقل إلى المحتوى الرئيسي

كيفية استخدام المكون الإضافي

يأخذك هذا الدليل خلال عملية إعداد Runtime MetaHuman Lip Sync لشخصيات MetaHuman الخاصة بك.

ملاحظة: يعمل Runtime MetaHuman Lip Sync مع كل من شخصيات MetaHuman والشخصيات المخصصة. يدعم المكون الإضافي أنواعًا مختلفة من الشخصيات بما في ذلك:

  • الشخصيات التجارية الشهيرة (Daz Genesis 8/9, Reallusion CC3/CC4, Mixamo, ReadyPlayerMe, إلخ)
  • الشخصيات ذات blendshapes القائمة على FACS
  • النماذج التي تستخدم معايير ARKit لـ blendshape
  • الشخصيات مع مجموعات Preston Blair للفونيمات
  • أنظمة الفونيمات في 3ds Max
  • أي شخصية تحتوي على أهداف تشكيل مخصصة للتعبيرات الوجهية

للحصول على تعليمات مفصلة حول إعداد الشخصيات المخصصة، بما في ذلك مراجع تعيين الفيزيمات لجميع المعايير المذكورة أعلاه، راجع دليل إعداد الشخصيات المخصصة.

المتطلبات الأساسية

قبل البدء، تأكد من:

  1. تم تمكين مكون MetaHuman الإضافي في مشروعك (ملاحظة: بدءًا من UE 5.6، لم تعد هذه الخطوة مطلوبة حيث تم دمج وظائف MetaHuman مباشرة في المحرك)
  2. لديك على الأقل شخصية MetaHuman واحدة تم تنزيلها ومتاحة في مشروعك
  3. تم تثبيت مكون Runtime MetaHuman Lip Sync الإضافي

مكون الإضافة لـ Standard Model

إذا كنت تخطط لاستخدام Standard Model (الأسرع)، فستحتاج إلى تثبيت مكون الإضافة:

  1. قم بتنزيل Standard Lip Sync Extension plugin من Google Drive
  2. استخرج المجلد من الأرشيف الذي تم تنزيله إلى مجلد Plugins في مشروعك (قم بإنشاء هذا المجلد إذا لم يكن موجودًا)
  3. تأكد من أن مشروعك تم إعداده كمشروع C++ (حتى إذا لم يكن لديك أي كود C++)
  4. أعد بناء مشروعك
ملاحظة
  • هذا المكون الإضافي مطلوب فقط إذا كنت تريد استخدام Standard Model. إذا كنت تحتاج فقط إلى Realistic Model، يمكنك تخطي هذه الخطوة.
  • لمزيد من المعلومات حول كيفية بناء المكونات الإضافية يدويًا، راجع برنامج تعليمي لبناء المكونات الإضافية

مكونات إضافية أخرى

  • إذا كنت تخطط لاستخدام التقاط الصوت (مثل إدخال الميكروفون)، قم بتثبيت ملحق Runtime Audio Importer.
  • إذا كنت تخطط لاستخدام وظيفة تحويل النص إلى كلام مع ملحقاتي (قد يكون لديك TTS مخصص خاص بك أو إدخال صوتي آخر)، فبالإضافة إلى ملحق Runtime Audio Importer، قم أيضًا بتثبيت:

التكوين الخاص بالمنصة

تكوين Android / Meta Quest

إذا كنت تستهدف منصات Android أو Meta Quest وواجهت أخطاء في البناء مع هذا الملحق، فستحتاج إلى تعطيل بنية Android x86_64 (x64) في إعدادات مشروعك:

  1. انتقل إلى Edit > Project Settings
  2. انتقل إلى Platforms > Android
  3. تحت Platforms - Android، قسم Build، ابحث عن Support x86_64 [aka x64] وتأكد من تعطيله، كما هو موضح أدناه

تعطيل بنية Android x64

هذا لأن الملحق يدعم حاليًا فقط بنيات arm64-v8a وarmeabi-v7a لمنصات Android / Meta Quest.

عملية الإعداد

الخطوة 1: تحديد وتعديل Blueprint تحريك الوجه

تحتاج إلى تعديل Animation Blueprint الذي سيتم استخدامه لتحريك وجه شخصية MetaHuman الخاصة بك. يوجد Animation Blueprint الافتراضي لوجه MetaHuman في:

Content/MetaHumans/Common/Face/Face_AnimBP

Face Animation Blueprint

لديك عدة خيارات لتنفيذ وظيفة مزامنة الشفاه (Lip Sync):

افتح Face_AnimBP الافتراضي مباشرة وقم بإجراء التعديلات الخاصة بك. أي تغييرات ستؤثر على جميع شخصيات MetaHuman التي تستخدم هذا الـ Animation Blueprint.

ملاحظة: هذا الأسلوب سهل ولكنه سيؤثر على جميع الشخصيات التي تستخدم الـ Animation Blueprint الافتراضي.

مهم: يمكن تنفيذ مزج Runtime MetaHuman Lip Sync في أي أصل Animation Blueprint لديه إمكانية الوصول إلى وضع يحتوي على عظام الوجه الموجودة في Face_Archetype_Skeleton الافتراضي لـ MetaHuman. أنت لست مقيدًا بالخيارات أعلاه - هذه مجرد طرق تنفيذ شائعة.

الخطوة 2: إعداد Event Graph

افتح Face Animation Blueprint الخاص بك وانتقل إلى Event Graph. ستحتاج إلى إنشاء مولد لمعالجة بيانات الصوت وإنشاء رسوم متحركة لمزامنة الشفاه.

  1. أضف عقدة Event Blueprint Begin Play إذا لم تكن موجودة بالفعل
  2. أضف عقدة Create Runtime Viseme Generator وقم بتوصيلها بحدث Begin Play
  3. احفظ المخرجات كمتغير (مثل "VisemeGenerator") للاستخدام في أجزاء أخرى من الرسم البياني

إنشاء Runtime Viseme Generator

الخطوة 3: إعداد معالجة إدخال الصوت

تحتاج إلى إعداد طريقة لمعالجة إدخال الصوت. هناك عدة طرق للقيام بذلك اعتمادًا على مصدر الصوت الخاص بك.

هذا الأسلوب يقوم بمزامنة الشفاه في الوقت الحقيقي أثناء التحدث في الميكروفون:

  1. قم بإنشاء موجة صوتية قابلة للالتقاط باستخدام Runtime Audio Importer
  2. قبل بدء التقاط الصوت، قم بربط مندوب OnPopulateAudioData
  3. في الدالة المرتبطة، استدعِ ProcessAudioData من Runtime Viseme Generator الخاص بك
  4. ابدأ في التقاط الصوت من الميكروفون

عقد قابلة للنسخ.

مزامنة الشفاه أثناء التقا�ط الصوت

الخطوة 4: إعداد Anim Graph

بعد إعداد Event Graph، انتقل إلى Anim Graph لتوصيل المولد بتحريك الشخصية:

مزامنة الشفاه

  1. حدد الوضع الذي يحتوي على وجه MetaHuman (عادة من استخدم الوضع المخزن 'وضع الجسم')
  2. أضف عقدة Blend Runtime MetaHuman Lip Sync
  3. قم بتوصيل الوضع بـ Source Pose في عقدة Blend Runtime MetaHuman Lip Sync
  4. قم بتوصيل متغير RuntimeVisemeGenerator الخاص بك بـ Viseme Generator
  5. قم بتوصيل مخرج عقدة Blend Runtime MetaHuman Lip Sync بـ Result في Output Pose

Blend Runtime MetaHuman Lip Sync

عند اكتشاف مزامنة الشفاه في الصوت، سيقوم شخصيتك بالتحريك الديناميكي وفقًا لذلك:

Lip Sync

تحريك الضحك

يمكنك أيضًا إضافة تحريك للضحك يستجيب ديناميكيًا للضحك المكتشف في الصوت:

  1. أضف عقدة Blend Runtime MetaHuman Laughter
  2. قم بتوصيل متغير RuntimeVisemeGenerator الخاص بك بـ Viseme Generator
  3. إذا كنت تستخدم مزامنة الشفاه بالفعل:
    • قم بتوصيل المخرج من عقدة Blend Runtime MetaHuman Lip Sync إلى Source Pose في عقدة Blend Runtime MetaHuman Laughter
    • قم بتوصيل مخرج عقدة Blend Runtime MetaHuman Laughter إلى Result في Output Pose
  4. إذا كنت تستخدم الضحك فقط بدون مزامنة الشفاه:
    • قم بتوصيل وضع المصدر مباشرة إلى Source Pose في عقدة Blend Runtime MetaHuman Laughter
    • قم بتوصيل المخرج إلى Result

Blend Runtime MetaHuman Laughter

عند اكتشاف الضحك في الصوت، سيقوم شخصيتك بالتحريك الديناميكي وفقًا لذلك:

Laughter

الدمج مع تحريك الجسم

لتطبيق مزامنة الشفاه والضحك مع تحريك الجسم الحالي دون تجاوزه:

  1. أضف عقدة Layered blend per bone بين حركات الجسم والمخرج النهائي. تأكد من تعيين Use Attached Parent على true.
  2. قم بتكوين إعداد الطبقة:
    • أضف 1 عنصر إلى مصفوفة Layer Setup
    • أضف 3 عناصر إلى Branch Filters للطبقة، مع أسماء العظام التالية Bone Name:
      • FACIAL_C_FacialRoot
      • FACIAL_C_Neck2Root
      • FACIAL_C_Neck1Root
  3. قم بعمل التوصيلات:
    • الحركات الموجودة مسبقًا (مثل BodyPose) → مدخل Base Pose
    • مخرج حركة الوجه (من عقدة مزامنة الشفاه و/أو الضحك) → مدخل Blend Poses 0
    • عقدة الطبقات المدمجة → وضع Result النهائي

Layered Blend Per Bone

لماذا يعمل هذا: تقوم عوامل تصفية الفرع بعزل عظام حركة الوجه، مما يسمح لمزامنة الشفاه والضحك بالدمج حصريًا مع حركات الوجه مع الحفاظ على حركات الجسم الأصلية. هذا يتطابق مع هيكل ريج MetaHuman للوجه، مما يضمن تكاملًا طبيعيًا.

ملاحظة: تم تصميم ميزات مزامنة الشفاه والضحك للعمل بشكل غير مدمر مع إعداد الحركات الحالي. فهي تؤثر فقط على عظام الوجه المحددة اللازمة لحركة الفم، تاركة حركات الوجه الأخرى سليمة. هذا يعني أنه يمكنك دمجها بأمان في أي نقطة في سلسلة الحركات الخاصة بك - إما قبل حركات الوجه الأخرى (السماح لهذه الحركات بتجاوز مزامنة الشفاه/الضحك) أو بعدها (السماح لمزامنة الشفاه/الضحك بالدمج فوق حركاتك الحالية). هذه المرونة تتيح لك الجمع بين مزامنة الشفاه والضحك مع طرف العين، حركات الحاجبين، التعابير العاطفية، وحركات الوجه الأخرى دون تعارضات.

التكوين

تكوين مزامنة الشفاه

تحتوي عقدة Blend Runtime MetaHuman Lip Sync على خيارات تكوين في لوحة الخصائص الخاصة بها:

الخاصيةالافتراضيالوصف
سرعة الاستيفاء25تتحكم في سرعة انتقال حركات الشفاه بين الفيسيمات. القيم الأعلى تؤدي إلى انتقالات أسرع وأكثر حدة.
وقت الإعادة0.2المدة بالثواني التي يتم بعدها إعادة تعيين مزامنة الشفاه. هذا مفيد لمنع استمرار مزامنة الشفاه بعد توقف الصوت.

تكوين الضحك

عقدة Blend Runtime MetaHuman Laughter لديها خيارات التكوين الخاصة بها:

الخاصيةالافتراضيالوصف
سرعة الاستيفاء25يتحكم في مدى سرعة انتقال حركات الشفاه بين رسوميات الضحك. القيم الأعلى تؤدي إلى انتقالات أسرع وأكثر حدة.
وقت الإعادة0.2المدة بالثواني التي يتم بعدها إعادة تعيين الضحك. هذا مفيد لمنع استمرار الضحك بعد توقف الصوت.
أقصى وزن للضحك0.7يقيس أقصى شدة لرسوميات الضحك (0.0 - 1.0).

الاختيار بين نماذج مزامنة الشفاه (Lip Sync)

عند اتخاذ قرار بشأن نموذج مزامنة الشفاه الذي ستستخدمه في مشروعك، ضع في الاعتبار هذه العوامل:

الاعتبارالنموذج القياسيالنموذج الواقعي
التوافق مع الشخصياتMetaHumans وجميع أنواع الشخصيات المخصصةMetaHumans فقط
الجودة البصريةمزامنة شفاه جيدة مع أداء فعالواقعية محسنة مع حركات فم أكثر طبيعية
الأداءمُحسّن لجميع المنصات بما في ذلك الهاتف/VRمتطلبات موارد أعلى قليلاً
حالات الاستخدامالتطبيقات العامة، الألعاب، VR/AR، الهاتفالتجارب السينمائية، تفاعلات الشخصيات عن قرب

توافق إصدار المحرك

مشكلة توافق UE 5.2

إذا كنت تستخدم Unreal Engine 5.2، فقد لا يعمل النموذج الواقعي بشكل صحيح بسبب خلل في مكتبة إعادة التشكيل في UE. لمستخدمي UE 5.2 الذين يحتاجون إلى وظيفة مزامنة شفاه موثوقة، يرجى استخدام النموذج القياسي بدلاً من ذلك.

هذه المشكلة خاصة بـ UE 5.2 ولا تؤثر على إصدارات المحرك الأخرى.

بالنسبة لمعظم المشاريع، يوفر النموذج القياسي توازنًا ممتازًا بين الجودة والأداء مع دعم أوسع نطاق من أنواع الشخصيات. النموذج الواقعي مثالي عندما تحتاج إلى أعلى دقة بصرية خاصة لشخصيات MetaHuman في السياقات التي يكون فيها عبء الأداء أقل أهمية.