باریک یا کلاسیک بودن توسط 24 پیکسل تعیین میشود، و میتوانید دقیقاً ببینید کدام پیکسلها هستند
یک اسکین زمانی باریک (slim) است که کمتر از 6 پیکسل از 24 پیکسل در (46,20)–(47,31) کدر باشند. بهعلاوه نقشه کامل UV، چرایی قرینه شدن اسکینهای قدیمی 64×32 و اینکه چرا 128×128 در Bedrock هرگز در Java بارگذاری نمیشود.
هیچ چیز در فایل PNG اسکین کلمه "slim" را مشخص نمیکند. هیچ پرچم، متادیتا یا قاعده نامگذاری فایلی وجود ندارد — مدل از خود تصویر و با بررسی یک مستطیل خاص 2 × 12 و شمارش تعداد پیکسلهای موجود در آن تشخیص داده میشود.
آزمون
sample x 46–47, y 20–31 — 2 wide, 12 tall = 24 pixels
count pixels with alpha > 0
slim if fewer than 6 are opaque
عرض بازوهای کلاسیک 4 پیکسل است؛ عرض بازوهای باریک 3 پیکسل است. بنابراین یک اسکین باریک ستون چهارم بازو را خالی میگذارد، و آن ستون همان جایی است که نمونه روی آن قرار میگیرد. بیست و چهار پیکسل تعیین میکنند که کاراکتر شما چه مدلی را میپوشد.
آستانه برابر است با 6 از 24، نه 1 — یک چهارم ستون باید پر باشد تا کلاسیک به حساب بیاید. این تلورانس اهمیت دارد: یک اسکین باریک با چند پیکسل سرگردان در ستون بدون استفاده همچنان باریک خوانده میشود، که همان چیزی است که میخواهید، زیرا آن پیکسلهای سرگردان تقریباً همیشه یک خطای ویرایشی هستند نه عمدی.
این همچنین بدان معناست که خطا بیصدا رخ میدهد. اگر یک اسکین کلاسیک بکشید اما فقط کمی از ستون چهارم استفاده کنید — یک خط دور نازک، چند پیکسل سایهزنی — ممکن است زیر 6 قرار بگیرید و به طور خودکار باریک تشخیص داده شوید و یک پیکسل از عرض بازو را بدون هیچ توضیحی از دست بدهید. اگر مدلی از اسکین اشتباه نمایش داده شد، آن ستون جایی است که باید بررسی کنید.
نقشه کامل UV
هر بخش از اسکین یک مستطیل ثابت است، و هرکدام یک لایه پوششی (overlay) در جای دیگری از تصویر دارد:
| بخش | پایه | پوشش | جابهجایی | اندازه |
|---|---|---|---|---|
| سر | (8, 8) | کلاه (40, 8) | 32 راست | 8 × 8 |
| بدن | (20, 20) | ژاکت (20, 36) | 16 پایین | 8 × 12 |
| بازوی راست | (44, 20) | آستین (44, 36) | 16 پایین | 4 × 12 |
| پای راست | (4, 20) | شلوار (4, 36) | 16 پایین | 4 × 12 |
| بازوی چپ | (36, 52) | آستین (52, 52) | 16 راست | 4 × 12 |
| پای چپ | (20, 52) | شلوار (4, 52) | 16 چپ | 4 × 12 |
پنج مورد از شش پوشش دقیقاً در فاصله 16 پیکسلی از پایه خود قرار دارند — اما نه در یک جهت. سه بخش اصلی 16 پیکسل به پایین میروند. بازوی چپ و پای چپ که بعداً اضافه شدند و در نیمه پایینی که جایی زیر آنها نبود فشرده شدند، در عوض 16 پیکسل به طرفین میروند — و در جهتهای مخالف یکدیگر قرار میگیرند.
کلاه تنها موردی است که اصلاً در فاصله 16 پیکسلی نیست: بلکه 32 پیکسل به راست، در همان ردیف سر است.
بنابراین «پوشش زیر پایه است» قاعدهای است که دقیقاً برای نیمی از صفحه صدق میکند. کپی کردن مستطیل پایه و انتقال آن به سمت پایین برای یافتن پوشش، برای بدن، بازوی راست و پای راست کار میکند، اما برای سه بخش دیگر بیصدا روی بخش اشتباهی قرار میگیرد.
در یک اسکین باریک، هر مستطیل بازو با عرض 4 بهصورت با عرض 3 خوانده میشود. مستطیلها حرکت نمیکنند؛ تنها عرض خواندهشده از آنها تغییر میکند.
اسکین قدیمی 64 × 32 اصلاً سمت چپ ندارد
اسکینهای قبل از 1.8 دارای اندازه 64 × 32 هستند — نیمه پایینی صفحه اصلاً وجود ندارد، جایی که بازوی چپ و پای چپ قرار دارند. چیزی برای رسم آنها وجود ندارد.
راهحل قرینهسازی است: پای راست (0, 16) در (16, 48) و بازوی راست (40, 16) در (32, 48) کپی میشوند که هر دو بهصورت افقی معکوس شدهاند. به همین دلیل است که اسکینهای قدیمی کاملاً متقارن هستند و اسکینهای جدید نیازی به تقارن ندارند — عدم تقارن تنها چیزی است که فرمت 64 × 32 نمیتواند بیان کند، و هر اسکین قدیمی که تبدیل کنید تقارن بر آن تحمیل میشود، چه بخواهد چه نخواهد.
فرمت 128 × 128 در Bedrock یک فرمت متفاوت است، نه فقط بزرگتر
نسخه Java اندازههای 64 × 64 یا 64 × 32 قدیمی را میپذیرد. Bedrock این فرمت را میپذیرد: 128 × 128 و نه هیچ چیز دیگر. نمایشگر هیچیک از نسخهها نمیتواند فایل نسخه دیگر را نمایش دهد — این یک تفاوت رزولوشن نیست که مقیاسپذیر باشد، بلکه یک چیدمان UV متفاوت در اندازهای متفاوت است.
این یک مانع قطعی است نه صرفاً یک مشکل کوچک. یک اسکین Java به Bedrock «ارتقای مقیاس» نمییابد، و یک اسکین Bedrock که در نمایشگر Java بارگذاری شود در نصف اندازه رندر نمیشود — بلکه رد میشود. ویرایشگر این صفحه دقیقاً به همین دلیل با این دو به عنوان ساختارهای جداگانه رفتار میکند.