गेम डिजाइनर कंपन पैटर्न कैसे बनाते हैं?


13

मैं कंसोल कंट्रोलर्स (PS4 कंट्रोलर के लिए, अगर यह एक अंतर बनाता है) के लिए कंपन पैटर्न बनाने और लागू करने के बारे में उत्सुक हूं।

देरी और मोटर गति पैरामीटर सही है? लेकिन हम भी बाएं मोटर से दाएं तक फीका कर सकते हैं, या उन्हें एक साथ काम कर सकते हैं ...।

क्या उन पैटर्नों को बनाने का एक मानकीकृत तरीका है?

उदाहरण के लिए, मैंने उन्हें एक ऑडियो एडिटर में स्टीरियो wav ऑडियो के साथ बनाने और मेरे कोड में wav फाइल को पढ़ने के बारे में सोचा ताकि उन्हें देरी और गति में परिवर्तित किया जा सके।

गेमिंग उद्योग में यह कैसे किया जाता है?


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

आपके पास रंबल पर सटीक नियंत्रण नहीं है। इसके अलावा, एक ड्यूलशॉक में, बाएं रंबल भारी है और दायां एक हल्का है, इसलिए आपको बाईं ओर एक से कम आवृत्ति मिलती है। (मैं बाएँ / दाएँ पिछड़े हो सकता है, लेकिन आप विचार मिलता है)।
आलमो

@Almo निंटेंडो के एचडी रंबल सिस्टम के बारे में क्या। आप निश्चित रूप से उस पर नियंत्रण के कुछ रूप हैं
Bálint

जिससे यह सवाल बहुत व्यापक हो जाएगा। मैं वास्तव में उनके सिस्टम के बारे में नहीं जानता।
आलमो

1
@DMGregory जिन ऑडियो इंजनों के बारे में मुझे पता है, वे केवल एक ही ट्रिगर, लिफ़ाफ़े इत्यादि का उपयोग करते हैं, न कि ऑडियो तरंगों का उपयोग करें। जैसे अल्मो कहते हैं, आपके पास वास्तव में एपीआई स्तर पर नियंत्रण का स्तर नहीं है। मैं कल्पना नहीं कर सकता कि निंटेंडो की प्रणाली बहुत अलग है - आप ऐसी उच्च आवृत्ति पर किसी भी रंबल सिस्टम को अपडेट नहीं करना चाहेंगे, जहां वास्तविक ऑडियो डेटा एक अच्छा विकल्प था।
रिचर्ड बायरन

जवाबों:


8

PS4 डुअलशॉक कंट्रोलर में लेफ्ट और राइट रंबल पैक के लिए 1 बाइट वैल्यू है, इसलिए यह मूल रूप से 8 बिट म्यूजिक की तरह काम करता है।

इनमें से अधिकांश एक एनडीए के पीछे हैं, इसलिए इस बारे में कोई भी जानकारी प्राप्त करना बहुत कठिन है (ऊपर की जानकारी भी प्राप्त करना कठिन था, मैंने केवल नोड के लिए तीसरे पक्ष के एसडीके से इसका पता लगाया था)। ये वे संकेत हैं जिन्हें मैंने एक साथ रखा है:

प्रक्रिया का शाब्दिक अर्थ है 1 बाइट स्टीरियो संगीत बनाना (और यह माना जाता है कि एक संगीत कलाकार द्वारा बनाया गया है)। इसमें कंप्यूटर के लिए PS4 नियंत्रक को जोड़ने और रंबल पैटर्न बनाने के लिए एक प्रोग्राम का उपयोग करना शामिल है। वे अनुमान लगाने के आधार पर एक बनाते हैं, फिर इसे चलाते हैं, फिर इसे मोड़ते हैं और इन चरणों को दोहराते हैं जब तक कि पैटर्न अच्छा नहीं लगता।

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

PS4 SDK भी कुछ पूर्वनिर्धारित पैटर्न के साथ आता है। कुछ उदाहरण हैं: एक आरी का पैटर्न (लगातार बढ़ रहा है, फिर 255 से 0 तक जा रहा है), एक साइनस लहर और त्रिकोण (यह 255 रैखिक तक बढ़ जाता है, फिर नीचे 0 रैखिक तक)।

मुझे अन्य नियंत्रकों के बारे में कोई विवरण नहीं मिला (विशेष रूप से स्विच की एचडी गड़गड़ाहट, यहां तक ​​कि पेटेंट का वर्णन नहीं है कि यह कैसे काम करता है)। लेकिन वे शायद अधिक सटीक रंबल पैक के साथ एक समान दृष्टिकोण का उपयोग कर रहे हैं।

सूत्रों का कहना है:


