كيفية الحفاظ على مقياس متناسق لرسومات العالم الخارجي والمعارك
لجعل الشخصية تبدو بالحجم نفسه في مشاهد العالم الخارجي ومشاهد المعارك، قارن ارتفاع العمل الفني كما يتم تصييره على الشاشة، وليس أبعاد الصورة المصدر وحدها. اختر هدفًا مشتركًا لارتفاع الشخصية بالبكسل، وحدد مقياسًا ثابتًا للعالم وكثافة البكسل، ثم قارن كلا المشهدين بنفس مقياس الكاميرا. قم بمحاذاة قدمي الشخصية مع خط أساس مشترك وتحقق من النتيجة عند أحجام العرض المخصصة للعبة. وإذا كان أي من المشهدين يستخدم كاميرا أو تكوينًا مختلفًا عن قصد، فقم بتوثيق هذا الاستثناء بدلاً من تغيير مقياس الرسم المتحرك (sprite) بصمت.
حدد ما يعنيه "المقياس نفسه" للعبتك
ابدأ بتحديد هدف قابل للقياس. على سبيل المثال، قد تقرر أن تشغل الشخصية 32 بكسل شاشة من باطن القدم إلى أعلى الرأس في كلا المشهدين عند زاوية رؤية الكاميرا المرجعية. هذا هدف توضيحي وليس حجمًا عامًا موصى به: اختر حجمًا يناسب دقة لعبتك ومستوى التفاصيل في رسوماتها.
قِس الشخصية المرئية، وليس مستطيل الصورة الشفاف. قد يتضمن رسم العالم الخارجي ظلاً أو سلاحًا أو هوائيًا أو مساحة فارغة، بينما قد يكون لرسم المعركة وضعية مختلفة. حدد ما إذا كان هدفك يقيس المخطط الخارجي للجسم من الرأس إلى القدمين أو العمل الفني المرئي بالكامل، واستخدم نفس القاعدة لكليهما. احتفظ بمرجع صغير يوضح الارتفاع المستهدف، والدقة المرجعية، وخط الأرض المقصود، وأي اختلافات مقصودة خاصة بالمشهد.
هذا التعريف مهم لأن مساحة الرسم (canvas) الأكبر في المصدر لا تعني تلقائيًا شخصية أكبر على الشاشة. تصف أبعاد مساحة الرسم مساحة الصورة؛ بينما تحدد إعدادات الاستيراد في المحرك، ومقياس العنصر، والكاميرا عدد بكسلات العرض التي تشغلها تلك المساحة. يفرّق Aseprite بين تغيير حجم مساحة الرسم وتغيير حجم محتوى الرسم المتحرك، لذا تحقق من العملية التي تحتاجها قبل تعديل العمل الفني.Aseprite: Sprite Size
قارن العمل الفني الفعلي داخل كل مساحة رسم
افتح صور العالم الخارجي والمعارك بمقياس البكسل الأصلي الخاص بها، واعدّ البكسلات وفقًا للقياس المختار. سجّل الارتفاع المرئي للشخصية والمسافة بين القدمين وحافة مساحة الرسم. إذا كان طول شخصية المعركة 48 بكسل مرئي وشخصية العالم الخارجي 32 بكسل، فإن أبعاد عملهما الفني تختلف بنسبة 1.5:1 قبل أن يطبق المحرك أي تغيير في مقياس المشهد.
عندما تكون النسب متطابقة في جوانب أخرى، تكون المعادلة الحسابية البسيطة للبدء هي: الارتفاع المطلوب تصييره ÷ الارتفاع الحالي المُصيّر = معامل التعديل. إذا كان الرسم يُصيّر حاليًا بارتفاع 24 بكسل وكان ينبغي تصييره بارتفاع 32، فإن المعامل هو 32 ÷ 24 = 1.33. استخدم ذلك كتقدير تشخيصي، ثم افحص العمل الفني وإعداد المشهد. إنها عملية حسابية توضيحية؛ تفترض عدم وجود فرق في الكاميرا أو الاقتصاص أو التحويل (transform).
لا تقم بتغيير الحجم لمجرد جعل ملفات الصور متطابقة في العرض والارتفاع. قد تكون إحدى الوضعيات أعرض، أو قد تتضمن حركة المعركة ذراعًا مرفوعة. حافظ على الشكل المقصود وقارن بين نفس معالم الجسم. إذا كانت الرسوم تتمتع ببنية جسدية أو منظور مختلفين بشكل واضح، فقد لا تجعلها مطابقة ارتفاع البكسل تبدو متطابقة؛ اضبط التصميم أو اتفق على استثناء خاص بالمشهد.
حدد كثافة بكسل ومقياس عالم موحدين
في Unity، اضبط رسومات العالم الخارجي والمعارك على نفس قيمة البكسل لكل وحدة (Pixels Per Unit - PPU)، وطابق إعداد Asset Pixels Per Unit الخاص بكاميرا Pixel Perfect Camera مع تلك القيمة. تعرّف Unity قيمة PPU بأنها عدد البكسلات التي تشكل وحدة مشهد واحدة، وتتطلب إرشادات Pixel Perfect Camera الخاصة بها قيمة مشتركة عبر رسومات المشهد.Unity: 2D Pixel Perfect على سبيل المثال، إذا كان المشروع يستخدم 16 بكسل لكل وحدة، فإن رسمًا بارتفاع 32 بكسل سيشغل وحدتين من وحدات العالم قبل تغيير مقياس الكائن.
تحقق من مقياس التحويل (transform scale) الخاص بكائن كل شخصية أيضًا. فمطابقة PPU لن تعوض عن كائن مشهد تم ضبط مقياسه على 0.8 وآخر على 1.0. فضل استخدام إعدادات استيراد وتحويل متناسقة، ولا تقم بتعديل العمل الفني أو اعتماد مقياس خاص بالمشهد مسجل بوضوح إلا عندما يتطلب التكوين ذلك.
في محرك آخر، ابحث عن عناصر التحكم المكافئة: كم عدد بكسلات المصدر التي يتم تعيينها لوحدة عالمية، ومقياس العقدة (node) أو الكائن، ومنفذ الرؤية (viewport) أو التكبير للكاميرا. يتضمن مسار التصيير ثنائي الأبعاد في Godot تحويلات مساحة الرسم ومنفذ الرؤية، بما في ذلك تحويل التمدد (stretch transform) المستخدم عند تغيير حجم الشاشة؛ وبالتالي لا يمكن لأبعاد الصورة المصدر وحدها تحديد حجمها النهائي على الشاشة.Godot: Viewport and canvas transforms
قم بمحاذاة القدمين باستخدام نقطة ارتكاز (pivot) مدروسة
يمكن للشخصية أن تكون بالارتفاع الصحيح ومع ذلك تبدو غير متناسقة المقياس إذا كانت تطفو أو تغوص أو يتغير موضعها بين المشاهد. اضبط نقطة الارتكاز عند نقطة تثبيت ذات مغزى، وعادة ما تكون نقطة ملامسة الأرض بين القدمين، ثم حاذِ نقطة التثبيت تلك مع نفس خط الأساس للأرضية في كلا المشهدين. بالنسبة للرسومات التي تتحرك أقدامها أثناء الحركة (animation)، قم بتثبيت الجذر أو نقطة الارتكاز باستمرار وتحقق من إطارات التلامس.
تجنب افتراض أن مركز كل صورة هو نقطة تثبيت جيدة. فقد تحتوي مساحات الرسم على كميات مختلفة من الحواف الشفافة، ويمكن لنقطة الارتكاز المركزية أن تضع العمل الفني في موضع رأسي مختلف. يدعم سير عمل Unity المخصص للدقة بالبكسل (pixel-perfect) نقاط ارتكاز مخصصة تقاس بالبكسل ويوصي بتعيين نقاط ارتكاز للرسومات الفردية في نسيج يحتوي على رسومات متعددة (multiple-sprite texture).Unity: 2D Pixel Perfect في Godot، يتم توسيط Sprite2D افتراضيًا؛ وتشير وثائقه إلى أن فن البكسل الموسط يمكن أن يبدو مشوهًا عند وضعه بين البكسلات، ويوضح خيارات تعطيل التوسيط أو تمكين المحاذاة التلقائية للبكسل (pixel snapping).Godot: Sprite2D
تحقق من التصفية (filtering) والمحاذاة التلقائية ومقياس الكاميرا
استخدم تصفية nearest أو point للحصول على فن بكسل واضح، وتأكد من أن ضغط النسيج (texture compression) لا يغير مظهره. توصي إرشادات Unity تحديدًا بتصفية Point وعدم استخدام الضغط للرسومات المستخدمة مع كاميرا Pixel Perfect Camera الخاصة بها.Unity: 2D Pixel Perfect تحافظ هذه الإعدادات على وضوح الحواف؛ لكنها لا تجعل رسمين بمقياسين مختلفين بالحجم نفسه.
بعد ذلك، قارن المشاهد مع ضبط كاميراتها على نفس زاوية الرؤية المرجعية أو باستخدام كاميرا اختبار مؤقتة مشتركة. غالبًا ما يتم تكبير مشهد المعركة للتأكيد. فإذا تضاعف تكبير الكاميرا، يمكن للشخصية أن تشغل ضعف عدد بكسلات الشاشة على الرغم من أن مقياس الرسم في العالم لم يتغير. حدد ما إذا كان المطلوب هو حجم متساوٍ في العالم أم بروز متساوٍ على الشاشة: فهذان هدفان مختلفان. إذا كان تأطير المعركة يكبّر الشخصية عن عمد، فسجل التكبير كخيار عرض ولا تستخدم زاوية الرؤية تلك للحكم على المقياس الأساسي للرسم.
بالنسبة لفن البكسل، افحص الحركة بالإضافة إلى الإطار الثابت. يمكن لمواضع البكسل الجزئية (subpixel) أو المحاذاة التلقائية غير المتناسقة أن تجعل الحواف تومض أو تبدو غير متساوية أثناء تحرك الشخصية. توفر Pixel Perfect Camera في Unity محاذاة تلقائية لشبكة مرتبطة بقيمة PPU الخاصة بالأصل؛ ويوفر Godot إعدادات محاذاة البكسل للرؤوس ثنائية الأبعاد والتحويلات.Unity: 2D Pixel Perfect Godot: Sprite2D اختبر باستخدام إعدادات الكاميرا الفعلية للمشروع، حيث يعتمد سلوك المحاذاة وتغيير المقياس على إعدادات التصيير.
قم بإجراء فحص مقارنة سريع قبل تغيير الأصول
أنشئ مقارنة جنبًا إلى جنب مع نفس وضعية الشخصية إن أمكن. استخدم عمليات الفحص التالية بالترتيب:
- قارن ارتفاع الجسم المرئي باستخدام نفس المعالم وقاعدة عد البكسلات.
- قارن خط أساس القدمين ونقطة ارتكاز الرسم أو موضع الجذر.
- تحقق من PPU أو كثافة الاستيراد المكافئة، ومقياس الكائن وأي مقياس للكائن الأصل (parent scale).
- طابق تكبير الكاميرا، والدقة المرجعية، وتوسيع منفذ الرؤية، وحجم العرض.
- افحص بالحجم الأصلي وأثناء الحركة لرصد التشتت أو التوزيع غير المتساوي للبكسل أو الاقتطاع.
- أعد فحص بضعة إطارات للحركة، وخاصة الوضعيات الأقصر والأطول.
إذا تطابقت قياسات العمل الفني ولكن الشخصية لا تزال تبدو أكبر في المعركة، فتحقق من تأطير الكاميرا والعناصر المحيطة قبل تعديل الرسم. إذا تطابقت الكاميرا والتحويلات ولكن اختلف ارتفاع المخطط الخارجي، فاضبط العمل الفني أو مقياسًا متحكمًا فيه خاصًا بالمشهد. وإذا تحركت القدمان مع تطابق الارتفاع، فصحح نقطة الارتكاز أو الحواف أو التثبيت. يساعد هذا الترتيب في عزل السبب بدلاً من التعويض عن خطأ بآخر.
احتفظ بمرجع مقياس صغير للرسومات المستقبلية
سجّل الارتفاع المستهدف المشترك، أو PPU أو ما يعادله، والدقة المرجعية، والاتفاق الخاص بنقطة الارتكاز، وإعدادات الكاميرا المقصودة بجانب أصول الرسومات. يمكن لأدوات مساحة الرسم في Aseprite تقليم الحدود الشفافة، ولكن التقليم يغير حدود مساحة الرسم، لذا تأكد من أن نقاط الارتكاز أو الشرائح أو نقاط التثبيت على جانب المحرك لا تزال متناسقة بعد ذلك.Aseprite: Canvas Size تعامل مع التقليم كتغيير في الأصل يتطلب فحصًا سريعًا للمشهد.
المعيار الموثوق هو الشخصية التي تطابق هدف الارتفاع المرئي المتفق عليه، وتشترك في نقطة تثبيت أرضية، ويتم تصييرها بثبات في ظل إعدادات الكاميرا والتصفية المقصودة. حافظ على الاختلافات المقصودة في تركيز الكاميرا كخيارات عرض صريحة. مع تسجيل عمليات الفحص تلك، يمكن مقارنة الوضعيات اللاحقة في العالم الخارجي ورسوم المعارك المتحركة بنفس المرجع العملي.
