720p से 1080p तक मेरे पिक्सेल आर्ट प्लेटफ़ॉर्मर को स्केल करना


12

मैं पीसी और स्मार्टफोन के लिए एक पिक्सेल आर्ट 2 डी प्लेटफ़ॉर्मर विकसित कर रहा हूं, लेकिन मैं एक तकनीकी मुद्दे पर फंस गया हूं।

मैंने एक 32x32 टाइल रिज़ॉल्यूशन और 64x64 वर्ण स्प्राइट रिज़ॉल्यूशन के लिए चुना है। स्तरों को उन खंडों में विभाजित किया जाता है जिन्हें मैं "स्क्रीन" कहता हूं, और प्रत्येक स्क्रीन में मुझे 40x22.5 टाइलें मिली हैं, जिन्हें 40x23 तक अनुमानित किया गया है, इसलिए न्यूनतम रिज़ॉल्यूशन 1280x720 है।

खेल में, मुझे एक डबल-जंप मैकेनिक मिला है, इसलिए मुझे प्रत्येक "स्क्रीन" पर एक अच्छी ऊर्ध्वाधर दृश्य सीमा की आवश्यकता है।

यहाँ इस मुद्दे पर आता है: 1280x720 एक बहुत ही उच्च संकल्प नहीं है। एचडी मॉनिटर पर विंडो बड़ी नहीं होगी, और अगर मैं रिज़ॉल्यूशन 2x से बढ़ाता हूं, तो यह 2560x1440 में होगा और विंडो वास्तविक एचडी मॉनिटर से बहुत बड़ी होगी। अगर मैं 1280x720 और 2560x1440 के बीच के आकारों की कोशिश करता हूं, तो ग्राफिक्स हकलाना शुरू कर देते हैं, या विकृत हो जाते हैं।

कैसे मैं इस मुद्दे को हल कर सकता हूँ? क्या कोई समाधान है जो मुझे 16x16 प्रारूप में सभी टाइलों और स्प्राइट्स को फिर से तैयार करने की आवश्यकता नहीं है?


रिज़ॉल्यूशन को कम कर रहा है, लेकिन एक कैमरा होने से स्क्रीन एक स्वीकार्य डिज़ाइन विकल्प है? यानी रिज़ॉल्यूशन अब 640 x 360 है लेकिन आपकी स्क्रीन अभी भी 1280x720 है, लेकिन आपको कमरे के चारों ओर घूमने की जरूरत है, जैसे Metroid या Axiom Verge?
लोजजप

आप गलत जगह पर हैं, भले ही यह 2 डी गेम हो, आपको कैमरा परिभाषित करने की आवश्यकता है। तो कैमरा देखने के रिज़ॉल्यूशन, फ़ॉव और एंगल्स को परिभाषित करता है, और आप डेटा को बस कैमरे के सामने पेश करते हैं। इस तरह आपका खेल
पुनर्जीवन


बस यह सुनिश्चित करने की कोशिश कर रहा है कि समस्या वास्तव में क्या है। क्या आप ऐसा कह रहे हैं क्योंकि आपका 1280X720 मैप डिस्प्ले 1920X1080 मॉनिटर डिस्प्ले कहने की तुलना में छोटा है तो आप अपने मैप डिस्प्ले को 'फुलस्क्रीन' के रूप में अधिक से अधिक उतारना चाहते हैं? मैं उलझन में हूं क्योंकि 16X16 टाइलें समस्या को हल नहीं करेंगी (जैसा कि मैं इसे समझता हूं) वैसे भी।
RobM

@DMGregory, यदि आप भिन्नात्मक पैमाने का उपयोग करते समय स्केलिंग में कलाकृतियों के साथ मुझे कुछ उदाहरण प्रदान कर सकते हैं, तो यह भयानक होगा क्योंकि मैं एक भी परिदृश्य की कल्पना नहीं कर सकता, जब मैं दोनों दिशाओं में एक छवि को मापता हूं, यदि राशि है तो समान राशि नहीं एक पूरी या भिन्नात्मक संख्या, जो कलाकृतियाँ दिखाई देती हैं। कलाकृतियों से मेरा मतलब उन चीजों से है, जो वहाँ नहीं होनी चाहिए, जो धब्बा से अलग होती है, जो पर्याप्त पिक्सेल के बिना उच्च स्केलिंग के लिए होती है।
योश सिनर्जी

