वीडियो गेम में 3D मॉडल कैसे बनाए जाते हैं?


15

डिजाइन और प्रदर्शित खेलों में 3D मॉडल कैसे हैं? क्या यह सब कोड है? कागज पर खींचा, फिर एक 3 डी ग्राफिक्स सॉफ्टवेयर पर, फिर ... क्या?

बेशक, खेल प्रोग्रामर हर आकार के हर शिखर परिभाषित करेगा नहीं (/ वस्तु,) वे, तैयार किया जा करने के लिए सभी कोड में चाहते हैं (Direct3D या ओपन में है या नहीं।) तो, खेल है डिजाइनरों की तरह माया या, उपयोग करने के लिए उपकरण है मालिकाना 3 डी ग्राफिक्स की तरह कुछ वहाँ से बाहर सॉफ्टवेयर; वे उस सॉफ़्टवेयर में मॉडल को "ड्रा" करते हैं, जो भी प्रारूप में निर्यात करते हैं, फिर प्रोग्रामर इसे कोड के माध्यम से पार्स करते हैं और स्वचालित रूप से ऑब्जेक्ट / मॉडल के डिकोड / पार्स किए गए कच्चे कोने में प्रवेश करते हैं?

मैंने Googled बहुत किया है, लेकिन मुझे यह समझाने के लिए कुछ ठोस नहीं मिला कि पेशेवर वीडियो गेम के इस पहलू पर कैसे काम किया जाता है।


2
यहाँ कला प्रक्रिया का एक बहुत ही यथार्थवादी दस्तावेज है: Salvationprophecy.com/forum/viewtopic.php?f=4&t=413
नीला जादूगर

हम्म ... यह उत्तर देने के लिए बहुत व्यापक माना जा सकता है, या रचनात्मक नहीं है। लेकिन एक ही समय में किसी ऐसे व्यक्ति से पूछना उचित लगता है जिसने कभी भी गामदेव से संपर्क नहीं किया है और सीखना शुरू करना चाहता है, और इसे एक अच्छा जवाब दिया जा सकता है। इसलिए, निश्चित नहीं कि यह बंद होना चाहिए या नहीं।
लॉरेंट कौविदो

1
आमतौर पर मॉडल बनाने वाले लोगों को कलाकार कहा जाता है , न कि डिज़ाइनर : चरित्र कलाकार, पर्यावरण कलाकार, एनिमेटर ... गेम डिज़ाइनर वास्तविक गेम, उसके नियमों आदि को डिजाइन करने के बारे में अधिक है
लॉरेंट कौविदो

जवाबों:


16

