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

تكوين الإضافة

تكوين النموذج

التكوين القياسي للنموذج

تستخدم عقدة Create Runtime Viseme Generator الإعدادات الافتراضية التي تعمل بشكل جيد في معظم السيناريوهات. يتم التعامل مع التكوين من خلال خصائص عقدة المزج في مخطط الحركة (Animation Blueprint).

للاطلاع على خيارات تكوين مخطط الحركة، راجع قسم تكوين مزامنة الشفاه أدناه.

تكوين النموذج الواقعي

تقبل عقدة Create Realistic MetaHuman Lip Sync Generator معامل Configuration اختياريًا يسمح لك بتخصيص سلوك المولد:

نوع النموذج

يحدد إعداد Model Type أي إصدار من النموذج الواقعي سيتم استخدامه:

نوع النموذجالأداءالجودة البصريةالتعامل مع الضوضاءحالات الاستخدام الموصى بها
Highly Optimized (الافتراضي)أعلى أداء، أقل استخدام لوحدة المعالجة المركزيةجودة جيدةقد يُظهر حركات فم ملحوظة مع ضوضاء الخلفية أو الأصوات غير الصوتيةبيئات صوتية نظيفة، سيناريوهات حساسة للأداء
Semi-Optimizedأداء جيد، استخدام معتدل لوحدة المعالجة المركزيةجودة عاليةاستقرار أفضل مع الصوت المشوشتوازن بين الأداء والجودة، ظروف صوتية مختلطة
Originalمناسب للاستخدام في الوقت الفعلي على وحدات المعالجة المركزية الحديثةأعلى جودةالأكثر استقرارًا مع ضوضاء الخلفية والأصوات غير الصوتيةالإنتاجات عالية الجودة، بيئات صوتية صاخبة، عندما تكون الدقة القصوى مطلوبة

إعدادات الأداء

Intra Op Threads: يتحكم في عدد الخيوط المستخدمة لعمليات معالجة النموذج الداخلية.

  • 0 (الافتراضي/تلقائي): يستخدم الكشف التلقائي (عادةً 1/4 من نوى وحدة المعالجة المركزية المتاحة، بحد أقصى 4)
  • 1-16: حدد عدد الخيوط يدويًا. قد تحسن القيم الأعلى الأداء على الأنظمة متعددة النواة ولكنها تستخدم وحدة معالجة مركزية أكثر

Inter Op Threads: يتحكم في عدد الخيوط المستخدمة للتنفيذ المتوازي لعمليات النموذج المختلفة.

  • 0 (الافتراضي/تلقائي): يستخدم الكشف التلقائي (عادةً 1/8 من نوى وحدة المعالجة المركزية المتاحة، بحد أقصى 2)
  • 1-8: حدد عدد الخيوط يدويًا. عادةً ما يُحتفظ به منخفضًا للمعالجة في الوقت الفعلي

حجم قطعة المعالجة

يحدد Processing Chunk Size عدد العينات التي تتم معالجتها في كل خطوة استدلال. القيمة الافتراضية هي 160 عينة (10 مللي ثانية من الصوت بتردد 16 كيلو هرتز):

  • توفر القيم الأصغر تحديثات أكثر تكرارًا ولكنها تزيد من استخدام وحدة المعالجة المركزية
  • تقلل القيم الأكبر من حمل وحدة المعالجة المركزية ولكنها قد تقلل من استجابة مزامنة الشفاه
  • يُوصى باستخدام مضاعفات العدد 160 للحصول على محاذاة مثالية

تعيين حجم قطعة المعالجة

تكوين النموذج المدعوم بالمزاج

توفر عقدة Create Realistic MetaHuman Lip Sync With Mood Generator خيارات تكوين إضافية تتجاوز النموذج الواقعي الأساسي:

التكوين الأساسي

Lookahead Ms: توقيت التطلع للأمام بالمللي ثانية لتحسين دقة مزامنة الشفاه.

  • الافتراضي: 80 مللي ثانية
  • النطاق: 20 مللي ثانية إلى 200 مللي ثانية (يجب أن يكون قابلاً للقسمة على 20)
  • توفر القيم الأعلى تزامنًا أفضل ولكنها تزيد من زمن الانتقال

Output Type: يتحكم في عناصر التحكم في الوجه التي يتم إنشاؤها.

  • Full Face: جميع عناصر التحكم الـ 81 في الوجه (الحواجب، العيون، الأنف، الفم، الفك، اللسان)
  • Mouth Only: فقط عناصر التحكم المتعلقة بالفم والفك واللسان

Performance Settings: يستخدم نفس إعدادات Intra Op Threads و Inter Op Threads الخاصة بالنموذج الواقعي العادي.

إعدادات المزاج

