الديناميكا العكسية

*This content is translated using AI (Beta) and may contain errors. To view this page in English, click here.

الديناميكا العكسية (IK) هي تقنية شائعة في الرسوم المتحركة الحاسوبية من أجل جعل الشخصيات تتحرك وتفاعل بشكل واقعي مع بيئتها بكفاءة. تتطلب عملية إنشاء حركة واقعية لشخصية ما العديد من التكرارات والتعديلات الطفيفة على المفاصل المختلفة. باستخدام الديناميكا العكسية، يمكنك وضع الرسوم المتحركة لعدة أجزاء من الشخصية عن طريق تعديل أو ضبط كائن واحد فقط.

يمكن أن توفر هذه التقنية الحركية حلولًا للأمثلة التالية:

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

IKControl

يمكنك استخدام IKControl لإضافة الديناميكا العكسية بشكل إجرائي إلى هياكل شخصياتك خارج محرر الرسوم المتحركة. يسمح لك الاستوديو بتطبيق الديناميكا العكسية برمجيًا على جميع الشخصيات، مثل R15 و Rthro والشخصيات المستوردة المخصصة، لإنشاء حركة وتفاعلات واقعية في لعبتك.

عند إضافة IKControl، قم بضبط الخصائص المطلوبة بشكل صحيح لتجنب نتائج الرسوم المتحركة غير المتوقعة وغير الطبيعية. كما هو الحال مع جميع الرسوم المتحركة، اختبر IKControls للتأكد من أنك تحقق السلوك المطلوب.

الخصائص المطلوبة

عند إضافة IKControl إلى Humanoid لشخصيتك أو AnimationController، يجب تعيين الخصائص المطلوبة التالية لتمكين الديناميكا العكسية:

الخاصيةالوصف
Typeتحدد نوع سلوك التحكم في الديناميكا العكسية. راجع Enum.IKControlType لقائمة خيارات السلوك. الأنواع الشائعة للسلوك هي Position أو Transform.
EndEffectorجزء من BasePart أو Bone في هيكل شخصيتك الذي يتتبع نحو Target. على سبيل المثال، يمكنك تعيين عظمة LeftHand كـ EndEffector للوصول إلى كائن مقبض الباب المعين كـ Target.
Targetالكائن الذي يصل إليه أو يشير إليه EndEffector. يمكن أن يكون Target أي كائن له موقع عالمي.
ChainRootتعريف سلسلة BaseParts أو Bones التي تؤثر عليها IKControl. جميع الأجزاء المتصلة بين ChainRoot و EndEffector تتأثر بـ IKControl باستخدام نوع السلوك المحدد.

على سبيل المثال، إذا تم تعيين LeftHand لشخصيتك كـ Target، يمكنك تطبيق الديناميكا العكسية على ذراع اليسار بالكامل من خلال تعيين ChainRoot إلى LeftUpperArm. لتطبيق الديناميكا العكسية فقط على الأجزاء أسفل المرفق، عيّن ChainRoot إلى LeftLowerArm.

اختبار IKControls

يمكنك إضافة وتحرير IKControl بشكل برمجي أو مباشرة من خلال مستعرض الاستكشاف. يمكنك حتى إضافة وإجراء تغييرات على IKControl خلال اختبار اللعب للتحقق بسرعة من كيفية تأثير الخصائص المختلفة على حركات الشخصية.

لاختبار IKControl الخاص بك بسرعة باستخدام Attachment كهدف:

  1. من درج الاستوديو، ابدأ اختبار اللعب.

  2. في مستعرض الاستكشاف، انتقل إلى Workspace → نموذج المستخدم الخاص بك Model. يتم تسمية هذه الكائن Model بنفس اسم حساب Roblox الحالي لديك.

  3. انقر على أيقونة بجوار HumanoidRootPart لنموذج شخصيتك وأضف Attachment.

  4. اختر Attachment واستخدم أداة Move لوضع الكائن أمام شخصيتك في واجهة العرض.

  5. في نافذة مستعرض الاستكشاف، اختر أيقونة بجوار Humanoid للشخصية الخاصة بك وأضف IKControl.

  6. اختر IKControl واضبط قيم الخصائص التالية في نافذة الخصائص:

    1. Type: اختر Transform من القائمة المنسدلة.
    2. EndEffector: اختر LeftHand كـ MeshPart من مستعرض الاستكشاف.
    3. Target: اختر كائن Attachment الذي تم إنشاؤه حديثًا في مستعرض الاستكشاف.
    4. ChainRoot: اختر LeftUpperArm كـ MeshPart من مستعرض الاستكشاف.
    خصائص IKControl
    مستعرض الاستكشاف - نموذج الشخصية

    يجب أن تصل ذراع شخصيتك اليسرى الآن إلى الهدف Attachment. يمكنك تجربة تحريك Attachment أو تحرير خصائص IKControl لتحقيق نتائج مختلفة.

إضافة قيود

يمكنك استخدام Constraints لتقييد كيفية حركة المفاصل عند الوصول إلى هدفها. يمكن أن تضمن القيود أن تنحني المفاصل مثل المرفقات والركب بشكل طبيعي، أو لجعل المفاصل الميكانيكية تدور في اتجاه معين.