मुझे यह लेख थोड़ी देर पहले मिला था , जो नियंत्रक को आगे और पीछे संचार के लिए रिपोर्ट संरचना देता है , जिसमें रंबल चैनलों के बाइट ऑफ़सेट और उन्हें नियंत्रित करने वाले ध्वज शामिल हैं। यह सोनी के स्वयं के प्रलेखन और एपीआई तक पहुंच के बिना सार्वजनिक इंटरनेट पर सबसे व्यापक उपलब्ध हो सकता है।
DMGregory

@DMGregory क्या आप बुरा मानेंगी यदि मैं उसे किसी स्रोत अनुभाग में जोड़ दूं?
बैलिंट

कृपया कीजिए। :) मैंने इसे उपयोग की उम्मीद साझा की।
DMGregory

4

कोई मानकीकृत तरीका नहीं है।

विभिन्न उपकरणों में अलग-अलग रंबल क्षमताएं और सीमाएं हैं।

उपकरणों के विशाल बहुमत वास्तविक "बल प्रतिक्रिया" का समर्थन नहीं करते हैं (जैसे: एक स्टीयरिंग व्हील जब एक अंकुश / गड्ढे को मारते हैं, तो प्रोग्रामर को एक विशिष्ट कोण पर वापस धकेलने की अनुमति होगी) लेकिन बस कुछ अनियंत्रित / मनमाना दिशा में गड़गड़ाहट।

इसलिए MSDN / DirectX और अन्य API पर उल्लिखित अधिकांश फोर्स फीडबैक फीचर्स ने वास्तव में कभी भी उपयोगकर्ता बाजार पर अभ्यास नहीं किया है या "स्मार्ट" नियंत्रण (लिफाफा, दोहराना, आदि) के रूप में ऐसे खराब और / या गैर-पोर्टेबल कार्यान्वयन किए हैं। यह इतना बेकार है कि व्यवहार में डेवलपर्स अक्सर अपने स्वयं के प्रभाव कार्यान्वयन के साथ सीधे / बंद नियंत्रण का उपयोग करने के लिए मजबूर होते हैं।

अधिक उन्नत डिवाइस जो सर्वो-नियंत्रित बल प्रतिक्रिया की अनुमति देते हैं, उन्हें कस्टम एपीआई की आवश्यकता होती है क्योंकि जेनेरिक इनपुट एपीआई आवश्यक मापदंडों (सटीक कोण, सटीक बल, सीमा आदि) का समर्थन नहीं करते हैं।

वीआर फीलिंग-गल्र्स जैसी उभरती हुई तकनीकों को मिक्स में जोड़ना उन जेनेरिक एपीआई को और भी ज्यादा कम कर रहा है।


सबसे आम कार्यान्वयन एक असंतुलित भार के साथ दो डीसी मोटर्स के साथ है, एक को दूसरे की तुलना में भारी वजन और बिना सटीक गति नियंत्रण के साथ।

कम से कम आप उन पर नियंत्रण / बंद है और कुछ सीमित PWM शक्ति नियंत्रण कर सकते हैं, लेकिन सटीक गति नियंत्रण नहीं। आप नहीं जानते कि वास्तव में गति और परिणामी कंपन क्या होगा। विभिन्न नियंत्रकों में अलग-अलग मोटर और भार होते हैं जो एक ही सेटिंग के लिए अलग-अलग गति से चलेंगे।

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

नियंत्रकों को अक्सर प्रति फ्रेम एक बार अपडेट किया जाता है जो आपको लगभग 20 हर्ट्ज से 100 हर्ट्ज अपडेट आवृत्ति तक देता है। यह आपके PWM नियंत्रण के रिज़ॉल्यूशन को सीमित करता है क्योंकि आप नहीं चाहते कि मोटर्स सबसे कम सेटिंग में स्टाल करें। और आपको पता नहीं है कि अंत उपयोगकर्ता नियंत्रक की मोटरें स्टालिंग (स्टॉपिंग) से पहले कितनी कम जा सकती हैं, इसलिए आपको एक अच्छे सुरक्षा मार्जिन की आवश्यकता होती है।

कुछ सिस्टम आवश्यकताओं ने आपके साथ उनके साथ क्या किया जा सकता है, इस पर और सीमा लगा दी।

मोबाइल उपकरणों में आमतौर पर केवल 1 कंपन मोटर होती है और वजन और धीमी अद्यतन दर के आकार से कम जड़ता के कारण PWM संभव नहीं हो सकता है। सिस्टम दुरुपयोग को रोकने के लिए इसे आगे फ़िल्टर कर सकता है या शायद क्षति (पावर ड्राइवर ट्रांजिस्टर सीमा और प्रेरण स्पाइक) या बस एक बहुत धीमी गति से GPIO सबसिस्टम।

मोबाइल पर आप सीमित हो सकते हैं या अपने आप को PWM के बिना "मोटे तौर पर X * 50 मिलीसेकंड के लिए कंपन" तक सीमित करना चाहते हैं।

कुछ नए उपकरणों और नियंत्रकों में एक सॉलोनॉइड होता है जो स्पीकर की तरह कम नमूना दर ऑडियो तरंग द्वारा संचालित होता है। ये आपको अधिक नियंत्रण देते हैं लेकिन अधिक सामान्य नियंत्रकों से पूरी तरह से अलग होते हैं।


