aframe
नियंत्रण (घटक)
खोज…
परिचय
लोगों को एक वीआर एप्लिकेशन में डुबोने के लिए नियंत्रक महत्वपूर्ण हैं। वीआर की क्षमता उनके बिना नहीं मिलती है, अर्थात् नियंत्रक जो छह डिग्री स्वतंत्रता (6DoF) प्रदान करते हैं। नियंत्रकों के साथ, लोग दृश्य के आसपास और बाहर तक पहुंच सकते हैं और अपने हाथों से वस्तुओं के साथ बातचीत कर सकते हैं।
ए-फ्रेम गेमपैड वेब एपीआई के माध्यम से अपने संबंधित WebVR ब्राउज़रों द्वारा समर्थित स्पेक्ट्रम के नियंत्रकों के लिए घटक प्रदान करता है। Vive, Oculus Touch, Daydream और GearVR नियंत्रकों के लिए घटक हैं।
टिप्पणियों
यह संभव है कि आप गेमपेडएक्सटेंशन को सक्षम करें। आप इस कदम का उपयोग कर सकते हैं:
- क्रोम पर: क्रोम पर ब्राउज़ करें
chrome://flags
- फ़ायरफ़ॉक्स पर: के
about:config
ब्राउज़ करेंabout:config
- IE पर: अपने डेस्कटॉप पर ग्रुप पॉलिसी एडिटर पर जाएं
- ओपेरा पर:
opera:config
लिए ब्राउज़ करेंopera:config
- किनारे पर: के
about:flags
ब्राउज़ करेंabout:flags
नियंत्रण था
ततैया नियंत्रण घटक डब्ल्यू , ए , एस और डी या तीर कीबोर्ड कुंजी के साथ एक इकाई को नियंत्रित करता है। wasd-controls
घटक आमतौर पर कैमरा घटक के साथ एक इकाई से जुड़ा होता है।
<a-entity camera look-controls wasd-controls></a-entity>
Azerty कीबोर्ड के लिए, आप Z , Q , S और D कुंजी का उपयोग कर सकते हैं
नियंत्रण देखो
देखो-नियंत्रण घटक:
- जब हम एक वीआर हेड-माउंटेड डिस्प्ले (एचएमडी) को घुमाते हैं, तो इकाई को घुमाता है।
- जब हम माउस को क्लिक करते हैं, तब इकाई घुमाती है।
- जब हम टचस्क्रीन को स्पर्श करते हैं, तब इकाई को घुमाता है।
लुक-कंट्रोल घटक का उपयोग आमतौर पर कैमरा घटक के साथ किया जाता है।
<a-entity camera look-controls></a-entity>
चेतावनियां
यदि आप लुक कंट्रोल के लिए अपना कंपोनेंट बनाना चाहते हैं, तो आपको एचएमडी-ट्रैकिंग बिट्स को अपने कंपोनेंट में कॉपी और पेस्ट करना होगा। भविष्य में, हमारे पास लोगों के लिए एक प्रणाली हो सकती है ताकि वे अधिक आसानी से अपना नियंत्रण बना सकें।
कर्सर में टकटकी लगाना
इसके लिए आपको अपने कैमरे में एक कर्सर कंपोनेंट जोड़ना होगा
<a-scene>
<a-camera>
<a-cursor></a-cursor>
<!-- Or <a-entity cursor></a-entity> -->
</a-camera>
</a-scene>
अधिक जानकारी आप कर्सर (घटक) विषय पर पा सकते हैं।
हाथ पर नियंत्रण
ए-फ़्रेम हाथ से नियंत्रण घटक के माध्यम से कई प्रकार के 6DoF नियंत्रकों (Vive, Oculus Touch) का समर्थन करने के लिए एक कार्यान्वयन प्रदान करता है। हाथ से नियंत्रण घटक मुख्य रूप से 6DoF नियंत्रकों के लिए है क्योंकि यह कमरे के पैमाने पर बातचीत जैसे कि वस्तुओं को हथियाने के लिए तैयार है। हाथ नियंत्रण घटक Vive और Oculus Touch नियंत्रकों दोनों के शीर्ष पर काम करता है:
वीव-नियंत्रण और ऑक्यूलस-टच-कंट्रोल दोनों घटक सेट करना
एक साधारण हाथ मॉडल के साथ नियंत्रक मॉडल को ओवरराइड करना
मैपिंग Vive-specific और Oculus टच-विशिष्ट इवेंट्स टू हैंड इवेंट्स एंड जेस्चर (जैसे, थंबडाउन और ट्रिगरडाउन टू थंब)
हाथ नियंत्रण घटक जोड़ने के लिए:
<a-entity hand-controls="left"></a-entity>
<a-entity hand-controls="right"></a-entity>
दुर्भाग्य से, अभी तक एक 3DoF नियंत्रक घटक नहीं है जो सभी प्रकार के 3DoF नियंत्रकों (यानी, Daydream, GearVR) को अच्छी तरह से सार करता है। हम एक कस्टम नियंत्रक बना सकते हैं जो दोनों नियंत्रकों के साथ काम करता है। यह कवर करना काफी आसान होगा क्योंकि 3DoF कंट्रोलर इंटरैक्शन के लिए ज्यादा संभावनाएं नहीं पेश करते हैं (यानी, टचपैड के साथ केवल रोटेशनल ट्रैकिंग)।
हैंड-कंट्रोल एनिमेटेड इशारों के साथ ट्रैक किए गए हाथों (एक निर्धारित मॉडल का उपयोग करके) देता है। हैंड-कंट्रोल वाइव-कंट्रोल और ऑक्यूलस-टच-कंट्रोल घटकों को लपेटता है, जो बदले में ट्रैक किए गए नियंत्रण घटक को लपेटता है। घटक अतिरिक्त घटनाओं को देता है और हाथ एनिमेशन और पोज को संभालता है।
<a-entity hand-controls="left"></a-entity>
<a-entity hand-controls="right"></a-entity>
ट्रैक किए गए नियंत्रण
ट्रैक किए गए नियंत्रण घटक ए-फ़्रेम का आधार नियंत्रक घटक है जो ए-फ़्रेम के सभी नियंत्रक घटकों के लिए नींव प्रदान करता है। ट्रैक-नियंत्रण घटक:
गेमपैड एपीआई से गेमपैड ऑब्जेक्ट को एक आईडी या उपसर्ग दिया गया है।
नियंत्रक गति को पढ़ने के लिए गेमपैड एपीआई से मुद्रा (स्थिति और अभिविन्यास) को लागू करता है।
गेमपैड वस्तु के बटन मूल्यों में परिवर्तन के लिए दिखता घटनाओं जब बटनों दबाया या छुआ और जब धुरी और टचपैड बदल रहे हैं (यानी कर रहे हैं प्रदान करने के लिए
axischanged
,buttonchanged
,buttondown
,buttonup
,touchstart
,touchend
)।
सभी ए-फ्रेम के नियंत्रक घटक tracked-controls
घटक के शीर्ष पर निर्मित होते हैं:
उपयुक्त गेमपैड आईडी (जैसे, ओकुलस टच (राइट)) के साथ इकाई पर ट्रैक किए गए नियंत्रण घटक को सेट करना। उदाहरण के लिए, विवे-नियंत्रण घटक करता है
el.setAttribute('tracked-controls', {idPrefix: 'OpenVR'})
tracked-controls
तब इकाई के लिए पोज और ईवेंट प्रदान करने के लिए उपयुक्त गेमपैड ऑब्जेक्ट से कनेक्ट होगा।ट्रैक किए गए नियंत्रणों द्वारा प्रदान की गई घटनाओं का सार। ट्रैक्ड-कंट्रोल इवेंट निम्न-स्तरीय हैं; हमारे लिए यह बताना मुश्किल होगा कि कौन से बटन अकेले उन घटनाओं के आधार पर दबाए गए क्योंकि हमें पहले से बटन मैपिंग को जानना होगा। नियंत्रक घटक अपने संबंधित नियंत्रकों के लिए पहले से मैपिंग को जान सकते हैं और
triggerdown
याxbuttonup
जैसे अधिक अर्थ संबंधी कार्यक्रम प्रदान करxbuttonup
।एक मॉडल प्रदान करना। अकेले
tracked-controls
कोई उपस्थिति प्रदान नहीं करते हैं। नियंत्रक घटक एक मॉडल प्रदान कर सकते हैं जो दृश्य प्रतिक्रिया, हावभाव और एनिमेशन दिखाता है जब बटन दबाए जाते हैं या स्पर्श किए जाते हैं। निम्नलिखित नियंत्रक घटक केवल तभी सक्रिय होते हैं जब वे नियंत्रक का पता लगाते हैं और गेमपैड एपीआई में जुड़े हुए के रूप में देखे और देखे जाते हैं।
tracked-controls
घटक ट्रैक किए गए नियंत्रकों के साथ इंटरफेस करते हैं। ट्रैक्ड-कंट्रोल ट्रैकपैड कंट्रोलरों को संभालने के लिए गेमपैड एपीआई का उपयोग करता है, और हाथ-नियंत्रण घटक के साथ-साथ विवेक-नियंत्रण और ऑक्यूलस-टच-कंट्रोल घटकों द्वारा सार है। यह घटक उपयुक्त नियंत्रक का चुनाव करता है, इकाई के लिए मुद्रा लागू करता है, बटन स्थिति का निरीक्षण करता है और उपयुक्त घटनाओं का उत्सर्जन करता है।
ध्यान दें कि हाल ही के ब्राउज़र-विशिष्ट परिवर्तनों के कारण, Vive नियंत्रकों को "OpenVR Gamepad" या "OpenVR नियंत्रक" के आईडी मान के साथ Gamepad API द्वारा वापस किया जा सकता है, इसलिए Vive / OpenVR नियंत्रकों के लिए idPrefix
का उपयोग करने की अनुशंसा की जाती है।
<a-entity tracked-controls="controller: 0; idPrefix: OpenVR"></a-entity>
3Dof और 6Dof नियंत्रक
3DoF नियंत्रकों को जोड़ना
स्वतंत्रता (3 डीओएफ) की 3 डिग्री वाले नियंत्रक घूर्णी ट्रैकिंग तक सीमित हैं। 3DoF नियंत्रकों का कोई स्थितिगत ट्रैकिंग नहीं है जिसका अर्थ है कि हम बाहर नहीं पहुँच सकते और न ही अपने हाथ को आगे-पीछे या ऊपर-नीचे कर सकते हैं। केवल 3DoF के साथ एक नियंत्रक होना एक हाथ और एक हाथ के बिना कलाई होने जैसा है। वीआर के लिए स्वतंत्रता की डिग्री के बारे में और पढ़ें।
3DoF नियंत्रक घटक घूर्णी ट्रैकिंग, वास्तविक जीवन हार्डवेयर से मेल खाते एक डिफ़ॉल्ट मॉडल, और बटन मैपिंग को अमूर्त करने के लिए प्रदान करते हैं। Google Daydream और Samsung GearVR के नियंत्रकों में 3DoF है, और दोनों एक हाथ के लिए केवल एक नियंत्रक का समर्थन करते हैं।
दिवास्वप्न नियंत्रक
दिवास्वप्न-नियंत्रण घटक, Google Daydream नियंत्रकों के साथ इंटरफेस करता है। यह बटन मैपिंग, ईवेंट और एक Daydream कंट्रोलर मॉडल को जोड़ते हुए ट्रैक-कंट्रोल कंपोनेंट को लपेटता है जो छुआ और / या दबाए गए बटन (ट्रैकपैड) को हाइलाइट करता है।
अगर हाथ की परवाह किए बिना, डेड्रीम कंट्रोलर से मैच करें।
<a-entity daydream-controls></a-entity>
यदि मौजूद है और निर्दिष्ट हाथ के लिए मैच ड्रेडर नियंत्रक।
<a-entity daydream-controls="hand: left"></a-entity>
<a-entity daydream-controls="hand: right"></a-entity>
GearVR-नियंत्रकों
गियरवार-नियंत्रण घटक का इंटरफेस सैमसंग / ओकुलस गियर वीआर नियंत्रकों के साथ है। यह बटन मैपिंग, ईवेंट और एक गियर वीआर कंट्रोलर मॉडल जोड़ते समय ट्रैक किए गए नियंत्रण घटक को लपेटता है जो छुआ और / या दबाए गए बटन (ट्रैकपैड, ट्रिगर) को उजागर करता है।
<!-- Match Gear VR controller if present, regardless of hand. -->
<a-entity gearvr-controls></a-entity>
<!-- Match Gear VR controller if present and for specified hand. -->
<a-entity gearvr-controls="hand: left"></a-entity>
<a-entity gearvr-controls="hand: right"></a-entity>
6DoF नियंत्रकों को जोड़ना
6 डिग्री की स्वतंत्रता (6DoF) वाले नियंत्रकों में घूर्णी और स्थितिगत ट्रैकिंग दोनों होते हैं। 3 डी के साथ नियंत्रकों के विपरीत, जो अभिविन्यास के लिए विवश हैं, 6 डीओएफ के साथ नियंत्रक 3 डी अंतरिक्ष में स्वतंत्र रूप से स्थानांतरित करने में सक्षम हैं। 6DoF हमें अपनी पीठ के पीछे, हमारे हाथों को हमारे शरीर के पास या हमारे चेहरे के करीब ले जाने की अनुमति देता है। 6DoF होना वास्तविकता की तरह है जहां हमारे हाथ और हाथ दोनों हैं। 6DoF हेडसेट और अतिरिक्त ट्रैकर्स (जैसे, पैर, प्रॉप्स) पर भी लागू होता है। 6DoF होना वास्तव में इमर्सिव VR अनुभव प्रदान करने के लिए न्यूनतम है।
6DoF नियंत्रक घटक पूर्ण ट्रैकिंग, वास्तविक जीवन हार्डवेयर से मेल खाते एक डिफ़ॉल्ट मॉडल, और बटन मैपिंग को अमूर्त करने के लिए प्रदान करते हैं। टच के साथ HTC Vive और Oculus Rift दोनों हाथों के लिए 6DoF और कंट्रोलर प्रदान करते हैं। HTC Vive वास्तविक दुनिया में अतिरिक्त वस्तुओं को VR में ट्रैक करने के लिए ट्रैकर्स भी प्रदान करता है।
विवेक को नियंत्रित करनेवाला
Vive-control घटक HTC Vive नियंत्रकों / वैंड के साथ इंटरफेस करता है। यह बटन मैपिंग, ईवेंट्स और एक Vive कंट्रोलर मॉडल जोड़ते समय ट्रैक्ड-कंट्रोल कंपोनेंट को लपेटता है जो कि दबाए गए बटन (ट्रिगर, ग्रिप, मेनू, सिस्टम) और ट्रैकपैड को हाइलाइट करता है।
<a-entity vive-controls="hand: left"></a-entity>
<a-entity vive-controls="hand: right"></a-entity>
Oculus स्पर्श नियंत्रकों
ओकुलस टच कंट्रोलर्स के साथ ऑक्यूलस-टच-कंट्रोल कंपोनेंट इंटरफेस। बटन मैपिंग, ईवेंट और एक टच कंट्रोलर मॉडल को जोड़ते समय यह ट्रैक-कंट्रोल कंपोनेंट को लपेटता है।
<a-entity oculus-touch-controls="hand: left"></a-entity>
<a-entity oculus-touch-controls="hand: right"></a-entity>
माउस नियंत्रण
माउस नियंत्रण केवल वीआर मोडस के बाहर समर्थित हैं और एचएमडी के बिना गेम के लिए उपयोग किया जा सकता है। माउस नियंत्रण के बारे में अधिक जानकारी के लिए, आप माउस कर्सर उदाहरण में पा सकते हैं।
<a-scene>
<a-entity camera look-controls mouse-cursor>
</a-scene>