انحناء المرفق بشكل غير طبيعي
انحناء المرفق بشكل صحيح

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

  • يجب أن تكون التوصيلات المرجعية في خصائص Attachment0/Attachment1 ملحقة بنفس الأجزاء مثل Motor6D Part0/Part1.
  • يجب أن تتساوى المواضع النسبية لـ Attachment0/Attachment1 مع المواضع المقابلة لـ Motor6D C0/C1 CFrames.
  • يجب أن تشترك القيود وIKControl في نفس الأصل Model.

تصف التعليمات التالية عملية إضافة HingeConstraint لتقييد دوران مرفق شخصية وإضافة BallSocketConstraint للمعصم لتحديد زاوية الدوران.

المرفق

تشمل شخصيات Roblox R15 مسبقًا توصيلات في مفاصلها يمكنك استخدامها لتطبيق قيد المرفق. بالنسبة للمرفق، تشتمل كل من LeftUpperArm و LeftLowerArm على LeftElbowRigAttachment. بالإضافة إلى إضافة قيد، تحتاج أيضًا إلى إضافة توصيلات فرعية إضافية لكل جزء من أقسام LeftElbowRigAttachment لتحديد أي محور يمكن أن يدور عليه المرفق.

لإضافة HingeConstraint والتوصيلات الفرعية:

  1. في مستعرض الاستكشاف، ابحث عن LeftLowerArm لنموذجك وانقر على زر .

  2. أضف HingeConstraint بالاسم LeftElbowConstraint.

  3. في مستعرض الاستكشاف، انتقل إلى LeftUpperArm.LeftElbowRigAttachment وأضف توصيلة:

    1. انقر على زر لإضافة Attachment بالاسم LeftElbowConstraintAttachment0.

    2. في واجهة العرض، اختر التوصيلة واستخدم أداة Rotate لتدوير التوصيلة بحيث يكون المحور الأصفر PrimaryAxis هو محور الدوران المتوقع لمرفقك.

    3. قم بتعيين خاصية LeftElbowConstraint.Attachment0 إلى هذه التوصيلة الجديدة.

  4. في مستعرض الاستكشاف، انتقل إلى LeftLowerArm.LeftElbowRigAttachment في النموذج وأضف توصيلة:

    1. انقر على زر وأضف Attachment بالاسم LeftElbowConstraintAttachment1.
    2. قم بتعيين خاصية LeftUpperArm.LeftElbowConstraint.Attachment1 إلى هذه التوصيلة الجديدة.
    3. انسخ خاصية LeftElbowConstraintAttachment0.CFrameOrientation والصقها كقيمة LeftElbowConstraint.Attachment1.CFrameOrientation.

اختبر IKControl الخاص بك للتحقق من أن المرفق يدور فقط حول محور المفصل:

المعصمين

حتى مع قيد المرفق، يمكن أن ينتج IKControl أوضاع غير واقعية مع المعصمين.

المعصم ينحني بشكل غير طبيعي في اتجاهات معينة

يمكنك تحسين ذلك عن طريق إضافة BallSocketConstraint لتقييد دوران المعصم. بينما تشبه العملية تلك المخصصة لإضافة HingeConstraint إلى المرفق، يمكنك استخدام خاصية LimitsEnabled على هذا القيد للتحكم بشكل إضافي في مدى حركة المعصم.

لإضافة BallSocketConstraint للمعصم:

  1. في مستعرض الاستكشاف، ابحث عن LeftHand لنموذك وانقر على زر .
    1. أضف BallSocketConstraint بالاسم LeftWristConstraint.
  2. ابحث عن LeftLowerArm.LeftWristRigAttachment لنموذك وأضف توصيلة:
    1. انقر على زر وأضف Attachment بالاسم LeftWristConstraintAttachment0.
    2. في واجهة العرض، اختر التوصيلة واستخدم أداة Rotate لتدوير التوصيلة بحيث يشير المحور الأصفر PrimaryAxis نحو أطراف النموذج.
    3. قم بتعيين خاصية LeftWristConstraint.Attachment0 إلى LeftWristConstraintAttachment0 الجديدة.
  3. ابحث عن LeftHand.LeftWristRigAttachment لنموذك وأضف توصيلة:
    1. انقر على زر وأضف Attachment بالاسم LeftWristConstraintAttachment1.
    2. انسخ خاصية LeftWristConstraintAttachment0.CFrameOrientation والصقها كخاصية LeftWristConstraintAttachment1.CFrameOrientation.
    3. قم بتعيين خاصية LeftWristConstraint.Attachment1 إلى هذه LeftWristConstraintAttachment1 الجديدة.
  4. في مستعرض الاستكشاف، اختر LeftWristConstraint.
  5. في نافذة الخصائص، قم بضبط ما يلي:
    1. تمكين LimitsEnabled.
    2. تعيين UpperAngle إلى 80. هذا يتحكم في مقدار دوران محور القيد، و 80 درجة هي مقدار انحناء المعصم المتوقع.
  6. بناءً على شخصيتك، قد ترغب في ضبط اتجاه المخروط. يمكنك القيام بذلك باستخدام أداة Rotate لتدوير Attachment0 للقيد.

عند اختيار LeftWristConstraint، يظهر مخروط أخضر لتوضيح نطاق حركة المعصم.

مع إعداد القيد، اختبر IKControl مع اليد تشير للأسفل أمام الشخصية وينبغي أن يدور المعصم وينحني بشكل أكثر واقعية.

©2026 شركة Roblox Corporation. تُعد منصّة Roblox، وشعار Roblox وشعار "توسيع حدود المخيلة"، من ضمن علاماتنا التجارية المسجّلة وغير المسجّلة في الولايات المتحدة وبلدان أخرى.