GIF के रूप में पिक्सेल कैरेक्टर एनिमेशन निर्यात करते समय रंगों में बदलाव कैसे रोकें
पिक्सेल कैरेक्टर GIF में रंगों के बदलाव रोकने के लिए, पूरे एनिमेशन के लिए सोच-समझकर पैलेट तैयार करें, आंशिक पारदर्शिता का समाधान करें और निर्यात से पहले रंग प्रोफ़ाइल जाँचें। फिर GIF को दोबारा खोलें और उसके वास्तविक पिक्सेल रंगों की तुलना तैयार स्रोत से करें। केवल रंगों की सीमा बढ़ाने से हर अंतर ठीक नहीं होगा।
यह तरीका उन कैरेक्टर निर्माताओं के लिए है जो Aseprite जैसे एडिटर से छोटा पिक्सेल एनिमेशन निर्यात करते हैं। इससे आप पता लगा सकते हैं कि बदला हुआ रंग पैलेट रूपांतरण, पारदर्शिता या छवि दिखाए जाने के तरीके की वजह से आया है, और फिर संबंधित चरण को ठीक कर सकते हैं।
GIF निर्यात से आपके कैरेक्टर के रंग क्यों बदल सकते हैं?
GIF पिक्सेल रंगों को रंग तालिकाओं में रखता है, जिनमें अधिकतम 256 प्रविष्टियाँ हो सकती हैं। यह एक वैश्विक तालिका और अलग-अलग छवियों से जुड़ी स्थानीय तालिकाओं का समर्थन करता है, इसलिए किसी एनिमेशन में उसकी पूरी अवधि के दौरान कुल 256 रंगों की सीमा होना ज़रूरी नहीं है। फिर भी, हर एन्कोड की गई छवि एक सीमित सक्रिय तालिका का उपयोग करती है। ये नियम मूल GIF89a विनिर्देश में दिए गए हैं।
जब स्रोत में ऐसे रंग हों जिन्हें चुना हुआ निर्यात पैलेट दर्शा नहीं सकता, तो निर्यातक को उन्हें उपलब्ध प्रविष्टियों में मैप करना पड़ता है। Aseprite विशेष रूप से बहुत अधिक रंगों वाले RGB स्प्राइट, लेयर ब्लेंडिंग, धुंधले क्षेत्र और ग्लो को GIF रंग बदलने के संभावित कारण बताता है। इसकी व्यावहारिक सलाह है कि RGB स्प्राइट में 256 से कम रंग रखें या सीधे Indexed मोड में काम करें। देखें GIF निर्यात में रंग बदलने के बारे में Aseprite की व्याख्या।
आपके रंग पैनल में छोटा पैलेट होने से यह साबित नहीं होता कि आर्टवर्क में केवल वही रंग हैं। Aseprite के RGB मोड में पिक्सेल में दिखाए गए पैलेट से बाहर के रंग भी हो सकते हैं। Indexed मोड में पेंटिंग पैलेट प्रविष्टियों तक सीमित रहती है। यह अंतर रंग पट्टी और पैलेट में समझाया गया है।
पहले पता लगाएँ कि बदलाव कहाँ होता है
निर्यात सेटिंग बदलने से पहले, अपने एनिमेशन की एक अलग निर्यात प्रति सहेजें। तुलना के लिए कुछ रंग चुनें: मुख्य बॉडी फिल, सबसे गहरी आउटलाइन, एक हाइलाइट और ऐसा कोई एक्सेंट जो केवल बाद के किसी फ़्रेम में दिखता हो।
नीचे दिया गया निदान क्रम अपनाएँ। ये दस्तावेज़ित व्यवहार पर आधारित समस्या-निवारण के शुरुआती बिंदु हैं, केवल दिखावट के आधार पर पक्के निष्कर्ष नहीं।
| आपको क्या दिखता है | पहले क्या जाँचें | उपयोगी तुलना |
|---|---|---|
| निर्यात के बाद सपाट फिल का RGB मान अलग है | पैलेट चयन और रंगों में कमी | निर्यात से पहले और बाद में अपारदर्शी अंदरूनी पिक्सेल का नमूना लें |
| पोज़ बदलने पर रंग बदलते हैं | क्या पैलेट में हर फ़्रेम के रंग शामिल हैं | कई पोज़ में एक ही अपेक्षित फिल की तुलना करें |
| केवल सिल्हूट के किनारे पर हल्की या गहरी आभा है | आंशिक पारदर्शिता और मैट सेटिंग | हल्की और गहरी, दोनों पृष्ठभूमियों पर पूर्वावलोकन करें |
| अलग-अलग ऐप्लिकेशन में GIF अलग दिखता है | रंग प्रोफ़ाइल की व्याख्या और डिस्प्ले सेटिंग | GIF को स्रोत एडिटर में दोबारा खोलें और मानों की तुलना करें |
| ठोस रंग वाले क्षेत्रों के भीतर नए बिंदु दिखते हैं | निर्यात डिथरिंग | डिथरिंग बंद करके एक और प्रति निर्यात करें |
तुलना समान रूप से रेंडर किए गए फ़्रेमों की करें, कैरेक्टर के हिलने के बाद कैनवस के उसी निर्देशांक पर मौजूद असंबंधित पिक्सेलों की नहीं। दिखावट जाँचते समय पृष्ठभूमि और ज़ूम एक जैसे रखें। लिखें कि RGB संख्याएँ बदलीं, दिखावट बदली या दोनों; अगला कदम इसी अंतर पर निर्भर करता है।
ऐसा एक पैलेट बनाएँ जिसमें पूरा एनिमेशन समा जाए
अगर कैरेक्टर एकसमान रंगों के आधार पर बनाया गया है, तो हर पोज़ को कवर करने वाला एक सोच-समझकर बनाया गया पैलेट इस्तेमाल करें। उसमें वे रंग भी शामिल करें जो केवल गति के दौरान दिखते हैं, जैसे चेहरे का दूसरा भाव, किसी एक्सेसरी का हाइलाइट या नीचे की सतह का अलग शेड। केवल शुरुआती फ़्रेम से बनाया गया पैलेट इन्हें छोड़ सकता है।
यह कार्यप्रवाह संबंधी सलाह है, हर GIF के लिए वैश्विक पैलेट की अनिवार्यता नहीं। फ़ॉर्मैट में स्थानीय पैलेट भी मान्य हैं। साझा पैलेट का लाभ यह है कि आप रंगों के एक निर्धारित समूह की जाँच कर सकते हैं और देख सकते हैं कि हर फ़्रेम उसमें फिट बैठता है या नहीं।
Aseprite में, निर्यात प्रति को Indexed में बदलने से पहले RGB मोड में आर्टवर्क जाँचें। Indexed पिक्सेल पैलेट प्रविष्टियों का संदर्भ देते हैं, और किसी प्रविष्टि को संपादित करने से उसे संदर्भित करने वाले सभी पिक्सेल बदल जाते हैं। पारदर्शी लेयरों के लिए एक निर्धारित पारदर्शी इंडेक्स भी चाहिए, जो आम तौर पर इंडेक्स 0 होता है। देखें Aseprite का रंग मोड दस्तावेज़।
एक साझा तालिका वाले पारदर्शी GIF के लिए, अधिकतम 255 अपारदर्शी रंग और एक पारदर्शी प्रविष्टि रखें। यह तालिका की 256 प्रविष्टियों की क्षमता और पारदर्शिता के लिए GIF द्वारा पैलेट इंडेक्स के उपयोग पर आधारित है। अपारदर्शी एनिमेशन में दिखाई देने वाले रंगों के लिए सभी 256 प्रविष्टियाँ इस्तेमाल की जा सकती हैं। देखें GIF89a में रंग तालिका और पारदर्शिता की परिभाषाएँ।
उदाहरण के लिए, मान लें कि आपके पूरे एनिमेशन में 24 अलग-अलग अपारदर्शी रंग हैं। पारदर्शी प्रविष्टि जोड़ने पर कुल 25 प्रविष्टियाँ होंगी, इसलिए पैलेट की क्षमता पर्याप्त है। इससे यह साबित नहीं होता कि निर्यातक ने ठीक उन्हीं 24 रंगों को चुना है: परिणामी तालिका देखें और संदर्भ पिक्सेलों के नमूने लें। अगर कोई हाइलाइट गायब है, तो दोबारा रूपांतरण करने से पहले पैलेट ठीक करें।
रंग कम करने से पहले रंग प्रोफ़ाइल जाँचें
रंग प्रोफ़ाइल बताती हैं कि RGB मानों की व्याख्या कैसे की जानी चाहिए। Aseprite के दस्तावेज़ में sRGB को इंटरनेट छवियों के लिए आम तौर पर इस्तेमाल होने वाला रंग स्थान बताया गया है और रंग प्रबंधन के नियंत्रण Edit > Preferences > Color में दिए गए हैं। सामान्य वेब पर देखने के लिए बनाए गए एनिमेशन की निर्यात प्रति को sRGB में तैयार करना एक व्यावहारिक शुरुआत है। देखें Aseprite का रंग प्रोफ़ाइल दस्तावेज़।
अगर आपका स्रोत किसी दूसरी ज्ञात प्रोफ़ाइल का उपयोग करता है, तो Convert और Assign के बीच का अंतर समझें। Aseprite के Sprite > Properties डायलॉग में Assign पिक्सेल मानों को बनाए रखता है और उनकी व्याख्या बदलता है। Convert रंग स्थानों के बीच पिक्सेल मानों को समायोजित करता है, ताकि रूपांतरण की क्षमता के अनुसार दिखावट यथासंभव बनी रहे। इन दोनों कार्रवाइयों का वर्णन स्प्राइट गुण में है।
ज़रूरी प्रोफ़ाइल रूपांतरण निर्यात पैलेट को अंतिम रूप देने से पहले करें, फिर संदर्भ रंगों के नए नमूने लें। ऐसा न करने पर RGB मानों का जानबूझकर किया गया रूपांतरण बाद में GIF निर्यात की त्रुटि समझा जा सकता है। अगर स्रोत प्रोफ़ाइल अज्ञात है, तो बार-बार अलग-अलग प्रोफ़ाइल असाइन करने से पहले तय करें कि मूल आर्टवर्क की व्याख्या कैसे की जानी थी।
सिल्हूट निर्यात करने से पहले पारदर्शिता का समाधान करें
GIF पारदर्शिता एक पैलेट इंडेक्स को चिह्नित करती है, जिसके पिक्सेल मौजूदा डिस्प्ले को अपरिवर्तित छोड़ते हैं; यह हर पिक्सेल के लिए अल्फ़ा मानों की अलग-अलग श्रेणी संग्रहीत नहीं करती। इसलिए, कैरेक्टर के आंशिक रूप से पारदर्शी किनारों के लिए निर्यात से पहले स्पष्ट निर्णय ज़रूरी है। इस व्यवहार का आधार GIF89a विनिर्देश में परिभाषित है।
तेज़ किनारों वाली पिक्सेल आर्ट के लिए, आउटलाइन जाँचें और निर्यात प्रति में अनचाही आंशिक अपारदर्शिता हटाएँ। हर इच्छित किनारे वाले पिक्सेल को पूरी तरह अपारदर्शी और हर खाली पिक्सेल को पूरी तरह पारदर्शी रखें। इससे सिल्हूट रूपांतरण का नतीजा बनने के बजाय ड्रॉइंग का सोच-समझकर तय किया गया हिस्सा रहता है।
अगर कैरेक्टर के किनारे जानबूझकर मुलायम हैं, तो निर्यात से पहले पृष्ठभूमि का तरीका चुनें। Adobe बताता है कि मैट सेटिंग आंशिक रूप से पारदर्शी पिक्सेलों को चुने हुए रंग के साथ मिलाती हैं; किसी जानी-पहचानी ठोस पृष्ठभूमि से मैट का रंग मेल कराने पर किनारे उसमें घुल सकते हैं। एक पृष्ठभूमि के लिए तैयार किया गया मैट दूसरी पृष्ठभूमि पर दिख सकता है। देखें पारदर्शिता और मैट पर Adobe Animate की सलाह।
निर्यात किए गए किनारे का हल्की और गहरी पृष्ठभूमियों पर पूर्वावलोकन करें। अगर अंदरूनी रंग मेल खाते हैं, लेकिन किनारे की आभा साफ़ तौर पर बदलती है, तो बॉडी पैलेट दोबारा बनाने से पहले अपारदर्शिता और मैट सेटिंग पर लौटें।
ऐसी सेटिंग चुनें जो सोच-समझकर तय किए गए पिक्सेल रंग बनाए रखें
सपाट रंग वाली पिक्सेल आर्ट के लिए शुरुआत में निर्यात डिथरिंग बंद रखें। Adobe बताता है कि डिथरिंग उपलब्ध न होने वाले रंगों का आभास देता है और मुख्यतः ठोस रंगों वाली छवियाँ इसके बिना अच्छी दिख सकती हैं। ग्रेडिएंट के लिए अलग समझौता करना पड़ सकता है। जहाँ विकल्प उपलब्ध हो, Web Snap भी बंद करें: यह जानबूझकर रंगों को वेब पैलेट के मिलते-जुलते रंगों की ओर बदलता है। देखें GIF ऑप्टिमाइज़ेशन के Adobe Animate विकल्प।
इसे शुरुआती सेटिंग मानें, फिर नतीजा जाँचें। अगर डिथरिंग बंद करने पर बदले गए रंगों के बड़े हिस्से दिखते हैं, तो असमानता पर तुरंत पैटर्न चढ़ाने के बजाय पैलेट में छूटे रंग जोड़ें। जानबूझकर बनाई गई पिक्सेल टेक्सचर को रूपांतरण के दौरान जोड़ी गई अतिरिक्त डिथरिंग से अलग रखें।
अगर निर्यातक में सटीक रंगों को सुरक्षित रखने का विकल्प हो, तो उसकी शर्तें जाँचें। Photoshop का दस्तावेज़ित preserveExactColors विकल्प रंग तालिका में पहले से मौजूद रंगों को डिफ्यूज़न डिथरिंग से बचाता है; यह तालिका में छूटे रंग नहीं जोड़ता। Adobe का GIF सहेजने के विकल्पों का संदर्भ देखें।
GIF को दोबारा खोलें और हर पोज़ जाँचें
निर्यात के बाद GIF को नए दस्तावेज़ के रूप में खोलें। केवल निर्यात डायलॉग के पूर्वावलोकन पर भरोसा न करें। Aseprite के दस्तावेज़ में GIF खोलने और उसके फ़्रेमों को PNG अनुक्रम के रूप में सहेजने का तरीका दिया गया है, जिससे अलग-अलग फ़्रेमों की जाँच का एक और रास्ता मिलता है। देखें Aseprite FAQ।
अंतिम जाँच इस तरह करें:
- तैयार निर्यात प्रति और दोबारा खोले गए GIF में संदर्भ रंगों की तुलना करें।
- उन सभी फ़्रेमों को जाँचें जिनमें ऐसा रंग है जो शुरुआती पोज़ में नहीं था।
- अपारदर्शी अंदरूनी पिक्सेलों को पारदर्शी किनारों से अलग जाँचें।
- पूरा लूप चलाएँ और फिल या हाइलाइट में अनचाहे बदलाव देखें।
- GIF का उसके तय आकार में और तय पृष्ठभूमि पर पूर्वावलोकन करें।
अगर अपारदर्शी फिल का RGB मान अलग है, तो पैलेट मैपिंग या प्रोफ़ाइल रूपांतरण पर लौटें। अगर मान मेल खाता है, लेकिन अलग-अलग ऐप्लिकेशन में दिखावट बदलती है, तो दोबारा पेंट करने से पहले डिस्प्ले की व्याख्या जाँचें। हर परीक्षण निर्यात में एक ही सेटिंग बदलें, ताकि पता चल सके कि किस बदलाव से मदद मिली।
संपादन योग्य मास्टर, तैयार निर्यात प्रति और अंतिम GIF को अलग-अलग रखें। बार-बार एक जैसा निर्यात पाने की प्रक्रिया ज्ञात स्रोत रंगों से शुरू होती है, पैलेट और पारदर्शिता के निर्णय स्पष्ट करती है और फ़ाइल को दोबारा खोलकर तुलना करने पर समाप्त होती है। इससे कैरेक्टर की इच्छित दिखावट बनाए रखने और बाकी किसी भी समझौते की पहचान करने का ठोस तरीका मिलता है।
