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

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

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

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

لإضافة ملحق:
في نافذة Explorer، أدخل كتلة مربعة في Workspace.

أدخل ملحقًا في الجزء الجديد.
- في نافذة Explorer، مرر فوق الجزء وانقر على زر ⊕. تظهر قائمة سياقية.
- من القائمة، أدخل Attachment. يظهر الملحق في وسط الجزء.
- إعادة تسمية الملحق إلى SpinAttachment.

تكوين القيد
الآن بعد أن أصبح لديك كتلة لديها نقطة ثابتة للدوران، يمكنك تكوين خصائص قيد AngularVelocity لتحديد الاتجاه الدوراني، والمحاور أو المحاور لتطبيق سرعة زاوية ثابتة مستهدفة، ومقدار الراديان الذي تريد أن يدور الكتلة في الثانية، والحد الأقصى من العزم الذي يمكن أن يطبقه المحرك لكي تصل الكتلة إلى سرعة زاوية ثابتة.
تطبيق تجربة الكائنات الدوارة حدًا أقصى قدره 1000 Rowton-studs من القوة الزاوية الثابتة لتحريك الكتلة 6 راديان في الثانية على المحور Y في العالم بسرعة زاوية ثابتة. تعتبر Rowton-studs وحدات قياس Roblox الأساسية لقياس العزم. للإشارة إلى وحدات Roblox الفيزيائية وكيفية تحويلها إلى وحدات متريّة، راجع وحدات Roblox.
لتكوين قيد AngularVelocity:
لجعل القيد مرئيًا في واجهة العرض بحيث يمكنك الرجوع إلى اتجاهه الدوراني، قم بتمكين Show Constraint Details من قائمة View في الاستوديو.
أدخل قيد AngularVelocity في الجزء.
- في نافذة Explorer، مرر فوق الجزء، ثم انقر على أيقونة ⊕. تظهر قائمة سياقية.
- من قائمة السياق، أدخل AngularVelocity. تظهر مساعدته البصرية في وسط الجزء.
قم بتعيين ملحق الجزء إلى القيد الجديد.
- في نافذة Explorer، حدد القيد.
- في نافذة Properties،
- اضبط Attachment0 إلى SpinAttachment.
- اضبط AngularVelocity إلى 0, 6, 0 لتحريك الجزء 6 راديان في الثانية على المحور Y. لاحظ أنه إذا كنت ستضبط هذه الخاصية إلى 0, -6, 0، سيدور الكتلة في اتجاه عقارب الساعة.
- اضبط MaxTorque إلى 1000 لتطبيق ما يصل إلى 1000 Rowton-studs من القوة الزاوية الثابتة في الثانية لتحقيق السرعة الزاوية المستهدفة.
- اترك RelativeTo على World لتحريك الكتلة بالنسبة لموقعها واتجاهها في العالم.

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

قد تحتاج إلى ضبط العزم بناءً على مقياس الكتلة وأي قوى فيزيائية معاكسة في بيئتك. على سبيل المثال، تعمل خصائص قيد AngularVelocity في تجربة النموذج على جزء كتلة بحجم افتراضي قدره 4, 1, 2 على منصة مسطحة بمواد بلاستيكية، وبيئة بالجاذبية التقليدية.
ومع ذلك، إذا كانت كُتلتك بحجم أكبر وعلى تربة عشبية، فستحتاج إلى زيادة خاصية AngularVelocity.MaxTorque لأن القوة الزاوية يجب أن تتغلب على كل من كتلة الكتلة والاحتكاك من البيئة. على سبيل المثال، تحتاج كتلة كبيرة بحجم أربعة أضعاف حجم جزء النموذج إلى ما لا يقل عن 300000 Rowton-studs من القوة الزاوية الثابتة لتحقيق السرعة الزاوية المحددة!
استخدام قيود HingeConstraint
تعتبر كائنات HingeConstraint نوعًا من قيود ميكانيكية التي تسمح لملحقين بالدوران حول محور واحد، مما يقيد الملحقات إلى نفس الموضع ومحاورها الرئيسية في نفس الاتجاه. عندما تضبط HingeConstraint.ActuatorType إلى Motor، يطبق هذا القيد العزم على الملحقين بهدف أن تصل الملحقات وتحافظ على سرعة زاوية ثابتة.
علاوة على ذلك، عند وضع الملحقات في مجموعة بها كائنين، يتم قفل الكائنات معًا وتحاول الدوران معًا وفقًا لمحور الملحق الثابت. إذا قمت بتثبيت أحد هذه الكائنات، تستمر القوة الزاوية في تدوير الكائن الآخر بسرعة زاوية ثابتة بينما تبقى بقية المجموعة ثابتة.
على سبيل المثال، لبدء دوران كائن معين داخل مجموعة، يحتاج قيد HingeConstraint إلى معرفة:
- الموقع الذي تريد فيه أن تتداخل الملحقات.
- النقطة والاتجاه الإيجابي أو السلبي لتطبيق القوة الزاوية.
- مقدار الراديان الذي تريده أن تدور الملحقات في الثانية.
- الحد الأقصى من العزم الذي يمكن أن يطبقه المحرك لكي تصل الملحقات إلى سرعة زاوية ثابتة.
لتوضيح هذه العملية، سوف تضيف مجموعة مروحة بها كائنين إلى مساحة العمل لديك مع ملحقات في كلا الكائنين يشير إليها قيد HingeConstraint لتحريك المروحة بسرعة 3 راديان في الثانية (حوالي نصف دورة كاملة في الثانية) على المحور Y بسرعة زاوية ثابتة بينما يبقى قاعدة المروحة ثابتة.