ये सभी मतभेद सार कंपन व्यवस्था करने के लिए आप चाहते हो सकता है की एक गोली मार और भूल जाते हैं फैशन में नाम से उच्च स्तरीय वृहद प्रभाव की एक सीमित संख्या खेलने के लिए: PlayVibration(player, "Got Loot");, PlayVibration(player, "Heavy Fall");, StopAllVibrationFor(player);, ...

फिर आपको प्रत्येक स्तर पर व्यक्तिगत रूप से अनुकूलित कम-स्तरीय कंपन प्रभाव और कंपन नियंत्रण कोड बनाना होगा ।

यहां तक ​​कि एक संगीत गेम के PlayVibrationलिए हर बीट के लिए एक-शॉट को कॉल करना आसान होता है जब गेम को रोकना और एक समय-समय पर स्मार्ट आवधिक प्रभाव जनरेटर को फिर से सिंक्रनाइज़ करने के मुद्दों को नियंत्रित करना।

जबकि एक वास्तविक सोलनॉइड-चालित रंबल वाले उपकरणों को एक ऑडियो डिवाइस की तरह माना जा सकता है और बैटरी की चिंताओं के कारण ऑडियो एपीआई का उपयोग किया जा सकता है, यह सिस्टम के नियमों का पालन कर सकता है यदि सोलनॉइड लगातार संचालित / सक्रिय है । "पावर लेवल 0" "सोलेनॉइड ऑफ़" के समान नहीं हो सकता है, तब भी विशेष देखभाल की आवश्यकता होती है।


3

विंडोज गेम प्रोग्रामिंग गुरु के ट्रिक्स में आंद्रे लामोथ से:

इन उपकरणों को प्रोग्रामिंग बहुत जटिल है। न केवल बल, वसंत और गति की एक अच्छी समझ है, बल्कि उपकरणों और बलों की घटनाओं, या प्रभावों का संगीत नोटों से बहुत गहरा संबंध है। यही है, उनके पास एक लिफाफा हो सकता है जो बलों को नियंत्रित करता है क्योंकि वे जॉयस्टिक पर विभिन्न मोटर्स और एक्चुएटर पर लागू होते हैं। इस प्रकार, दर, आवृत्ति, समय, और इसी तरह के मूल्य सभी उपयोग और प्रोग्रामिंग बल प्रतिक्रिया में एक भूमिका निभाते हैं।

जबकि वह पाठ पुराना है, लेकिन बल प्रतिक्रिया के लिए MSDN के माध्यम से एक त्वरित खोज से पता चलता है कि जिन अवधारणाओं का उल्लेख किया गया है, वे बहुत अधिक नहीं बदले हैं; यहां फोर्स के फीडबैक के बेसिक कॉन्सेप्ट में शामिल विषयों का सारांश दिया गया है :

  • निरंतर बल: एक ही दिशा में एक स्थिर बल
  • रैंप बल: एक ऐसा बल जो तीव्रता में बढ़ता या घटता है।
  • आवधिक प्रभाव: एक बल जो परिभाषित तरंग पैटर्न के अनुसार स्पंदित होता है।
  • स्थिति: एक अक्ष के साथ गति या स्थिति की प्रतिक्रिया।
  • लिफाफा: एक लिफाफा एक हमले के मूल्य और एक फीका मूल्य को परिभाषित करता है, जो प्रभाव की शुरुआत और समाप्ति परिमाण को संशोधित करता है।
  • ऑफसेट: उस राशि को परिभाषित करता है जिसके द्वारा तरंग को आधार स्तर से ऊपर या नीचे स्थानांतरित किया जाता है।
  • वेतनमान: एक डिवाइस के लिए सभी प्रभावों के लिए एक एकल लाभ मूल्य लागू किया जा सकता है।

PS4 के संदर्भ में, केवल एक चीज जो मैंने उठाई वह थी कुछ अवास्तविक इंजन 4 प्रलेखन , जो बताता है:

ये (पहचानकर्ता) मंच विशिष्ट कार्यान्वयन के अनुसार मैप किए जाएंगे। उदाहरण के लिए, PS4 केवल XXX_LARGE चैनलों को सुनता है और बाकी को अनदेखा करता है, जबकि XBox One ट्रिगर मोटर्स के हैंडल मोटर्स और XXX_SMALL को XXX_LARGE को मैप कर सकता है। और iOS अपने सिंगल मोटर के लिए LEFT_SMALL मैप कर सकता है।

जैसा कि स्टीफन होकेनहुल का जवाब इंगित करता है, प्रत्येक प्लेटफ़ॉर्म अलग है। और जैसा कि GDSE चैट में सुझाया गया है कि PS4 बल फीडबैक API के लिए विवरण NDA प्रतिबंधित है।

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