الكائنات المتحركة هي كائنات تتحرك على محور واحد أو أكثر داخل الفضاء ثلاثي الأبعاد. باستخدام القوة المدمجة لمحرك محاكاة Roblox، يمكنك جعل الكائنات تتحرك وتتفاعل مع بيئتها بطريقة تحاكي سلوكيات فيزيائية في العالم الحقيقي تكون مألوفة وبديهية للاعبين، مثل الجاذبية، والديناميكا الهوائية، والاحتكاك.
باستخدام ملف الكائنات المتحركة .rbxl كمرجع، يشرح هذا الدليل كيف تؤثر القوى الفيزيائية على الحركة الخطية في الاستوديو، ويظهر لك تقنيات مختلفة لتحريك الكائنات من النقطة A إلى النقطة B في ألعابك مع سلوكيات حركة مختلفة، بما في ذلك إرشادات حول:
- استخدام قيد LinearVelocity لتحريك مجموعة كاملة بسرعة خطية ثابتة.
- استخدام PrismaticConstraint لتقييد مجموعة إلى محور واحد وتحريكها بسرعة خطية ثابتة بالنسبة لنقطة في الفضاء ثلاثي الأبعاد.
- استخدام طريقة ApplyImpulse لتحريك مجموعة بدفعة أولية من القوة بحيث تتباطأ المجموعة ببطء مع مرور الوقت.
الحركة الخطية والقوى الفيزيائية
Roblox Studio هو محرك محاكاة للعالم الحقيقي يحاكي السلوك الفيزيائي في الوقت الحقيقي، لذا من المهم أن يكون لديك فهم عام لكيفية تحرك الكائنات في الحياة الواقعية مع الحركة الخطية لتوقع كيف يمكن أن تتصرف الكائنات المتحركة خطيًا في الألعاب.
الحركة الخطية هي الحركة على طول محور. على سبيل المثال، عندما يكون للكتلة حركة خطية، فإنها تتحرك على طول محور محدد.

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

السرعة الخطية هي مقياس لحركة الكائن، أو مدى سرعة تغيير الكائن لموقعه على طول محور على مدى فترة زمنية. يقيس الاستوديو السرعة الخطية وفقًا لعدد الوحدات التي يتحرك بها الكائن في الثانية. الوحدات هي وحدات قياس Roblox الأساسية لقياس الطول، وكل وحدة تعادل حوالي 28 سم في العالم الحقيقي.

فهم السرعة الخطية مهم لتصميم طريقة اللعب لأنه يساعدك على تحديد مقدار القوة التي تحتاجها لتحقيق سرعة معينة لكائناتك المتحركة. على سبيل المثال، عندما تريد دفع الكائنات لأعلى، من المهم أن تأخذ في اعتبارك كيف يجب عليك ضبط قوتك للتغلب على الجاذبية داخل البيئة بحيث تتحرك الكائنات بدقة.
تتناول الأقسام التالية هذه المفاهيم بمزيد من العمق بينما تتعلم كيفية تحريك الكائنات بسرعة خطية ثابتة أو أولية مع القوة اللازمة للتغلب على أي قوى فيزيائية معارضة داخل البيئة. بينما تستعرض هذه المفاهيم الفيزيائية مع التقنيات القادمة، يمكنك التنبؤ بدقة أكبر بكيفية ضبط قيم الخصائص لتحقيق أي سلوك حركة خطية مثالي في الاستوديو.
الحفاظ على سرعة خطية ثابتة
لكي يصل الكائن إلى سرعة خطية ثابتة ويحافظ عليها، يحتاج إلى قوة للتغلب على أي قوى فيزيائية معارضة إما تبطئ سرعة الكائن الخطية، أو تسبب بقاء الكائن ثابتًا. على سبيل المثال، إذا كنت تريد أن يكون للكائن سرعة خطية قدرها [0, 12, 0] في الاستوديو، تحتاج إلى قوة كافية لكي يصل الكائن ويحافظ على 12 وحدة في الثانية على طول محور Y في بيئته.
تعتمد كمية القوة اللازمة ليس فقط على القوى الفيزيائية المعاكسة داخل البيئة نفسها، مثل الجاذبية والاحتكاك، ولكن أيضًا على الكائن نفسه. على سبيل المثال، إذا كان لديك كائنين بنفس الشكل يتحركان على نفس المحور، فإن الكائن الذي لديه كتلة أكبر يتطلب قوة أكبر لتحقيق نفس التسارع الخطي.
تستخدم الأقسام الفرعية التالية مجموعات من أشكال وأحجام مختلفة لتعليمك كيفية تحريك إما كائن كامل أو جزء فقط من الكائن بسرعة خطية ثابتة. بينما تجرب قيم الخصائص المختلفة، ستتعلم كيفية تقدير الحد الأقصى من القوة التي تحتاجها للمجموعات في ألعابك الخاصة.
استخدام قيود LinearVelocity
تعتبر كائنات LinearVelocity نوعًا من قيود المحرك التي تطبق القوة على مجموعة كاملة للحفاظ على سرعة خطية ثابتة. من خلال عدم قفل موضع المجموعة على محور أثناء حركتها، تكون المجموعة حرة في الدوران أثناء تصادمها مع كائنات أخرى في الفضاء ثلاثي الأبعاد. يؤدي هذا النوع من الحركة إلى سيناريوهات لعب مفاجئة تكون أكثر صعوبة بالنسبة للاعبين للتنبؤ بها.
للبدء في تحريك المجموعة، يحتاج قيد LinearVelocity إلى معرفة:
- النقطة والاتجاه الإيجابي أو السلبي لتطبيق القوة.
- مقدار الوحدات التي تريد أن تتحرك بها المجموعة في الثانية.
- الحد الأقصى من القوة التي يمكن أن يطبقها المحرك لكي تصل المجموعة إلى السرعة الخطية الثابتة.
لتوضيح هذه العملية، ستقوم بتكوين ورقة زنبق مع مرفق يشير إليه قيد LinearVelocity لتحريك ورقة الزنبق بسرعة 15 وحدة في الثانية على طول محور X السلبي في العالم بسرعة خطية ثابتة.

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

