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

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

يشرح هذا الدليل عملية إعداد 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 الإضافي

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

  • إذا كنت تخطط لاستخدام التقاط الصوت (مثل إدخال الميكروفون)، قم بتثبيت مكوّن Runtime Audio Importer الإضافي.
  • إذا كنت تخطط لاستخدام وظيفة تحويل النص إلى كلام، قم بتثبيت مكوّن Runtime Text To Speech الإضافي.

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

تكوين Android / Meta Quest

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

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

تعطيل بنية x64 لنظام Android

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

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

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

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

Content/MetaHumans/Common/Face/Face_AnimBP

Face Animation Blueprint

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

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

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

مهم: يمكن تنفيذ مزج 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. أنشئ Capturable Sound Wave باستخدام Runtime Audio Importer
  2. قبل بدء التقاط الصوت، قم بالربط مع المندوب OnPopulateAudioData
  3. في الوظيفة المرتبطة، استدعِ ProcessAudioData من Runtime Viseme Generator الخاص بك
  4. ابدأ في التقاط الصوت من الميكروفون

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

Lip Sync During Audio Capture

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

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

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

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

Blend Runtime MetaHuman Lip Sync

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

Lip Sync

رسوم متحركة للضحك

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

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

Blend Runtime MetaHuman Laughter

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

Laughter

الجمع مع رسوم متحركة للجسم

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

  1. أضف عقدة Layered blend per bone بين رسوم متحركة للجسم والمخرجات النهائية. تأكد من أن Use Attached Parent صحيح.
  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
    • عقدة Layered blend → وضع Result النهائي

Layered Blend Per Bone

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

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

التكوين

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

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

الخاصيةالافتراضيالوصف
Interpolation Speed25يتحكم في سرعة انتقال حركات الشفاه بين visemes. القيم الأعلى تؤدي إلى انتقالات أسرع وأكثر حدة.
Reset Time0.2المدة بالثواني بعدها يتم إعادة تعيين مزامنة الشفاه. هذا مفيد لمنع استمرار مزامنة الشفاه بعد توقف الصوت.

تكوين الضحك

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

الخاصيةالافتراضيالوصف
Interpolation Speed25يتحكم في سرعة انتقال حركات الشفاه بين رسوم متحركة للضحك. القيم الأعلى تؤدي إلى انتقالات أسرع وأكثر حدة.
Reset Time0.2المدة بالثواني بعدها يتم إعادة تعيين الضحك. هذا مفيد لمنع استمرار الضحك بعد توقف الصوت.
Max Laughter Weight0.7يقيس أقصى شدة لرسوم متحركة للضحك (0.0 - 1.0).

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

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

الاعتبارStandard ModelRealistic Model
توافق الشخصيةMetaHumans وجميع أنواع الشخصيات المخصصةMetaHumans فقط
الجودة البصريةمزامنة شفاه جيدة مع أداء فعالواقعية محسنة مع حركات فم أكثر طبيعية
الأداءمحسن لجميع المنصات بما في