मैं जीएम स्टूडियो में धब्बा के बिना पिक्सेल कला को कैसे स्केल करूं?


9

मैं गेम मेकर स्टूडियो में एक गेम बना रहा हूं जो पिक्सेल कला का उपयोग करता है। जब मैं गेम लॉन्च करता हूं, तो सभी स्केल-अप टेक्सचर वास्तव में धुंधले होते हैं। (यह छोटे लोगों के लिए नहीं होता है।)

उदाहरण के लिए, यह छवि

अच्छा :)

इस तरह से खेल में रेंडरर्स:

धुंधला :(

क्या वैसे भी धुंधले पिक्सेल के बजाय छोटे पिक्सेल को बड़े पिक्सेल में बदलना है ?


इसके बजाय बनावट के लिए एक हानिपूर्ण संपीड़न का उपयोग न करें bmp, gif या png का उपयोग करें, वे सभी दोषरहित भंडारण का समर्थन करते हैं
शाफ़्ट फ्रीक

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

उदाहरण जोड़े गए।
एमपॉवर

मैं खेल निर्माताओं की संभावनाओं को नहीं जानता, लेकिन आप सभी स्केल-फ़िल्टरिंग को अक्षम करना चाहते हैं और निकटतम-पड़ोसी स्केलिंग को सक्षम करेंगे।
अप्पेलशेल

1
अगर मुझे सही से याद है, तो मूल स्पेलुन्की (गेम मेकर में बनाया गया) में एक डीएलएल था जो रैखिक स्केलिंग को सक्षम करता था। स्रोत उस लिंक पर उपलब्ध है; एक नज़र देख लो।
एको

जवाबों:


13

कुछ संसाधन से एक समाधान मिला। ग्लोबल गेम सेटिंग्स पर जाएं, फिर किसी भी प्लेटफ़ॉर्म स्पॉइलर (उदाहरण के लिए "विंडोज" या "एंड्रॉइड") पर जाएं, वहां "ग्राफिक्स" शीर्षक वाले स्पॉइलर को चुनें और "पिक्सेल के बीच इंटरपोलेट रंगों" को टॉगल करें। मज़े करो :)


यह तकनीकी रूप से काम करता है, हालांकि पिक्सेल आर्ट का परिणाम एक गैर-पूर्णांक कारक (जैसे
2.5x

आपका मतलब है कि वे डिफ़ॉल्ट सेटिंग बनाने के लिए परेशान नहीं थे?!? मैंने अभी जाँच की है और यह गेम मेकर 8.0 में दूसरे तरीके को डिफॉल्ट करता है। यह सिर्फ पागल है .... महान जवाब btw।
user64742

5

हर स्प्राइट को मैन्युअल रूप से स्केल करने से कोई भी नहीं निपटना चाहता है; न केवल यह एक मैला कार्यक्षेत्र है, लेकिन यह बहुत ही लाभहीन होने के लिए पैदावार देता है। वैश्विक खेल सेटिंग में प्रक्षेप बंद करने पर मुझे कोई समाधान नहीं मिला।

texture_set_interpolation(false);

:) मुझे आशा है कि यह आपके भविष्य के प्रयासों में आपकी मदद करता है।


यह सबसे अच्छा समाधान है यदि कई प्लेटफार्मों को लक्षित किया जाता है, तो आपको हर एक प्लेटफॉर्म के लिए "पिक्सेल के बीच इंटरपोलेट रंग" पर क्लिक करने की आवश्यकता नहीं है! ठीक वही जो मेरे द्वारा खोजा जा रहा था।
लोगन पिकअप

1

इसके लिए मैं आमतौर पर फोटोशॉप या जीआईएमपी (स्केल / नियर नेबर) का उपयोग करता हूं

लेकिन जीएम में करने के लिए: एस स्प्राइट संपादक अपने आप को, मैं पैमाने के बजाय स्ट्रेच कमांड का उपयोग करता हूं और इसे पीओपी गुणवत्ता के लिए सेट करता हूं। यह Blocky की तरह महसूस करेगाएटीएम पर काम कर रहे एक गेम im से स्प्राइट, जीएम में स्प्राइट बढ़े हुए हैं: एस ही

ऊपर ATM पर एक गेम im वर्कइन है, मैंने ऐसा ही किया है!


यद्यपि यह कुछ निश्चित प्रस्तावों पर अप-स्केलिंग के लिए काम करता है, लेकिन यह उन सभी के लिए नहीं होगा, जीएम को भी डिफ़ॉल्ट रूप से बनावट को संपीड़ित करने की आदत है। यह खिंचाव कार्यक्षमता का उपयोग करते समय अलग-अलग प्रस्तावों पर अलग-अलग पैमाने पर भी होगा, इससे हम जिस धुंधलेपन से बचने की कोशिश कर रहे हैं। हालाँकि, (स्केल / निकटतम पड़ोसी) के लिए +1 उल्लेख है।
टॉम 'ब्लू' पिडॉक

1

मानचित्र में पृष्ठभूमि टैब में स्केल फ़ंक्शन को बंद करें। यदि ऐसा लगता है कि पैमाने से यह सुनिश्चित हो सकता है कि बैक ग्राउंड के लिए आपकी बनावट उसी आकार की हो जिस कमरे / नक्शे में आप हैं।