الأمزجة المتاحة:

  • محايد، سعيد، حزين، اشمئزاز، غضب، مفاجأة، خوف
  • واثق، متحمس، ملل، مرح، مرتبك

Mood Intensity: يتحكم في مدى قوة تأثير المزاج على الحركة (من 0.0 إلى 1.0)

التحكم في المزاج أثناء التشغيل

يمكنك ضبط إعدادات المزاج أثناء التشغيل باستخدام الوظائف التالية:

  • Set Mood: تغيير نوع المزاج الحالي
  • Set Mood Intensity: ضبط مدى قوة تأثير المزاج على الحركة (من 0.0 إلى 1.0)
  • Set Lookahead Ms: تعديل توقيت التطلع للأمام للتزامن
  • Set Output Type: التبديل بين عناصر التحكم Full Face و Mouth Only

تكوين المزاج

دليل اختيار المزاج

اختر الأمزجة المناسبة بناءً على محتواك:

المزاجالأفضل لـنطاق الشدة النموذجي
محايدالمحادثة العامة، السرد، الحالة الافتراضية0.5 - 1.0
سعيدالمحتوى الإيجابي، الحوار المرح، الاحتفالات0.6 - 1.0
حزينالمحتوى الكئيب، المشاهد العاطفية، اللحظات الكئيبة0.5 - 0.9
اشمئزازردود الفعل السلبية، المحتوى البغيض، الرفض0.4 - 0.8
غضبالحوار العدواني، المشاهد المواجهة، الإحباط0.6 - 1.0
مفاجأةالأحداث غير المتوقعة، الكشف، ردود الفعل الصادمة0.7 - 1.0
خوفالمواقف المهددة، القلق، الحوار العصبي0.5 - 0.9
واثقالعروض التقديمية المهنية، حوار القيادة، الكلام الحازم0.7 - 1.0
متحمسالمحتوى النشط، الإعلانات، الحوار المتحمس0.8 - 1.0
مللالمحتوى الرتيب، الحوار غير المهتم، الكلام المتعب0.3 - 0.7
مرحالمحادثة العادية، الفكاهة، التفاعلات المرحة0.6 - 0.9
مرتبكالحوار الغني بالأسئلة، عدم اليقين، الحيرة0.4 - 0.8

تكوين مخطط الحركة (Animation Blueprint)

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

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

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

حركة الضحك

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

  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

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

الضحك

تكوين الضحك

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

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

ملاحظة: اكتشاف الضحك متاح حاليًا فقط مع النموذج القياسي.

الجمع مع الحركات الحالية

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

  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. مهم لحركات الوجه المخصصة: في Curve Blend Option، اختر "Use Max Value". هذا يسمح لحركات الوجه المخصصة (التعبيرات، المشاعر، إلخ) بأن تكون مركبة بشكل صحيح فوق مزامنة الشفاه.
  4. قم بإجراء الاتصالات:
    • الحركات الحالية (مثل BodyPose) → إدخال Base Pose
    • مخرج حركة الوجه (من عقد مزامنة الشفاه و/أو الضحك) → إدخال Blend Poses 0
    • عقدة المزج الطبقي → وضعية Result النهائية

Layered Blend Per Bone

اختيار مجموعة Morph Target

يستخدم النموذج القياسي أصول وضعية (pose assets) تدعم بشكل أساسي أي اصطلاح تسمية لـ morph target من خلال إعداد أصل الوضعية المخصص. لا حاجة لتكوين إضافي.

ضبط دقيق لسلوك مزامنة الشفاه

التحكم في بروز اللسان

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

  1. بعد عقدة مزج مزامنة الشفاه الخاصة بك، أضف عقدة Modify Curve
  2. انقر بزر الماوس الأيمن على عقدة Modify Curve واختر Add Curve Pin
  3. أضف دبوس منحنى بالاسم CTRL_expressions_tongueOut
  4. عيّن خاصية Apply Mode للعقدة إلى Scale
  5. اضبط معامل Value للتحكم في امتداد اللسان (مثل 0.8 لتقليل البروز بنسبة 20%)

التحكم في فتح الفك

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

  1. بعد عقدة مزج مزامنة الشفاه الخاصة بك، أضف عقدة Modify Curve
  2. انقر بزر الماوس الأيمن على عقدة Modify Curve واختر Add Curve Pin
  3. أضف دبوس منحنى بالاسم CTRL_expressions_jawOpen
  4. عيّن خاصية Apply Mode للعقدة إلى Scale
  5. اضبط معامل Value للتحكم في نطاق فتح الفك (مثل 0.9 لتقليل حركة الفك بنسبة 10%)

الضبط الدقيق الخاص بالمزاج

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