जवाबों:


16

किसी को भी आश्चर्य हो कि यह पिक्सेल कला के लिए एक मुद्दा क्यों है, यहाँ सुपर मारियो वर्ल्ड के एक दृश्य का उपयोग करके एक त्वरित उदाहरण दिया गया है:

कलाकृतियों को दिखाते हुए पिक्सेल कला दृश्य का उदाहरण

अगर हम रनवे के समय 720 से 1080 तक पिक्सेल आर्ट गेम को स्केल करते हैं (जिस तरह से एक विशिष्ट गेम कैमरा हो सकता है), तो हम स्क्रीन के गैर-पूर्णांक अनुपात प्रति स्रोत टेक्सल के गैर-पूर्णांक अनुपात के कारण कलाकृतियां प्राप्त करते हैं। दाईं ओर स्केल किए गए उदाहरण से संख्याओं में विसंगति की जांच करें, और पत्ती और मारियो के कान को कैसे देखें।

यह खेलने योग्य है, लेकिन यह उस आकर्षक पिक्सेल आर्ट क्रिस्पनेस खो गया है। और गति में ये कलाकृतियां एक स्प्राइट में क्रॉल कर सकती हैं , जिससे यह झिलमिलाता हुआ दिखेगा।

एक फ़िल्टरिंग मोड का उपयोग करना जो आसन्न पिक्सेल को मिश्रित करता है, तरंगों से बच जाएगा, लेकिन पिक्सेल कला को धब्बा और धब्बा देगा, इसलिए यह बहुत वांछनीय नहीं है।


दुर्भाग्य से 720p और 1080p के बीच का 1.5x अनुपात सबसे खराब स्थिति है जिसका हम सामना कर सकते हैं।

जैसा कि आप ध्यान दें, 1x स्केलिंग बहुत छोटा है और 2x बहुत बड़ा है, दोनों तरीकों से एक मार्जिन को चौड़ा करके, और चुनने के लिए हमारे बीच कोई पूर्ण-स्केल स्केलिंग अनुपात नहीं है।

