Slim या classic का निर्णय 24 पिक्सल द्वारा होता है, और आप ठीक से देख सकते हैं कि कौन से
एक skin slim होती है यदि (46,20)–(47,31) के 24 पिक्सल में से 6 से कम अपारदर्शी हों। साथ ही पूरा UV मैप, क्यों लेगसी 64×32 skins मिरर हो जाती हैं, और क्यों Bedrock की 128×128 Java में कभी लोड नहीं होगी।
skin 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
Classic बाहें 4 पिक्सल चौड़ी होती हैं; slim बाहें 3 पिक्सल की होती हैं। इसलिए एक slim skin छोड़ती है चौथे आर्म कॉलम को खाली, और वही कॉलम वह हिस्सा है जिस पर सैंपल बैठता है। चौबीस पिक्सल तय करते हैं कि आपका कैरेक्टर कौन सा मॉडल पहनता है।
थ्रेशोल्ड है 24 में से 6, 1 नहीं — classic माने जाने से पहले कॉलम का एक चौथाई हिस्सा भरा होना चाहिए। यह टॉलरेंस मायने रखती है: डेड कॉलम में कुछ भटके हुए पिक्सल वाली slim skin भी slim के रूप में पढ़ी जाती है, जो कि आप चाहते हैं, क्योंकि वे भटके हुए पिक्सल लगभग हमेशा किसी इरादे के बजाय एडिटिंग की गलती होते हैं।
इसका मतलब यह भी है कि विफलता का तरीका शांत होता है। यदि आप एक classic skin बनाते हैं लेकिन चौथे कॉलम का केवल हल्का उपयोग करते हैं — एक पतली रूपरेखा, कुछ शेडिंग पिक्सल — तो आप 6 से कम पर आ सकते हैं और अपने आप slim के रूप में पहचाने जा सकते हैं, जिससे बिना किसी कारण के आर्म की चौड़ाई का एक पिक्सल घट जाता है। यदि कोई skin गलत मॉडल में निकलती है, तो वही कॉलम देखने की जगह है।
UV मैप, पूरी तरह से
skin का प्रत्येक भाग एक निश्चित आयत है, और शीट पर कहीं और प्रत्येक की एक ओवरले परत होती है:
| भाग | बेस | ओवरले | ऑफसेट | आकार |
|---|---|---|---|---|
| सिर | (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 दाईं ओर, सिर वाली ही पंक्ति में।
इसलिए "ओवरले बेस के नीचे है" एक ऐसा नियम है जो शीट के ठीक आधे हिस्से पर लागू होता है। बेस आयत की प्रतिलिपि बनाना और उसके ओवरले को खोजने के लिए इसे नीचे की ओर ऑफसेट करना शरीर, दाएं हाथ और दाएं पैर के लिए काम करता है, और बाकी तीन के लिए चुपचाप गलत भाग पर पहुंच जाता है।
एक slim skin पर प्रत्येक 4-चौड़ाई वाले आर्म आयत को पढ़ा जाता है 3 चौड़ा इसके बजाय। आयत हिलते नहीं हैं; केवल उनसे पढ़ी जाने वाली चौड़ाई बदलती है।
लेगसी 64 × 32 में बायां हिस्सा बिल्कुल नहीं होता है
1.8 से पहले की skin 64 × 32 होती है — शीट का निचला आधा हिस्सा मौजूद ही नहीं होता है, जहां बायां हाथ और बायां पैर होते हैं। उन्हें बनाने के लिए वहां कुछ भी नहीं है।
इसका समाधान मिररिंग है: दाएं पैर (0, 16) को (16, 48) पर और दाएं हाथ (40, 16) को (32, 48) पर कॉपी किया जाता है, दोनों को क्षैतिज रूप से फ़्लिप किया जाता है। यही कारण है कि पुरानी skins पूरी तरह से सममित होती हैं और आधुनिक skins का होना जरूरी नहीं है — असममिति ही एक ऐसी चीज है जिसे 64 × 32 प्रारूप व्यक्त नहीं कर सकता है, और आपके द्वारा कनवर्ट की जाने वाली किसी भी पुरानी skin पर समरूपता लागू हो जाती है चाहे वह चाहे या न चाहे।
Bedrock का 128 × 128 एक अलग प्रारूप है, केवल एक बड़ा प्रारूप नहीं
Java 64 × 64 या लेगसी 64 × 32 स्वीकार करता है। Bedrock स्वीकार करता है 128 × 128 और कुछ नहीं। किसी भी संस्करण का व्यूअर दूसरे की फ़ाइल प्रदर्शित नहीं कर सकता है — यह केवल रिज़ॉल्यूशन का अंतर नहीं है जो स्केल होता है, यह अलग आकार में एक अलग UV लेआउट है।
यह एक असुविधा के बजाय एक सख्त दीवार है। एक Java skin Bedrock में "अपस्केल" नहीं होती है, और Java व्यूअर में लोड की गई Bedrock skin आधे आकार में रेंडर नहीं होती है — इसे अस्वीकार कर दिया जाता है। इस पृष्ठ का संपादक ठीक इसी कारण से दोनों को अलग-अलग बिल्ड के रूप में मानता है।