الحصول على أصل المروحة
تعتبر Creator Store علامة من علامة Toolbox يمكنك استخدامها للعثور على جميع الأصول التي صنعها Roblox ومجتمع Roblox لاستخدامها ضمن مشاريعك، بما في ذلك أصول النماذج والصور والشبكات والصوت والمكونات الإضافية ومقاطع الفيديو والخطوط. يمكنك استخدام Creator Store لإضافة أصل فردي أو مكتبة أصول مباشرة إلى تجربة مفتوحة.
يرجع هذا الدليل إلى نموذج مروحة يمكنك استخدامه أثناء تكرار كل خطوة من تقنية HingeConstraint لدوران الكائنات. للحصول على أصل المروحة هذا من مخزونك إلى تجربتك:
أضف المروحة إلى مخزونك.
- انتقل إلى صفحة تفاصيل الأصل في Creator Store.
- في الزاوية اليمنى العليا، انقر على زر الحصول على النموذج. الآن، أصبح أصل المروحة في مخزونك، ويمكنك إعادة استخدامه في أي مشروع على المنصة.
في الاستوديو، انتقل إلى علامة Home، ثم انقر على زر Toolbox. تفتح نافذة Toolbox.

في نافذة Toolbox، انقر على علامة Inventory. تعرض قائمة My Models.

انقر على بلاطة Propeller. يعرض النموذج في عرضك.

تكوين الملحقات
يمكنك تحديد كل من الموضع الذي تريد أن تتداخل فيه الملحقات واتجاه الحركة الدورانية لتحريك كائن معين داخل مجموعة من خلال إضافة كائنين Attachment إلى المجموعة، ثم تكوين محاذاتهما وتوجههما في الفضاء ثلاثي الأبعاد.
تقوم تجربة الكائنات الدوارة بمحاذاة ملحقين بالقرب من موضع تداخل المروحة غير المثبتة مع القاعدة المثبتة، وتوجه محورهما الرئيسي للدوران إلى الأعلى بحيث يدوران عكس اتجاه عقارب الساعة. لا يمكن أن تدور الملحق القاعدي في هذا المثال لأن القاعدة مثبتة.
لتكوين الملحقات لقيد المفصل:
أدخل كائن Attachment في Head وBase.
- في نافذة Explorer، مرر فوق Head وانقر على زر ⊕. تظهر قائمة سياقية.
- من القائمة، أدخل Attachment.
- كرر هذه العملية لـ Base.
- أعد تسمية الملحقات إلى HeadAttachment وBaseAttachment، على التوالي.

قم بلف HeadAttachment وBaseAttachment بحيث يشير المحور الرئيسي لكل ملحق إلى الأعلى على المحور Y. يخبر ذلك الاستوديو بإدارة الملحقات في اتجاه عكس عقارب الساعة.

انقل BaseAttachment إلى أعلى Base، وHeadAttachment إلى الحافة السفلية لـ Propeller. يخبر ذلك الاستوديو بمكان الاتصال بالمفصل نفسه، ويتداخل الملحقان معًا أثناء وقت التشغيل.