आपके विकल्प उबलते हैं:

  • यदि आप स्थान को भरने की जरूरत है, तो सजावटी सीमाओं को जोड़ते हुए, स्क्रीन से 1/3 छोटे विंडो में अपना खेल दिखाते हुए, 1x स्केल को टोलरेट करें।

    • आप उच्च-रिज़ॉल्यूशन स्क्रीन पर एक बार में अपने दृश्य को दिखाते हुए, फसल को बढ़ा सकते हैं। यह आवश्यक पैडिंग / लेटरबॉक्सिंग को कम करता है, लेकिन आपको यह मूल्यांकन करना होगा कि क्या यह प्रभावित करता है कि गेम कैसे खेलता है

      (उदाहरण। क्या यह कुछ उपकरणों पर खिलाड़ियों को अनुचित लाभ देता है या उन्हें ऐसे रहस्य दिखाने देता है जो उन्हें इतनी आसानी से नहीं देखना चाहिए?)

  • 2x से स्केल करें और अपने दृश्य को क्रॉप करें , इसलिए खिलाड़ी एक बार में दृश्य को कम देखता है (लगभग 3/4 जहाँ तक वे पहले देख सकते थे)।

    यह भी प्रभावित कर सकता है कि खेल कैसे खेलते हैं, जैसे। खिलाड़ी के लिए उन जगहों को देखना कठिन बना देता है, जहां उन्हें डबल-जंप करने की आवश्यकता होती है।

    • आप कैमरा लॉजिक के साथ इसकी भरपाई करने में सक्षम हो सकते हैं, जिसमें खिलाड़ी का अनुसरण करने या प्रत्याशित करने के लिए व्यू पैन है, इसलिए महत्वपूर्ण सामग्री अभी भी एक स्क्रीन पर छोटी फसल में दिखाई देती है, लेकिन उपयोग करने के लिए कोई सार्वभौमिक सर्वश्रेष्ठ कैमरा नहीं है।

      यदि आप इस मार्ग पर जाने का निर्णय लेते हैं, तो अपने गेमप्ले और वर्तमान कैमरे के कुछ विवरण और एक उदाहरण दृश्य साझा करने का प्रयास करें। इसके साथ, हम कैमरे के व्यवहार को ट्यून करने में मदद करने में सक्षम हो सकते हैं (या आपके गेम को केवल फ्लैट-आउट अधिक दृश्यता की आवश्यकता हो सकती है)

  • एक अलग रिज़ॉल्यूशन पर वैकल्पिक संपत्ति बनाएँ । (हाँ, यह बहुत काम की चीज है, लेकिन आपको खेल के रंगरूप को नियंत्रित करने के लिए सबसे अधिक विकल्प देता है)

    इसका मतलब यह नहीं है कि आपको अपनी मौजूदा परिसंपत्तियों को फेंकना होगा जो 720p पर बहुत अच्छी लगती हैं। यह आलेख लक्ष्य रिज़ॉल्यूशन की एक व्यापक श्रेणी (एकता में, लेकिन सिद्धांत को गैर-एकता के खेल में भी लागू किया जा सकता है) का समर्थन करने के लिए विभिन्न परिसंपत्तियों के सेट के बीच प्रासंगिक रूप से अदला-बदली का वर्णन करता है

    • जैसा कि आप ध्यान दें, अपनी सभी परिसंपत्तियों को आधे आकार ( 16x16 टाइल, 32x32 वर्ण ) पर फिर से परिभाषित करने से आप 2x पैमाने पर 720p, और 3x पैमाने पर 1080p को संभाल लेंगे, साथ ही अब आपके द्वारा दिखाए गए टाइल्स की समान संख्या। आप नेत्रहीन रूप से छोटे टाइल रिज़ॉल्यूशन को अधिक प्रतिबंधक पा सकते हैं।

    • आप एक वैकल्पिक, "बड़े प्रारूप" संपत्ति सेट भी तैयार कर सकते हैं जो 150% बड़ा ( 48x48 टाइल, 96x96 चरित्र ) है, जो 1080p को 1x पैमाने पर संभाल लेगा। (आप 720p या 1440 आदि के लिए अपनी मौजूदा संपत्ति का उपयोग करेंगे)। बड़े रिज़ॉल्यूशन से आपको अपनी वर्तमान कला की निष्ठा बनाए रखने में मदद करनी चाहिए, इसलिए आपको अब आपके पास मौजूद स्टाइल और विवरण का त्याग नहीं करना पड़ेगा।

      एक परिसंपत्ति का उदाहरण 150% के पैमाने पर पुनः तैयार किया गया

    • एक तीसरा विकल्प केवल थोड़ी छोटी संपत्ति सेट तैयार करना है ( 24x24 टाइल, 48x48 वर्ण ) तैयार करना है, जो 1080p को 2x पैमाने पर संभाल सकता है, और फिर से आपके सभी परिसंपत्तियों के आकार को कम करने की तुलना में विस्तार का कम बलिदान हो सकता है।

      इन तीनों विकल्पों में से आप अपने फ्रेमन और गेमप्ले को 720 और 1080 पर समान रूप से रख सकते हैं, लेकिन संपत्ति के काम को लगभग दोगुना कर सकते हैं।

इसलिए, दुर्भाग्य से यहां कोई आसान जीत नहीं है, बस अलग-अलग ट्रेड-ऑफ।