التحكم في الحواجب:

  • CTRL_expressions_browRaiseInL / CTRL_expressions_browRaiseInR - رفع الحاجب الداخلي
  • CTRL_expressions_browRaiseOuterL / CTRL_expressions_browRaiseOuterR - رفع الحاجب الخارجي
  • CTRL_expressions_browDownL / CTRL_expressions_browDownR - خفض الحاجب

التحكم في تعبير العين:

  • CTRL_expressions_eyeSquintInnerL / CTRL_expressions_eyeSquintInnerR - تضييق العين
  • CTRL_expressions_eyeCheekRaiseL / CTRL_expressions_eyeCheekRaiseR - رفع الخد

مقارنة النماذج واختيارها

الاختيار بين النماذج

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

الاعتبارالنموذج القياسيالنموذج الواقعيالنموذج الواقعي المدعوم بالمزاج
توافق الشخصيةشخصيات MetaHuman وجميع أنواع الشخصيات المخصصةشخصيات MetaHuman فقطشخصيات MetaHuman فقط
الجودة البصريةمزامنة شفاه جيدة بأداء فعالواقعية محسنة مع حركات فم أكثر طبيعيةواقعية محسنة مع تعبيرات عاطفية
الأداءمُحسّن لجميع المنصات بما في ذلك الهاتف المحمول/الواقع الافتراضيمتطلبات موارد أعلىمتطلبات موارد أعلى
الميزات14 وحدة فيزيم، اكتشاف الضحك81 عنصر تحكم في الوجه، 3 مستويات تحسين81 عنصر تحكم في الوجه، 12 مزاج، مخرج قابل للتكوين
دعم المنصةWindows، Android، QuestWindows، Mac، iOS، Linux، Android، QuestWindows، Mac، iOS، Linux، Android، Quest
حالات الاستخدامالتطبيقات العامة، الألعاب، الواقع الافتراضي/المعزز، الهاتف المحمولالتجارب السينمائية، التفاعلات القريبةسرد القصص العاطفي، تفاعل الشخصيات المتقدم

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

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

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

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

توصيات الأداء

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

توافق تحويل النص إلى كلام (TTS)

نوع النموذجدعم تحويل النص إلى كلام المحلي (عبر Runtime Text To Speech)دعم تحويل النص إلى كلام الخارجيملاحظات
النموذج القياسي✅ دعم كامل✅ دعم كاملمتوافق مع جميع خيارات تحويل النص إلى كلام
النموذج الواقعي❌ دعم محدود✅ دعم كاملتعارضات وقت تشغيل ONNX مع تحويل النص إلى كلام المحلي
النموذج الواقعي المدعوم بالمزاج✅ دعم كامل✅ دعم كاملمتوافق مع جميع خيارات تحويل النص إلى كلام

استكشاف الأخطاء وإصلاحها

المشكلات الشائعة

إعادة إنشاء المولد للنماذج الواقعية: من أجل تشغيل موثوق ومتسق مع النماذج الواقعية، يُوصى بإعادة إنشاء المولد في كل مرة تريد فيها تغذية بيانات صوتية جديدة بعد فترة من الخمول. هذا بسبب سلوك وقت تشغيل ONNX الذي يمكن أن يتسبب في توقف مزامنة الشفاه عن العمل عند إعادة استخدام المولدات بعد فترات من الصمت.

توافق تحويل النص إلى كلام المحلي: تحويل النص إلى كلام المحلي المقدم بواسطة إضافة Runtime Text To Speech غير مدعوم حاليًا مع النموذج الواقعي العادي بسبب تعارضات وقت تشغيل ONNX. ومع ذلك، فهو متوافق تمامًا مع كل من النموذج القياسي والنموذج الواقعي المدعوم بالمزاج. استخدم خدمات تحويل النص إلى كلام الخارجية إذا كنت تحتاج تحديدًا إلى النموذج الواقعي العادي مع وظيفة تحويل النص إلى كلام.

تدهور استجابة مزامنة الشفاه: إذا واجهت أن مزامنة الشفاه تصبح أقل استجابة بمرور الوقت عند استخدام Streaming Sound Wave أو Capturable Sound Wave، فقد يكون هذا ناتجًا عن تراكم الذاكرة. افتراضيًا، يتم إعادة تخصيص الذاكرة في كل مرة يتم فيها إلحاق صوت جديد. لمنع هذه المشكلة، استدعِ وظيفة ReleaseMemory بشكل دوري لتحرير الذاكرة المتراكمة، مثل كل 30 ثانية تقريبًا.

تحسين الأداء:

  • اضبط Processing Chunk Size للنماذج الواقعية بناءً على متطلبات أدائك
  • استخدم أعداد الخيوط المناسبة للأجهزة المستهدفة
  • فكر في استخدام نوع المخرج Mouth Only للنماذج المدعومة بالمزاج عندما لا تكون حركة الوجه الكاملة مطلوبة