वैकल्पिक रूप से इस पोस्ट का उपयोग यहां एक पृष्ठभूमि स्क्रिप्ट बनाने के लिए किया गया है, जो (उम्मीद है) कुरकुरा परिणामों के साथ बैक ग्राउंड को अपस्केल करेगा।

यह सतहों का उपयोग करता है इसलिए यदि आपको उस पर कुछ अतिरिक्त सहायता की आवश्यकता है - यह पोस्ट बहुत सी जानकारी प्रदान करती है।


संपादित करें:

मेरे उत्तरों पर वापस जाने पर मुझे महसूस हुआ कि यह खरोंच तक नहीं है और ट्यूटोरियल सामग्री की आवश्यकता है। यह रहा:

चरण 1 : वह स्केल चुनें जिसे आप चाहते हैं। हर कमरे के लिए एक दृश्य का उपयोग करें और पोर्ट डब्ल्यू और पोर्ट एच को उचित रूप से बढ़ाया जाए। इसलिए, उदाहरण के लिए, यदि आप 2 के पैमाने का उपयोग कर रहे थे ... तो यह जीएम के कमरे के संपादक में इस तरह दिखाई देगा।

यह महत्वपूर्ण है कि यह सभी कमरों के लिए सुसंगत है। यदि आपके पास बहुत सारे कमरे हैं, तो कोड * के माध्यम से ऐसा करना आसान हो सकता है। मैं इसे इस तरह से करना पसंद करता हूं, क्योंकि तब मूल्य स्थिर नहीं होते हैं और मैं कई अलग-अलग पैमानों का समर्थन कर सकता हूं।

चरण 2 : 3 स्क्रिप्ट बनाएं, स्क्रीन_इनिट, स्क्रीन_बेगिन, और स्क्रीन_एंड। यहाँ स्क्रिप्ट में से प्रत्येक में जाता है ...

से उद्धरण: screen_init

// screen base(view_wview and view_hview)
screen_x = 0;
screen_y = 0;
screen_w = 320;
screen_h = 240;
screen_scale = 2;

// create a surface for the whole screen to be drawn on
screen = surface_create(screen_w,screen_h);

// this will destroy the screen object if surfaces are not supported on the graphics card, reverting to the viewport method
if screen = -1{instance_destroy();}

से उद्धरण: screen_begin

// this draws the surface on the screen
surface_reset_target();
draw_clear(0);
draw_set_blend_mode_ext(bm_one, bm_zero);
draw_surface_stretched(screen,screen_x,screen_y,screen_w*screen_scale,screen_h*screen_scale);
draw_set_blend_mode(bm_normal);
screen_refresh();

से उद्धरण: screen_end

// this sets surface 'screen' as the drawing target for everything in the game, so all drawing will be done on this surface and not on the game screen
surface_set_target(screen);

चरण 3 : अब हमारे पास स्क्रिप्ट हैं, लेकिन वे कहाँ जाते हैं? कोई वस्तु बनाएँ। जैसे, obj_screen, objScreen, o_screen, या जो भी हो, और निम्नलिखित करें:

  • A) Create इवेंट में screen_initscript रखें।
  • बी) शुरुआत चरण की घटना में स्क्रीन_बेगिन स्क्रिप्ट रखें।
  • सी) स्क्रीन_एंड स्क्रिप्ट को एंड स्टेप इवेंट में रखें।

और उस वस्तु को अपने खेल के पहले और सबसे महत्वपूर्ण कमरे में रखें, इसे लगातार चिह्नित करें, और सुनिश्चित करें कि इसके कोई डुप्लिकेट नहीं हैं।

आप कर रहे हैं, और अब अच्छा, कुरकुरा स्केलिंग = डी है


मुझे लगता है कि जब से मैं पिक्सेल कला से प्यार करता हूँ, तो मैं इसे धुंधला करना चाहता हूं। क्योंकि यह मेरे सवाल का जवाब नहीं देता। क्या यह संभव है?
एमपॉवर

संभावना नहीं है, गेम मेकर स्टूडियो एक खराब स्केलिंग एल्गोरिथ्म के साथ स्केलिंग करता है जो अक्सर अवांछित स्केलिंग ब्लर बनाता है। स्केलिंग के साथ एक कुरकुरा पृष्ठभूमि की कोशिश करने के लिए मैंने अपने उत्तर में संपादित किए गए ट्यूटोरियल का उपयोग करें।
टॉम 'ब्लू' पिडॉक

क्या आपने ग्राफिक प्रोग्राम में अपने बैकग्राउंड टेक्सचर को प्री-स्केलिंग माना था?
फिलिपिंस

दो तरीके अच्छे हैं। कुछ लिपियों को यहां जोड़कर देखें। एसकॉन्ड का उपयोग करने से पहले छवियों को पूर्व-स्केल करना है।
एमपॉवर

बहुत बढ़िया, खुशी हुई कि इससे मदद मिली।
टॉम 'ब्लू' पिडॉक

-2

texture_set_interpolation(false)इसे बनाने के लिए उपयोग करें जैसा कि उन्हें है।


यह सही हो सकता है, लेकिन क्या आप किसी और विस्तार में जा सकते हैं? हम आम तौर पर अपने उत्तरों में थोड़ा और अधिक विस्तार की तलाश करते हैं।
Gnemlock
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.