لإضافة مرفق:
في نافذة Explorer، قم بتوسيع مجلد LinearVelocityExample، ثم قم بتوسيع النموذج الفرعي LilyPad_DIY.
أدخل مرفقًا في شبكة Pad.
- مرر فوق الشبكة وانقر على زر ⊕. تظهر قائمة سياقية.
- من القائمة، أدخل Attachment. يظهر المرفق في مركز الجزء.
- أعد تسمية المرفق إلى MoveAttachment.

تكوين القيد
الآن بعد أن أصبح لديك نقطة ثابتة لتحريك ورقة الزنبق، يمكنك تكوين خصائص قيد LinearVelocity لتحديد الاتجاه والحجم للسرعة الخطية الثابتة، ومقدار الوحدات التي تريد أن تتحرك بها الشبكة في الثانية، والحد الأقصى من القوة التي يمكن أن يطبقها المحرك لكي تصل الشبكة إلى سرعة خطية ثابتة.
تطبق لعبة الكائنات المتحركة عينة ما يصل إلى 5000 Rowtons من القوة الثابتة لتحريك ورقة الزنبق بسرعة 15 وحدة في الثانية على طول محور X السلبي في العالم بسرعة خطية ثابتة. Rowtons هي وحدات قياس Roblox الأساسية لقياس القوة. للإشارة إلى وحدات قياس Roblox وكيفية تحويلها إلى وحدات قياس متري، راجع وحدات Roblox.
لتكوين قيد LinearVelocity:
لجعل القيد مرئيًا في واجهة العرض حتى تتمكن من الإشارة إلى اتجاهه الخطي، قم بتمكين إظهار تفاصيل القيود من قائمة عرض في الاستوديو.
أدخل قيد LinearVelocity في شبكة Pad.
- في نافذة Explorer، مرر فوق الشبكة، ثم انقر على أيقونة ⊕. تظهر قائمة سياقية.
- من القائمة السياقية، أدخل LinearVelocity.
قم بتعيين مرفق الشبكة إلى القيد الجديد.
- في نافذة Explorer، حدد القيد.
- في نافذة الخصائص،
- اضبط Attachment0 على MoveAttachment.
- اضبط MaxForce على 5000 لتطبيق ما يصل إلى 5000 Rowtons من القوة الثابتة لتحقيق السرعة الخطية المستهدفة.
- احتفظ بـ RelativeTo على World لتحريك ورقة الزنبق بالنسبة لموقع العالم واتجاهه.
- اضبط VelocityConstraint على Line لتقييد القوة على طول خط من المرفق.
- اضبط LineDirection على -1, 0, 0 لتحريك ورقة الزنبق على طول محور X السلبي في العالم. لاحظ أنه إذا قمت بتعيين هذه الخاصية إلى 1, 0, 0، ستتحرك ورقة الزنبق على طول محور X الإيجابي في العالم.
- اضبط LineVelocity على 15 لتحريك ورقة الزنبق بسرعة 15 وحدة في الثانية.

تحقق من أن مقدار القوة الذي قمت بتعيينه يحرك الشبكة بسرعة 15 وحدة في الثانية على طول محور X السلبي في العالم.
اختر وضع تشغيل من قائمة السحب في الميزان وانقر على زر تشغيل للبدء. يقوم الاستوديو بمحاكاة اللعبة في موضع الكاميرا الحالي بدون شخصيتك في الفضاء ثلاثي الأبعاد.

