रेट्रो-स्टाइल गेम में डायलॉग की पंक्तियों के बीच किसी कैरेक्टर के एक्सप्रेशन को कैसे बदलें
डायलॉग की पंक्तियों के बीच किसी कैरेक्टर के एक्सप्रेशन को बदलने के लिए, प्रत्येक एक्सप्रेशन के लिए एक मैचिंग स्प्राइट तैयार करें, और फिर उस पंक्ति से ठीक पहले कैरेक्टर की प्रदर्शित छवि को बदल दें जिसमें इसका उपयोग किया गया है। स्प्राइट की स्थिति और समग्र सिल्हूट को एक समान रखें ताकि सीन में कोई व्यवधान डाले बिना चेहरे का बदलाव स्पष्ट रूप से दिखे। Ren’Py में, सबसे सरल तरीका प्रत्येक एक्सप्रेशन को एक ही इमेज टैग देना और एक नए एक्सप्रेशन एट्रिब्यूट के साथ फिर से show का उपयोग करना है; अन्य इंजनों में भी सैद्धांतिक रूप से यही क्रम काम करता है, भले ही उनके कमांड अलग हों।
तय करें कि बदलाव किस वजह से ट्रिगर होना चाहिए
शुरुआत डायलॉग स्क्रिप्ट से करें, स्प्राइट शीट से नहीं। केवल उन्हीं पंक्तियों को चिह्नित करें जहाँ कैरेक्टर का एक्सप्रेशन इस तरह बदलता है जिसे खिलाड़ी को नोटिस करना चाहिए: एक नई प्रतिक्रिया, टोन में बदलाव, या न्यूट्रल स्थिति में लौटना। यदि हर पंक्ति पर चेहरा बदलता है, तो एक्सप्रेशन का कोई खास महत्व नहीं रह जाता है और आर्टवर्क का काम तेजी से बढ़ जाता है।
प्रत्येक चिह्नित पंक्ति के लिए, लक्षित एक्सप्रेशन और उसे प्रदर्शित करने वाले स्प्राइट एसेट को लिख लें। न्यूट्रल, खुश, चिंतित और हैरान जैसा एक छोटा सा सेट कई सीन्स को कवर कर सकता है। वेरिएंट केवल तभी जोड़ें जब किसी विशिष्ट सीन को उनकी आवश्यकता हो। यह एक संपादकीय निर्णय है, न कि कोई इंजन नियम: सही सेट गेम के आर्ट और डायलॉग पर निर्भर करता है।
ऐसे एक्सप्रेशन स्प्राइट्स तैयार करें जो बिना किसी रुकावट के बदल सकें
हर एक्सप्रेशन के लिए एक ही कैरेक्टर फ्रेमिंग, स्केल और एंकर पॉइंट का उपयोग करें। यदि प्रत्येक इमेज एक पूर्ण स्प्राइट है, तो विभिन्न फ़ाइलों में आँखों, सिर और शरीर को संरेखित (अलाइन) करें ताकि इमेज बदलने पर कैरेक्टर उछलता हुआ न दिखे। जब स्प्राइट को किसी सीन के ऊपर दिखाना हो, तो बैकग्राउंड को पारदर्शी (ट्रांसपेरेंट) रखें।
पिक्सेल आर्ट के लिए, गेम के वास्तविक डिस्प्ले स्केल पर इमेज की जाँच करें। स्प्राइट्स बदलते समय एक पिक्सेल का खिसकना भी आसानी से नज़र आ सकता है, और रीस्केलिंग से पिक्सेल ग्रिड धुंधला या विकृत हो सकता है। प्रत्येक एक्सप्रेशन को समान डाइमेंशन पर एक्सपोर्ट करने और उसे सुसंगत फ़िल्टरिंग तथा स्केलिंग सेटिंग्स के साथ इम्पोर्ट करने को प्राथमिकता दें। ये व्यावहारिक प्रोडक्शन संबंधी जाँचें हैं; सटीक सेटिंग्स इंजन और प्रोजेक्ट पर निर्भर करती हैं।
अनुमान लगाने योग्य फ़ाइल या इमेज नाम चुनें, जैसे कि mira neutral और mira worried। Ren’Py में, इमेज नाम एक टैग और उसके बाद वैकल्पिक एट्रिब्यूट्स से बनते हैं; टैग उस कैरेक्टर इमेज की पहचान करता है जिसे एक नया show बदल सकता है। Ren’Py का इमेज दस्तावेज़ इस नामकरण और रिप्लेसमेंट के व्यवहार का वर्णन करता है।
Ren’Py में एक्सप्रेशन बदलें
एक इमेज टैग के साथ बोलने वाले (स्पीकर) को डिक्लेयर करें, फिर डायलॉग लाइनों पर एक्सप्रेशन एट्रिब्यूट्स का उपयोग करें। उदाहरण के लिए:
define m = Character("Mira", image="mira")
label scene:
show mira neutral
m "The door is open."
m worried "I thought I locked it."
m "Maybe the wind caught it."
यहाँ mira इमेज टैग है और neutral या worried एट्रिब्यूट है। चिंतित (worried) वाली पंक्ति प्रदर्शित कैरेक्टर इमेज को अपडेट करती है; अगली पंक्ति उसी एक्सप्रेशन को बनाए रखती है क्योंकि कोई नया एट्रिब्यूट निर्दिष्ट नहीं किया गया है। यदि स्क्रिप्ट में उसे स्पष्ट रूप से न्यूट्रल स्थिति में वापस लाना है, तो उस अंतिम पंक्ति पर m neutral "..." जोड़ें। Ren’Py का डायलॉग दस्तावेज़ समझाता है कि इमेज टैग के साथ परिभाषित कैरेक्टर, say स्टेटमेंट में इमेज एट्रिब्यूट्स प्राप्त कर सकता है, और जब इमेज पहले से प्रदर्शित हो रही हो, तो वे एट्रिब्यूट्स एक संबंधित show कमांड की तरह कार्य करते हैं। Ren’Py डायलॉग और इमेज एट्रिब्यूट्स
यदि आप स्क्रीन पर कैरेक्टर का पूरा स्प्राइट नहीं चाहते हैं, तो डायलॉग इंटरफ़ेस में पोर्ट्रेट एलिमेंट के साथ इसी विचार का उपयोग करें। इंजन को तब भी वर्तमान स्पीकर और एक्सप्रेशन को किसी इमेज से मैप करने के तरीके की आवश्यकता होती है; पोर्ट्रेट UI एक अलग नामकरण परंपरा या डेटा संरचना का उपयोग कर सकता है। Ren’Py सिंटैक्स को किसी अन्य इंजन में कॉपी करने से पहले चुने गए फ़्रेमवर्क के दस्तावेज़ों की जाँच कर लें।
तुरंत बदलाव (इंस्टेंट स्वैप) या ट्रांज़िशन चुनें
एक तुरंत बदलाव (इंस्टेंट स्वैप) क्रिस्प रेट्रो प्रस्तुति के लिए उपयुक्त होता है और एक्सप्रेशन के बदलाव को पंक्ति से निकटता से जोड़े रखता है। एक ट्रांज़िशन इस रिप्लेसमेंट को सहज (सॉफ्ट) बना सकता है, लेकिन इसका उपयोग केवल तभी करें जब गेम की विज़ुअल स्टाइल इसका समर्थन करती हो। एक तेज़ डिज़ॉल्व (dissolve) बदलाव को कम झटकेदार महसूस करा सकता है; एक लंबा डिज़ॉल्व नए एक्सप्रेशन के स्पष्ट दिखने के समय को टाल सकता है।
Ren’Py इमेज परिवर्तनों पर dissolve जैसे ट्रांज़िशन्स का समर्थन करता है। उदाहरण के लिए, show mira worried with dissolve प्रदर्शित छवि को बदलते समय एक डिज़ॉल्व लागू करता है। दस्तावेज़ में वर्णित डिफ़ॉल्ट dissolve में आधा सेकंड लगता है, जो तेज़ डायलॉग के लिए धीमा महसूस हो सकता है; संदर्भ के अनुसार पेसिंग का परीक्षण करें और यदि आवश्यक हो तो कम अवधि का कस्टम समय चुनें। Ren’Py ट्रांज़िशन दस्तावेज़
पिक्सेल आर्ट के लिए, गेम के अभीष्ट रिज़ॉल्यूशन पर ट्रांज़िशन की तुलना सीधे बदलाव से करें। डिज़ॉल्व बदलाव के दौरान पुराने और नए पिक्सेल को मिला देता है, जो जानबूझकर किए गए स्टेप्ड या तुरंत बदलाव की तुलना में धुंधला दिख सकता है। यह एक रनिंग सीन में जांचा जाने वाला स्टाइल निर्णय है, न कि ऐसा इफ़ेक्ट जिसे अपने आप जोड़ दिया जाना चाहिए।
चेहरा बदलते समय स्प्राइट को स्थिर रखें
अधिक आर्टवर्क जोड़ने से पहले, जाँचें कि क्या एक्सप्रेशन बदलने से लक्षित फीचर के अलावा कुछ और तो नहीं बदल रहा है। स्प्राइट की स्थिति, स्केल और सिल्हूट के लिए लगातार आने वाले फ़्रेमों या स्क्रीनशॉट की तुलना करें। यदि कैरेक्टर हिलता-डुलता (ट्विच करता) हुआ प्रतीत होता है, तो सोर्स इमेज को संरेखित करें या इंजन में उनके साझा पिवट या ओरिजिन को सही करें।
लेयरिंग और डायलॉग की टाइमिंग की भी जाँच करें। स्प्राइट बदलने से गलती से बैकग्राउंड नहीं हटना चाहिए, कैरेक्टर किसी अन्य इमेज के पीछे नहीं जाना चाहिए, या नई लाइन आने से पहले किसी अतिरिक्त प्लेयर इनपुट की आवश्यकता नहीं होनी चाहिए। Ren’Py में, show उसी टैग वाली इमेज को बदल देता है, जबकि hide आम तौर पर तब उपयोग होता है जब कोई कैरेक्टर सीन छोड़ता है; दस्तावेज़ विशेष रूप से यह सलाह देता है कि अलग-अलग चरणों में स्प्राइट को छिपाने और दिखाने के बजाय show के साथ भावनात्मक एक्सप्रेशन को बदलें। Ren’Py इमेज डिस्प्ले नियम
वास्तविक डायलॉग क्रम में बदलाव की जाँच करें
पहले बदलाव से कम से कम एक पंक्ति पहले से लेकर अगले एक्सप्रेशन बदलाव तक सीन को चलाकर देखें। पुष्टि करें कि चेहरा इच्छित पंक्ति पर अपडेट होता है, उसके बाद वैसा ही बना रहता है जैसा चाहा गया था, और न्यूट्रल स्थिति में तभी लौटता है जब स्क्रिप्ट ऐसा करने का निर्देश दे। यदि आप निर्णय नहीं ले पा रहे हैं, तो तुरंत और ट्रांज़िशन दोनों संस्करणों का परीक्षण करें।
गेम के लक्षित रिज़ॉल्यूशन पर और डायलॉग बॉक्स को दृश्यमान रखते हुए इस क्रम की समीक्षा करें। सुनिश्चित करें कि चेहरा ढका हुआ, कटा हुआ या पढ़ने में बहुत छोटा न हो। यदि बदलाव गलत दिखता है, तो इस क्रम में इसका निदान करें: स्क्रिप्ट के एक्सप्रेशन नाम को सत्यापित करें, पुष्टि करें कि मैचिंग इमेज मौजूद है और इंजन द्वारा पहचानी जा रही है, फिर संरेखण (अलाइनमेंट) और ट्रांज़िशन व्यवहार की जाँच करें। यह क्रम किसी गुम एसेट या नाम के बेमेल होने की समस्या को आर्ट-प्लेसमेंट की समस्या से अलग करता है।
तैयार सेटअप में प्रत्येक बदलाव उद्देश्यपूर्ण होना चाहिए: स्क्रिप्ट एक्सप्रेशन का नाम तय करती है, मैचिंग स्प्राइट कैरेक्टर के प्लेसमेंट को बनाए रखती है, और एक संक्षिप्त प्ले-थ्रू पुष्टि करता है कि बदलाव डायलॉग की गति के अनुसार सही ढंग से समझ में आ रहा है।
