मैं एनिमल क्रॉसिंग की तरह "गिरते हुए" 3 डी इलाके को कैसे बना सकता हूं?


15

एनिमल क्रॉसिंग में दुनिया के नक्शे को स्क्रॉल करने का एक अनूठा तरीका है: जब चरित्र नीचे जाता है, तो दुनिया ऊपर और ऊपर से घूमती है, जैसे कि यह एक कार्डबोर्ड ट्यूब से चिपका हुआ है:

पशु क्रॉसिंग सिलेंडर दुनिया

यह वीडियो दिखाता है कि यह कैसे चलता है।

मैं यह प्रभाव कैसे बना सकता हूं?


1
मुझे एक प्रभाव की तरह नहीं दिखता है, यह एक बहुत ही सरल 3 डी दुनिया की तरह दिखता है जो कैमरा अभी पीछा कर रहा है।
जेम्स

गेम को हैक करने से एक टकराव की गड़बड़ पैदा हो सकती है जो आपको महासागर में चलने देती है जहां दुनिया समाप्त होती है। आप दुनिया के किनारों को दुनिया के किनारे से बाहर खालीपन में "घुमावदार पीठ" के रूप में देख सकते हैं। यहाँ वीडियो
एको

जवाबों:


6

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


+1 क्योंकि यह वह तरीका है जिससे मैं यह करूंगा। हालाँकि, आप स्पष्ट करना चाहते हैं कि 'गहराई' से आपका क्या मतलब है। यह कैमरे से दूरी, या चरित्र से दूरी हो सकती है। मुझे लगता है कि दोनों के साथ प्रयोग करना अच्छा होगा।
DaleyPaley

क्षमा करें, मैं पार्टी में देर से आया हूं - जैसे 6 साल देर से - लेकिन एसी मामले में 'गहराई' की गणना कैमरे से दूरी के आधार पर की जाती है ... लेकिन जैसा कि कैमरा स्थिति चरित्र की स्थिति पर आधारित है, सब कुछ तरह का है जुड़े हुए।
lvictorino

5

ऐसा लगता है कि यह सिर्फ एक "सपाट दुनिया" ले रहा है और बेलनाकार निर्देशांक की मैपिंग कर रहा है । अनिवार्य रूप से एक सिलेंडर पर दुनिया लपेटकर। मैंने एक सपाट दुनिया के साथ कुछ ऐसा ही किया, लेकिन मैंने इसे एक गोले पर लपेटा:

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

जिस तरह से मैंने इसे एक गोले के लिए किया है वह उसी तरह है जैसे आप इसे सिलेंडर के लिए करते हैं। अपनी दुनिया के लिए एक उपयुक्त त्रिज्या (बेलनाकार निर्देशांक में ρ या "rho") चुनें। प्रत्येक शीर्ष के लिए, अपनी दुनिया के XZ निर्देशांक लें (Y ऊँचाई मानते हुए), फिर XZ और त्रिज्या प्लस Y का उपयोग करते हुए बेलनाकार निर्देशांक के लिए गुप्त। यदि आप Y नहीं जोड़ते हैं, तो आपको एक फ्लैट सिलेंडर मिलेगा। फिर कार्टेसियन निर्देशांक में वापस कन्वर्ट करने के लिए खेल में आकर्षित करते हैं।


3
उल्लेख करने के लिए एक और बात, पशु क्रॉसिंग में दुनिया का वाई आयाम सिलेंडर की परिधि से बहुत बड़ा है (बस इसे नेत्रगोलक करके, क्योंकि क्षितिज रेखा बहुत करीब है)। इसलिए दुनिया के नक्शे का कुछ हिस्सा केवल चरित्र के सबसे करीब के क्षेत्रों में काट लिया जाता है और उस फसली क्षेत्र को पूरे सिलेंडर के चारों ओर लपेट दिया जाता है। यह केवल दृश्य भागों के लिए 2 डी टाइल-आधारित मानचित्र को क्रॉप करने के समान है।
क्रिस सी.पी.

बहुत बढ़िया बिंदु। मैं कल्पना करता हूं कि दुनिया को आवश्यकतानुसार लोड / अनलोड करके मेमोरी फुटप्रिंट को छोटा रखने के लिए भी इस्तेमाल किया जा सकता है।
MichaelHouse

5

आप एक योजनाबद्ध दुनिया से, एक बेलनाकार से जाना चाहते हैं।

एक्स अक्ष के चारों ओर एक रोटेशन (सजातीय निर्देशांक में) इस तरह दिखता है:

     | 1   0   0   0 |
Rx = | 0  ca  -sa  0 |
     | 0  sa   ca  0 |
     | 0   0    0  1 |

कहाँ पे:

ca = cos(angle) and sa = sin(angle)

कोण की गणना करने के लिए, छवि को देखें। पीआई / 2 को रद्द कर दिया जाता है और आपको छोड़ दिया जाता है:

angle = offset_from_character.z - radius

इसके अलावा, छवि को देखें। अनुमानित बिंदु का कोण चरित्र से क्षैतिज दूरी पर निर्भर है, गोले से दूरी ऊर्ध्वाधर पर निर्भर है।

new_position = character_position - vec3(0,radius,0) + Rx * vec3(0,radius+_old_position.y,0)

क्षितिज के ऊपर आने वाली चीजों को अवश्य लें, अन्यथा पूरी दुनिया घूम जाएगी।

अस्वीकरण: मैंने इसका परीक्षण नहीं किया है और मैं कोई गणित विशेषज्ञ नहीं हूं, लेकिन इसका उत्तर कुछ इस तरह है। यदि मेरी बात गलत है, तो कोई इसे ठीक कर दे।

गोलाकार दुनिया

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