استخدام قيود PrismaticConstraint
تعتبر كائنات PrismaticConstraint نوعًا من القيود الميكانيكية التي تنشئ وصلة صلبة بين مرفقين، مما يسمح لمجموعاتها الأبوية بالتحرك على طول محور واحد نسبياً لبعضها البعض. من خلال قفل موضع كلا المجموعتين على محور واحد، يمكن لكل مجموعة أن تدور فقط إذا كانت تدور معًا في نفس الاتجاه.
يؤدي هذا النوع من الحركة إلى سيناريوهات لعب مستقرة تكون أسهل للتنبؤ بها بالنسبة للاعبين. على سبيل المثال، تستخدم لعبة الكائنات المتحركة عينة كائنات PrismaticConstraint لتحريك منصات جذوع الأشجار التي يمكن للاعبين استخدامها لعبور نهر عملاق بعناية.
عندما تقوم بتعيين PrismaticConstraint.ActuatorType إلى Motor، فإن هذا القيد يطبق القوة على المرفقين بهدف أن تصل المرفقات وتحافظ على سرعة خطية ثابتة. إذا قمت بتثبيت أحد مرفقات الأجزاء الأبوية، فإن القوة تستمر في تحريك المجموعة غير المثبتة بسرعة خطية ثابتة بينما تبقى المجموعة المثبتة ثابتة.
للبدء في تحريك المجموعة، يحتاج قيد PrismaticConstraint إلى معرفة:
- النقطة والاتجاه الإيجابي أو السلبي لتطبيق القوة.
- مقدار الوحدات التي تريد أن تتحرك بها المرفقات في الثانية.
- الحد الأقصى من القوة التي يمكن أن يطبقها المحرك للمرفقات ومجموعاتها الأبوية للوصول إلى سرعة خطية ثابتة.
لتوضيح هذه العملية، ستقوم بتكوين مجموعة جذع مع كائنين يحتويان على مرفقات فرعية يشير إليها قيد PrismaticConstraint لتحريك الجذع بسرعة 40 وحدة في الثانية على طول محور X السلبي في العالم بسرعة خطية ثابتة.

تكوين المرفقات
يمكنك تحديد الاتجاه لتحريك كائن معين داخل مجموعة عن طريق إضافة كائنين Attachment إلى المجموعة، ثم تكوين محاذاتهما وتوجههما في الفضاء ثلاثي الأبعاد. تقوم لعبة الكائنات المتحركة عينة بمحاذاة مرفقين على طول محور X في العالم بالقرب من موضع تداخل الجذع غير المثبت مع الجزء المثبت، وتوجه كل محور رئيسي للمرفقين ليواجه محور X السلبي في العالم.
عند تكوين قيد PrismaticConstraint الخاص بك في القسم التالي، ستحرك الجذع بالنسبة للجزء المثبت. بعبارة أخرى، سيتحرك الجذع بعيدًا عن الجزء الثابت الذي لا يمكنه التحرك لأنه مثبت في الفضاء ثلاثي الأبعاد.
لتكوين المرفقات لقيد Prismatic:
في نافذة Explorer، قم بتوسيع مجلد PrismaticConstraintExample، ثم قم بتوسيع النموذج الفرعي Log_DIY.
أدخل مرفقًا في شبكة Log.
- مرر فوق الشبكة وانقر على زر ⊕. تظهر قائمة سياقية.
- من القائمة، أدخل Attachment. يظهر المرفق في مركز الجزء.
- أعد تسمية المرفق إلى LogAttachment.

باستخدام نفس العملية، أدخل مرفقًا في الجزء Anchor، ثم أعد تسمية المرفق إلى AnchorAttachment.

باستخدام أداة View Selector كمرجع لإحداثيات العالم، قم بتدوير LogAttachment وAnchorAttachment حتى تواجه كل محور رئيسي للمرفقين محور X السلبي في العالم.

أعد وضع AnchorAttachment بحيث تكون كلا المرفقين متماهيين على محور X في العالم.