2
आप मूल पैमाने को बनाए रखने और सजावटी सीमाओं का उपयोग करने का उल्लेख करते हैं। संदर्भ के आधार पर, GUI तत्व डालने के लिए यह सही जगह हो सकती है, जैसे स्कोर और जीवन। यदि ये सीमाएँ ऐसी जानकारी को ठीक से फिट करने के लिए पर्याप्त बड़ी हैं, तो यह 'भराव' की तरह कम दिखती है, और अधिक 'सामग्री-पूर्ण' और खेल के लिए प्रासंगिक है।
Gnemlock

3

विशेष रूप से @ DMGregory के विभिन्न प्रस्तावों पर वैकल्पिक संपत्ति बनाने के विकल्प पर विस्तार से:

सबसे अच्छा समाधान जो मुझे पता है कि शायद इस बिंदु पर आपको सबसे कम उपयोग करना है: अपनी कला संपत्ति को एक वेक्टर प्रारूप में विकसित करें और बाद में आवश्यकतानुसार उन्हें व्यवस्थित करें। यह एक जादू की गोली नहीं है; अधिकांश समय आपको लगता है कि आपको रैस्टराइजिंग के बाद कुछ छोटे दस्तकारी संशोधन करने की आवश्यकता होगी।

अगला सबसे अच्छा विकल्प मुझे पता है कि विभिन्न छवि स्केलिंग एल्गोरिदम की कोशिश करना है, विशेष रूप से, पिक्सेल कला स्केलिंग एल्गोरिदम। पहले की तरह, यह एक अग्न्याशय नहीं है; एक विशिष्ट स्केलिंग एल्गोरिथ्म का चयन अत्यधिक संदर्भ विशिष्ट है। यह आपके गेम के 'फील' के साथ उतना ही है जितना कि आर्ट के साथ और यहां तक ​​कि एक अच्छे एल्गोरिथम + आर्ट मैच के साथ, आपको संभवतः हाथ से कुछ स्प्राइट्स को ट्विक करने की आवश्यकता होगी।

दोनों मामलों में, विचार आपके लिए काम के थोक करने के लिए एक उपकरण का उपयोग करना है और शेष विवरण पर मानव प्रयास को केंद्रित करना है। जैसे @DMGregory ने कहा, "यहां कोई आसान जीत नहीं है, बस अलग-अलग ट्रेड-ऑफ हैं।"


आंशिक स्केलिंग के बारे में संपादित करें: अधिकांश पिक्सेल आर्ट स्केलिंग एल्गोरिदम केवल संपूर्ण संख्याओं में वृद्धि करते हैं। अपने स्वयं के कस्टम स्केलिंग एल्गोरिथ्म को रोल करने की कमी, आप शायद उस 1.5x परिवर्तन को प्राप्त करने के लिए अपसंस्कृति और अपसंस्कृति को संयोजित करने जा रहे हैं जिसे आप खोज रहे हैं। एक संदर्भ के रूप में, यहां स्केल -3x एल्गोरिथ्म को अपस्केल और फंतासी एल्गोरिथ्म को 50% तक डाउनस्केल में संयोजित करने का परिणाम है:

मूल:

यहाँ छवि विवरण दर्ज करें

स्केल्ड:

यहाँ छवि विवरण दर्ज करें


दुर्भाग्य से अधिकांश पिक्सेल आर्ट स्केलिंग एल्गोरिदम मैंने पाया है कि अभी भी केवल पूरे-नंबर अपस्कलिंग (2x, 3x, 4x) आमतौर पर संभालते हैं, इसलिए वे 720-> 1080 मामले के साथ ज्यादा मदद नहीं करते हैं। (? हो सकता है कि एक एक 3x पिक्सेल upscaler तो downsample आधे से ... सुनिश्चित नहीं हैं कि अगर बेहतर या बदतर लगेगा एक सीधा upscale से इस्तेमाल कर सकते हैं)
DMGregory

वैध बिंदु। इसे संबोधित करने के लिए थोड़ा संपादित किया। मैं भी इस shader भर में ठोकर खा गया जो भिन्नात्मक स्केलिंग का समर्थन करता है
पिकालेक

वेक्टर समाधान के लिए +1। आप अपनी संपत्ति को वास्तव में बड़े और नीचे कर देंगे।
मार्क एवेन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.