كيفية دمج الرسوم المتحركة القفز مع الوحدة

اليوم أنهيت أول رسم متحرك لي في Blender ، والذي أردت دمجه في Unity. ظننت أنني سأضطر إلى فعل شيء مثل "حسنًا عندما أضغط على زر القفز ، وأطلق حركة القفز وهذا كل شيء!". ليس قريبًا حتى!

فعلت هذا وكانت النتيجة ... ليست كما توقعت.

أنا متأكد تمامًا أن العملية التي وصفتها سابقًا ستنجح في بعض الحالات المحددة ولكن للأسف ، ليس في حالتي.

اضطررت للذهاب إلى طريقة أطول.

نظرة سريعة على قفزة

يمكن تقسيم القفزة المنتظمة إلى ثلاث مراحل مختلفة:

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

كيف يعمل في لعبة؟

عندما يضغط اللاعب على شريط المسافة (والذي من الواضح أن زر القفز ) ، يتم تشغيل حركة القفز.

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

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

دعونا نفكر كيف نتصرف عندما نقفز! عندما نرى أننا ذاهبون إلى الأرض فإننا نعد أنفسنا لـ "التأثير". نستطيع لأن لدينا رؤية للأرض ويمكننا التقييم بسرعة عندما نحتاج إلى الاستعداد.

الشيء المفقود في حالتنا هو شيء لتقييم مسافة شخصيتنا من الأرض! سأكشف لك طريقة واحدة لتقييم هذه المسافة من الشخصية إلى الأرض ، ولكن لاحظ أن هناك العديد من الطرق الأخرى للقيام بذلك. يمكن استخدامه في محرك ألعاب آخر.

الحيلة هي إلقاء شعاع من شخصيتنا في اتجاه سرعته. سنكون قادرين بعد ذلك على تشغيل الرسوم المتحركة للهبوط في الوقت المناسب قبل أن نصل إليها! 🥳

جاهز؟

التنفيذ مع الوحدة

في Unity ، هناك أداة تسمى Raycast ستعطينا ما نريده بالضبط.

نحن نتقدم في خطوتين:

  • نرسل Raycast في اتجاه سرعتنا لتحديد المسافة قبل أن نلمس الأرض.
  • إذا كانت سرعتنا على المحور الرأسي ، y في الوحدة ، سلبية (مما يعني أننا نسقط) والأرض قريبة جدًا ، فإننا نطلق حركة الهبوط.

إنه مثالي ولكن الآن عندما نقفز في اللعبة ، فإن البرنامج النصي سيطلق الرسوم المتحركة في الوقت المناسب. إلى ما لا نهاية وما بعدها! ️