मैंने जितने भी खेलों में काम किया है, एसेट क्रिएशन पाइपलाइन कुछ इस तरह है:

  1. अवधारणा कलाकार (स्तरों / पृष्ठभूमि / स्तर के मॉडल के लिए) या चरित्र कलाकार (मॉडल के लिए) पात्रों / स्तरों / आदि के लिए रेखाचित्र बनाएंगे। आमतौर पर क्रिएटिव डायरेक्टर / लीड आर्ट को कई विकल्प दिए जाते हैं ताकि यह तय किया जा सके कि उन्हें कौन सा बेहतर लगता है।
  2. जिस अवधारणा / चरित्र कला को मंजूरी दी गई है वह एक मॉडलर को संदर्भ के रूप में उपयोग करने के लिए दी गई है। कभी-कभी कला पर अतिरिक्त प्रोफ़ाइल / मोर्चा चरित्र कलाकार द्वारा मॉडलिंग प्रक्रिया के लिए एक क्लीनर फ्रेम या संदर्भ प्रदान करने के लिए किया जाता है। मैंने प्रत्यक्ष संदर्भ के रूप में 3 डी मैक्स / माया / आदि के भीतर अटक गई अवधारणा कला के साथ कई मॉडल देखा है।
  3. मॉडलर आमतौर पर मॉडल के लिए आधार बनावट उत्पन्न करते हैं, आमतौर पर रनटाइम के लिए सही shader सामग्री के साथ। शेडर्स का उपयोग गेम में मॉडल को प्रस्तुत करने के लिए किया जाता है, और इसमें विशिष्ट बनावट / uv / etc आवश्यकताएं हो सकती हैं जो मॉडलर या असाइन किए गए बनावट कलाकार द्वारा प्रदान की जानी चाहिए।
  4. यह स्तर डिज़ाइनर का काम होगा कि वह संपत्ति को "स्तर" बनाने के लिए एक साथ इकट्ठा करे।

    एक पूरे स्तर के लिए इसकी असामान्य ज्यामिति के एक टुकड़े के रूप में बनाया जाना है। अधिकांश स्तर टुकड़ों, या वर्गों से बने होते हैं। (जैसे: कुख्यात षट्भुज का एक सेट का इस्तेमाल किया "टाइल" http://www.gamasutra.com/php-bin/news_index.php?story=118581 और Skyrim (और कई अन्य) टुकड़ा एक साथ स्तर के लिए एक लेगो शैली दृष्टिकोण का उपयोग http : //www.gamasutra.com/blogs/JoelBurgess/20130501/191514/ )

    आमतौर पर इस प्रक्रिया में शामिल कुछ विवरणों का एक स्तर संपादक होता है, हालांकि कई गेमों ने 3 डी मॉडलर्स को "निर्मित संपादकों" के रूप में उपयोग किया है ताकि इन बनाई गई संपत्तियों को स्थापित किया जा सके।

  5. एक बार यह सब हो जाने के बाद, परिसंपत्तियों को आम तौर पर टूलचिन द्वारा संसाधित किया जाता है जो 3 डी मॉडलर अनुकूल फाइलों को गेम तैयार डेटा में बदल देता है जिसे सीधे रनटाइम में लोड किया जा सकता है।

    टूलचाइन्स (बिट जो कच्ची संपत्ति लेता है और उन्हें गेम तैयार डेटा में बदल देता है) अक्सर खेल के विकास में इंजीनियरिंग के सबसे जटिल टुकड़ों में से कुछ होते हैं। उन्हें कई अलग-अलग अनुप्रयोगों से बात करने की ज़रूरत है, कई अलग-अलग फ़ाइल स्वरूपों को समझना है, और यह भी समझना है कि डेटा को अधिक कुशल और तुरंत उपयोग करने योग्य प्रारूप में कैसे बदलना है। टूलचाइन्स आमतौर पर लाइटिंग प्री-पास, वर्टेक्स वेल्डिंग, एलओडी जेनरेशन वगैरह भी करते हैं। अक्सर एक बड़े एएए गेम के लिए पूरा डेटा सेट बनाने में बहुत लंबा समय लगेगा, अक्सर एक पूर्ण पुनर्निर्माण के लिए 8 घंटे से अधिक होता है। इसलिए टूलचिन में आमतौर पर पूरे पीसी में सभी पीसी में लोड को फैलाने के लिए वितरित प्रसंस्करण होता है।

    रनटाइम खेल ही है। निष्पादन योग्य जो आपके पीसी, या कंसोल पर चलता है। रनटाइम के अंदर एक सिस्टम होगा जिसे रिसोर्स मैनेजर कहा जाएगा। खेल के भीतर अन्य प्रणालियों द्वारा मांगी गई संपत्ति को लोड करना संसाधन प्रबंधक का काम है।

    उदाहरण: जब आप गेम लोड को एक स्तर में बताते हैं, तो स्तर का मेटाडेटा संसाधन प्रबंधक को यह सूची प्रदान करेगा कि स्तर प्रदर्शित करने के लिए किन परिसंपत्तियों को लोड करने की आवश्यकता है। इसी तरह, प्रत्येक एसेट में किसी भी बनावट, सामग्री या उप आस्तियों की एक सूची होगी, जिन्हें लोड करना आवश्यक है।

  6. एक बार सब कुछ वास्तव में स्मृति में लोड। खेल रेंडरर को दिखाई देने वाली चीजों को भेजेगा जो तब एपीआई के साथ बातचीत करेंगे जो वास्तव में स्क्रीन पर चीजों को आकर्षित करने के लिए उपयोग किया जाता है।

प्रोग्रामर (और कर सकते हैं) हाथ से मौखिक जानकारी उत्पन्न करते हैं। इसे आमतौर पर "तत्काल मोड रेंडरिंग" कहा जाता है। यह बहुत कुशल नहीं है, और केवल उन स्थितियों के लिए उपयोग किया जाता है जहां इसकी पूर्व-निर्मित, या shader जोड़ तोड़ डेटा का उपयोग करना संभव नहीं है। जैसे: UI रेंडरिंग, फुलस्क्रीन क्वाड्स।

आमतौर पर 99% ऑब्जेक्ट ऑनस्क्रीन "रिटायर्ड" मोड में प्रदान की गई पूर्व-निर्मित वर्टेक्स जानकारी होगी, जिसमें किसी भी हेरफेर की आवश्यकता होती है। जैसे: चमड़ी का एनीमेशन


7

यहाँ एक सरल जवाब है: वे माया या 3 डी मैक्स जैसे 3 डी ग्राफिक्स अनुप्रयोगों में यह सब करते हैं। पहले वे कुछ कांसेप्ट आर्ट्स (कागज पर) करते हैं, उनके अनुसार वे मॉडल, बनावट (फ़ोटोशॉप में या ऐसा ही कुछ) बनाते हैं। सरल एनिमेशन पूरे सॉफ्टवेयर में भी किए जाते हैं, अधिक जटिल एनिमेशन मोशन कैप्चर के माध्यम से किए जाते हैं और फिर आपके मॉडल पर मैप किए जाते हैं। एनीमेशन के लिए आप आमतौर पर कंकाल एनीमेशन का उपयोग करते हैं।

इन सभी डेटा को फ़ाइलों में सहेजा गया है।

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


1
मुझे लगता है कि अगले एक में द्रवित रूप से एक एनीमेशन को मॉर्फ करने के लिए कुछ प्रोग्रामिंग की आवश्यकता होती है, जब आप एक कूद के बीच में गोली मारते हैं तो यह अजीब नहीं लगता
थॉमस

3
@ थोमस, ब्लेंड पेड़। मुझे लगता है। लेकिन वे "ट्विनिंग" सिस्टम की तरह हैं जो गेम इंजन में एक एक्सटेंशन के रूप में निर्मित होते हैं। जरूरी नहीं कि 3 डी मॉडल के भीतर ही बनाया गया हो। वे मूल रूप से एनीमेशन डेटा को हाईजैक करते हैं और जादू की शक्तियों के साथ डेटा के बीच अंतर करते हैं।
सिदार

हाँ। ज़रूर। आपको लोड करने, पार्स करने और किसी तरह मॉडल का प्रतिनिधित्व करने की आवश्यकता है। इसके अलावा किसी तरह इसे स्क्रीन पर ड्रा करें। तो निश्चित रूप से - आपको एनीमेशन के बीच मिश्रण करना होगा। आप सामान्य रूप से कुछ व्युत्क्रम गतिज का उपयोग भी करते हैं, लेकिन यह अधिक विशिष्ट समस्याएं हैं।
zacharmarz

2
यदि केवल मिश्रण के पेड़ और एनीमेशन मॉर्फिंग "ट्विनिंग" के रूप में सरल थे। समस्याओं के इस एक विशिष्ट डोमेन से निपटने के लिए कई उच्च-स्तरीय महंगे मिडलवेयर समाधान हैं।
सीन मिडिलिच्ड

4

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

कई मामलों में, और कई मॉडल फ़ाइल स्वरूपों के लिए, कोडिंग पक्ष आपके लिए किया गया है। ड्राइंग कोड के साथ कुछ पाठ-आधारित मॉडल प्रारूप भी हैं, जो कि एक कोडर के लिए यह बहुत आसान बनाते हैं कि मॉडल का कोड में कैसे अनुवाद किया जा रहा है।

मैं वास्तव में इस कोड को लिखने वाला व्यक्ति कभी नहीं रहा, हालांकि, इसलिए यह संभव है कि मेरे स्पष्टीकरण के कुछ विवरण बंद हैं।


2

मैं एक खेल को एक साथ रखने की कोशिश करने के लिए अपने दम पर काम कर रहा हूं। मैं आपके द्वारा उपयोग किए जाने वाले कार्यक्रमों की एक सरल सूची दे सकता हूं।

मॉडलिंग: 3 डी कोट, मोडो

रिगिंग: मोडो

बनावट: GIMP, इंक्सस्केप

खेल इंजन: एकता

जाहिर है यह आवेदनों की एक छोटी सूची है, लेकिन मेरे लिए वे काम करते हैं और शौक और इंडी डेवलपर्स के लिए सस्ती हैं।


2
-1 उपयोग किए गए आवेदनों की सूची देने से प्रक्रिया का वर्णन नहीं होता है। यह प्रश्न विशिष्ट सॉफ़्टवेयर के बारे में नहीं है, यह इस बारे में है कि उन्हें कैसे बनाया जाता है, न कि केवल उसी चीज़ के साथ जो उन्होंने बनाया है।
MichaelHouse
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.