تكوين القيد
الآن بعد أن أصبحت الملحقات لديك في موضع للتداخل ولها اتجاه الحركة الدورانية، يمكنك تكوين خصائص قيد HingeConstraint لتحديد مقدار الراديان الذي تريده أن تدور الملحقات في الثانية، والحد الأقصى من العزم الذي يمكن أن يطبقه المحرك للوصول الملحقات إلى سرعة زاوية ثابتة.
على غرار التقنية السابقة، تطبق تجربة الكائنات الدوارة حدًا أقصى قدره 1000 Rowton-studs من القوة الزاوية الثابتة لتحريك الملحق 3 راديان في الثانية على المحور Y بسرعة زاوية ثابتة. ومع ذلك، لأن الملحق القاعدي موجود في كائن مثبت، يمكن أن يدور فقط الملحق الخاص بالمروحة.
لتكوين قيد المفصل:
أدخل كائن HingeConstraint في Head.
- في نافذة Explorer، مرر فوق Head، ثم انقر على أيقونة ⊕. تظهر قائمة سياقية.
- من القائمة السياقية، أدخل HingeConstraint.
قم بتعيين ملحقات المروحة إلى القيد الجديد بحيث تدور المروحة بالعلاقة مع القاعدة المثبتة.
- في نافذة Explorer، حدد القيد.
- في نافذة Properties،
- اضبط Attachment0 على BaseAttachment.
- اضبط Attachment1 على HeadAttachment. تظهر المفصل في واجهة العرض.

في نافذة Explorer، حدد القيد، ثم في نافذة Properties،
- اضبط ActuatorType إلى Motor. تظهر حقول خصائص جديدة.
- اضبط MotorMaxTorque على 1000 لتطبيق ما يصل إلى 1000 Rowton-studs من القوة الزاوية الثابتة لتحقيق السرعة الزاوية المستهدفة.
- اضبط AngularVelocity على 3 لتحريك رأس المروحة 3 راديان في الثانية.

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

تطبيق قوة زاوية ابتدائية
طريقة أخرى لتغيير سرعة الزاوية لكائن هي من خلال تطبيق دفعة من القوة الزاوية. بعد دفعة القوة الزاوية، إما أن يبطئ الكائن حتى يصبح ثابتًا إذا كان هناك قوة معارضة مثل الاحتكاك، أو يبقى في حركة بسرعة ثابتة إذا لم يكن هناك أي قوى معارضة.
تكون هذه التقنية مفيدة لجعل الكائنات تدور بعد حدث كبير في اللعب أو الطقس، مثل هبوب رياح قوية، لأنها تعطي اللاعبين ردود فعل فورية. لتوضيح ذلك، تعلمك القسم التالي كيفية دوران مجموعة بدفعة زاوية ابتدائية عشوائية يمكنك تكييفها مع قيم جديدة لتلبية متطلبات طريقة اللعب الخاصة بك.
استخدام ApplyAngularImpulse
تعمل طريقة ApplyAngularImpulse على تطبيق العزم على مجموعة كاملة للحصول على سرعة زاوية ابتدائية قبل أن تبدأ في التباطؤ إلى التوقف. لبدء دوران المجموعة، تحتاج الطريقة إلى معرفة:
- المجموعة للدوران.
- المحور الذي يتم تطبيق العزم عليه للوصول إلى سرعة زاوية ابتدائية.
- مقدار العزم الذي سيتم تطبيقه على كل محور.
يمكنك تعريف كل هذه القيم في سكريبت. على سبيل المثال، يعرف السكريبت المشترك المجموعة للدوران كوالده، ثم يطبق دفعة عشوائية من القوة الزاوية بين 0 و 100 Rowton-studs على المحور Y.
لدوران مجموعة باستخدام ApplyAngularImpulse:
أدخل جزء كرة في Workspace. يستخدم النموذج كرة تحتوي على MaterialVariant حتى تتمكن من تصور حركة الكرة بوضوح.

أدخل سكريبت في الجزء الجديد.
- في نافذة Explorer، مرر فوق الجزء وانقر على زر ⊕. تظهر قائمة سياقية.
- من القائمة، أدخل Script.
استبدل الكود الافتراضي بالكود التالي:
local part = script.Parentlocal impulse = Vector3.new(0, math.random(0, 100), 0)part:ApplyAngularImpulse(impulse)