تكوين القيد
الآن بعد أن تم محاذاة مرفقاتك على نفس المحور وتواجه نفس الاتجاه الذي تريد أن يتحرك فيه الجذع، يمكنك تكوين خصائص قيد PrismaticConstraint لتحديد ما إذا كنت ستطبق السرعة الخطية الثابتة المستهدفة في الاتجاه الإيجابي أو السلبي لكل محور رئيسي للمرفقين، ومقدار الوحدات التي تريد أن تتحرك بها المرفقات في الثانية، والحد الأقصى من القوة التي يمكن أن يطبقها المحرك للجذع للوصول إلى سرعة خطية ثابتة.
بينما يمكنك اختيار قيم مختلفة لحالات الاستخدام الخاصة بك، تطبق لعبة الكائنات المتحركة عينة ما يصل إلى 50000 Rowtons من القوة الثابتة لتحريك المرفقات بسرعة 40 وحدة في الثانية على طول محور X السلبي في العالم بسرعة خطية ثابتة. ومع ذلك، نظرًا لأن مرفق التثبيت موجود في كائن مثبت، يمكن فقط لمرفق الجذع التحرك.
لتكوين قيد برزمي:
أدخل كائن PrismaticConstraint في شبكة Log.
- في نافذة Explorer، مرر فوق الشبكة، ثم انقر على أيقونة ⊕. تظهر قائمة سياقية.
- من القائمة السياقية، أدخل PrismaticConstraint.
قم بتعيين مرفقات الجذع إلى القيد الجديد بحيث يتحرك الجذع بالنسبة للجزء المثبت.
- في نافذة Explorer، حدد القيد.
- في نافذة الخصائص،
- اضبط Attachment0 على AnchorAttachment.
- اضبط Attachment1 على LogAttachment. يظهر القيد في واجهة العرض.

في نافذة Explorer، حدد القيد، ثم في نافذة الخصائص:
- اضبط ActuatorType على Motor. تظهر حقول خصائص جديدة.
- اضبط MotorMaxForce على 50000 لتطبيق ما يصل إلى 50000 Rowtons من القوة الثابتة لتحقيق السرعة الخطية المستهدفة.
- اضبط Velocity على 40 لتحريك الجذع بسرعة 40 وحدة في الثانية.

تحقق من أن مقدار القوة الذي قمت بتعيينه يحرك الجذع بسرعة 40 وحدة في الثانية على طول محور X السلبي في العالم.
اختر وضع تشغيل من قائمة السحب في الميزان وانقر على زر تشغيل للبدء. يقوم الاستوديو بمحاكاة اللعبة في موضع الكاميرا الحالي بدون شخصيتك في الفضاء ثلاثي الأبعاد.

تطبيق قوة خطية أولية
طريقة أخرى لتغيير سرعة الكائن الخطية هي من خلال تطبيق دفعة من القوة. بعد دفعة القوة، إما أن يتباطأ الكائن حتى يصبح ثابتًا إذا كانت هناك قوة معارضة مثل الاحتكاك، أو يبقى في حالة حركة بسرعة خطية ثابتة إذا لم تكن هناك أي قوى معارضة.
تكون هذه التقنية مفيدة لتحريك الكائنات بعد حدث كبير في اللعبة، مثل انفجار أو تصادم مؤثر، لأنها توفر للاعبين ردود فعل فورية. لتوضيح ذلك، يعلمك القسم التالي كيفية إطلاق شخصية اللاعب لأعلى نحو السماء عندما تصطدم بوسادة قفز بدفعة أولية يمكنك تعديلها بقيم جديدة لتلبية متطلبات طريقة اللعب الخاصة بك.
استخدام ApplyImpulse
تطبق طريقة ApplyImpulse القوة على مجموعة كاملة للحصول على سرعة خطية أولية قبل أن تتباطأ إلى التوقف عندما تكون هناك قوى معارضة. لبدء تحريك المجموعة، تحتاج الطريقة إلى معرفة:
- المجموعة التي سيتم تحريكها.
- المحور الذي سيتم تطبيق القوة عليه للوصول إلى سرعة خطية أولية.
- مقدار القوة التي سيتم تطبيقها على كل محور.
يمكنك تعريف كل هذه القيم في نص برمجي. على سبيل المثال، يعرف النص البرمجي العينة المجموعة التي سيتم تحريكها ككائن Humanoid لشخصية اللاعب، ثم يطبق دفعة من القوة قدرها 2500 Rowton-ثانية لإطلاق اللاعب لأعلى على محور Y الإيجابي في العالم. لاحظ أن شخصيات اللاعبين لها كتل مختلفة، لذا قد تحتاج إلى زيادة وتوازن هذه القوة لإطلاق كل لاعب دون إطلاق شخصيات اللاعبين ذوي الكتل الصغيرة جدًا إلى ارتفاعات كبيرة.
لتحريك مجموعة باستخدام ApplyImpulse:
في نافذة Explorer، قم بتوسيع مجلد ApplyImpulseExample، ثم قم بتوسيع النموذج الفرعي JumpPad_DIY.
أدخل نصًا برمجيًا في الجزء JumpPad.
- مرر فوق الجزء وانقر على زر ⊕. تظهر قائمة سياقية.
- من القائمة، أدخل Script. يظهر المرفق في مركز الجزء.
- أعد تسمية النص البرمجي إلى JumpScript.
استبدل الكود الافتراضي بالكود التالي:
local volume = script.Parentlocal function onTouched(other)local impulse = Vector3.new(0, 2500, 0)local character = other.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")if humanoid and other.Name == "LeftFoot" thenother:ApplyImpulse(impulse)endendvolume.Touched:Connect(onTouched)