تشريح الصقر


لقد أعلنا مؤخرًا عن تطوير لعبة Falcon Age حول تربية طائر بالغ من كتكوت الصقر والقوى المتعارضة المشتركة التي تسعى لاستعمار الكوكب. سيصدر Falcon Age في 2019 على PS4 و PS VR.

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

تصميم الصقر


أخبر تشاندان إكاناياك و داران هيرلبات.


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


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

الرسوم المتحركة وأجهزة الحفر


يحكي أونغ زاو أوو.


تتبع الصقر باو

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

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

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



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


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


30 Blend Poses on a ball


تسمح لك كروس كروس المتحركة بإعادة الكفوف إلى المركز

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

في الفرخ ، يتم التعامل مع المفصل الثاني من السبابة ككرة.


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


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

فقط إذا لم يلعبوا لسبب ما ، يقفون على رؤوسهم.

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



تتبع الصقر


سوف أصف بإيجاز كيف حققنا ذلك ؛ والرأس (bone_Head) هو الطفل الأول للكائن الأعلى في التسلسل الهرمي العظمي للطائر (bone_Root).

موقف (وليس الدوران) من Bone_Root يتبع موقف وحدة التحكم في الحركة وعارض العظام رأس هذه الحركة. هذا هو في الأساس تسلسل هرمي ثنائي الكائن يستخدم فيه خلط المواضع لمواجهة حركة الوالد للحفاظ على الوضع العالمي للطفل. يستخدم باقي جسم الطائر مزيجًا من 27 وضعية لوضع طبيعي للطائر.


بالنظر إلى حجم الطير البالغ ، فإن تحريك 12 سم على طول كل المحاور (مكعب 24 × 24 × 24) كان مثاليًا للاستقرار دون تمديد الرقبة كثيرًا. سوف يتحرك الرأس عند حدود هذا النطاق ، وعندما يتوقف ذراع التعقب عن الحركة ، سيُعتبر الموضع الجديد هو المركز الجديد الذي يتم حوله إنشاء مكعب آخر بجانب 24 سم ، ومن وجهة نظر رياضية ، يعد تثبيت الرأس مجرد تحول متجه مع العديد من الإضافات المختلفة. للحد من سرعة وبداية ونهاية المرحلة الانتقالية ، انقل نقطة الاستقرار عندما تكون بعيدة جدًا عن الجسم ، ولا يزال الطائر في المنطقة.


الملاحة و AI الطيور


رواه جوستين لالوني.

عندما يكون الطائر بالملل

في معظم الأحيان ، يطيع الصقر أوامر آرا (الشخصية الرئيسية للعبة) ويتبعها. إذا كنت تقف في منطقة واحدة لفترة طويلة بينما يطير الطائر فقط في دوائر ، أو إذا تركته يمر دون إعطاء أوامر ، فسوف يبدأ في البحث عن شيء ما يجب القيام به في المنطقة - عادة ما يصطاد أو يهبط في نقاط مهمة مختلفة من الإغاثة. كما أنها تأخذ زمام المبادرة عندما تجلس على Are ويحاول شخص ما الاستيلاء عليها ، وتحب أن تظهر هي الحفرة التالية عندما تلعب لعبة lightning golf.

الشمس تعمى الضحية

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


نذهب بسرعة ومن جانب الشمس لالتقاط الفرائس بدقة.



الملاحة الصقر 3D

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


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


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


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

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

الريش وجعله


يحكي بن ​​جولوس.

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


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

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


إليك اختبار لإصدار سابق من هذا النظام. يمكنك أن ترى كيف يتفاعل الريش مع الكرة حتى قبل أن تمسها ، لكن التفاعلات لا تزال مقنعة.



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

معلومات الجرح الصقر

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

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


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




أصوات المفترس


رواه روب بيرسال.


لم نكن نريد أن يختلف الطائر (على سبيل المثال ، أن يكون مستقبلاً أو سحريًا) عن أي طائر آخر في العالم ، ولكن ببساطة اجمع بين السمات المختلفة للعديد من الحيوانات المفترسة المتطايرة فيه (فقط أضف قبعة إليه). لذلك ، لم يكن هناك ما يدعو إلى خلق صوت لها "بجودة سينمائية" - وهو ما يكفي لجعله يعمل ويكون معقولاً.

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

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

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

أنها مريحة للغاية أن طيف العواطف كان محدودا. سأدعو لهم رسائل الطيور:

  • كل شيء هادئ ، كل شيء جيد
  • سمعت أنك تتصل بي
  • الهجوم
  • أنا مجروح ، لكن لا يزال يطير
  • هذا مؤلم

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

تتبع طائر في لعبة بالصوت قصة مختلفة تمامًا لمقال آخر.

Source: https://habr.com/ru/post/ar438138/


All Articles