aframe
Contrôles (composant)
Recherche…
Introduction
Les contrôleurs sont essentiels pour immerger les gens dans une application de réalité virtuelle. Le potentiel de la RV n'est pas atteint sans eux, à savoir les contrôleurs qui fournissent six degrés de liberté (6DoF). Avec les contrôleurs, les personnes peuvent toucher la scène et interagir avec les objets avec leurs mains.
A-Frame fournit des composants pour les contrôleurs du spectre tels qu'ils sont pris en charge par leurs navigateurs WebVR respectifs via l'API Web Gamepad. Il existe des composants pour les contrôleurs Vive, Oculus Touch, Daydream et GearVR.
Remarques
Il est possible que vous deviez activer les perspectives de jeu. Vous pouvez le faire en utilisant ces étapes:
- Sur Chrome: accédez à
chrome://flags
- Sur Firefox: naviguez jusqu'à
about:config
- Sur IE: Accédez à l'éditeur de stratégie de groupe sur votre bureau
- Sur Opera: naviguez jusqu'à
opera:config
- On Edge: naviguez jusqu'à
about:flags
Commandes de guêpes
Le composant wasd-controls contrôle une entité avec les touches W , A , S et D ou les touches du clavier. Le composant wasd-controls
est généralement associé à une entité avec le composant camera.
<a-entity camera look-controls wasd-controls></a-entity>
Pour les claviers azerty, vous pouvez utiliser les touches Z , Q , S et D
Contrôles de regard
Le composant look-controls:
- Fait pivoter l’entité lorsque vous faites pivoter un écran VR (HMD).
- Fait pivoter l'entité lorsque vous cliquez-glissez la souris.
- Fait pivoter l'entité lorsque vous faites glisser l'écran tactile.
Le composant look-controls est généralement utilisé avec le composant camera.
<a-entity camera look-controls></a-entity>
Mises en garde
Si vous souhaitez créer votre propre composant pour les contrôles d'apparence, vous devrez copier et coller les bits de suivi HMD dans votre composant. À l'avenir, nous pourrions avoir un système permettant aux gens de créer plus facilement leurs contrôles.
Ajout du regard au curseur
Pour cela, vous devez ajouter un composant curseur à votre caméra.
<a-scene>
<a-camera>
<a-cursor></a-cursor>
<!-- Or <a-entity cursor></a-entity> -->
</a-camera>
</a-scene>
Vous pouvez trouver plus d'informations sur le sujet du curseur (composant) .
Commandes manuelles
A-Frame fournit une implémentation permettant de prendre en charge plusieurs types de contrôleurs 6DoF (Vive, Oculus Touch) via le composant de commandes manuelles. Le composant de commandes manuelles est principalement destiné aux contrôleurs 6DoF, car il est destiné aux interactions à l'échelle de la pièce, telles que la saisie d'objets. Le composant de commandes manuelles fonctionne sur les deux contrôleurs Vive et Oculus Touch en:
Définition du composant vive-contrôles et du composant oculus-touch-controls
Remplacement des modèles de contrôleurs avec un modèle de main simple
Mappage d'événements spécifiques à Vive et spécifiques à Oculus Touch pour transmettre des événements et des gestes (p.ex., prise de contrôle et mise en veille rapide)
Pour ajouter le composant de contrôle manuel:
<a-entity hand-controls="left"></a-entity>
<a-entity hand-controls="right"></a-entity>
Malheureusement, il n'y a pas encore de composant de contrôleur 3DoF qui résume bien tous les types de contrôleurs 3DoF (c.-à-d. Daydream, GearVR). Nous pourrions créer un contrôleur personnalisé qui fonctionne avec les deux contrôleurs. Il serait assez facile de les couvrir puisque les contrôleurs 3DoF n'offrent pas beaucoup de potentiel d'interaction (c.-à-d. Seulement un suivi en rotation avec un pavé tactile).
Les commandes manuelles donnent des mains suivies (en utilisant un modèle prescrit) avec des gestes animés. les commandes manuelles enveloppent les composants de commandes vive et oculus-touch-control, qui à leur tour enveloppent le composant de contrôles suivis. Le composant donne des événements supplémentaires et gère les animations et les poses de la main.
<a-entity hand-controls="left"></a-entity>
<a-entity hand-controls="right"></a-entity>
Contrôles suivis
Le composant de contrôles suivis est le composant contrôleur de base d'A-Frame qui constitue la base de tous les composants de contrôleur d'A-Frame. Le composant de contrôles suivis:
Obtient un objet Gamepad à partir de l’API Gamepad à l’aide d’un identifiant ou d’un préfixe.
Applique la pose (position et orientation) de l'API Gamepad pour lire le mouvement du contrôleur.
Recherche les changements dans les valeurs des boutons de l'objet Gamepad afin de fournir des événements lorsque les boutons sont pressés ou touchés et lorsque l'axe et les pavés tactiles sont modifiés (
axischanged
,buttonchanged
-buttondown
,buttonup
,touchstart
,touchend
,touchend
).
Tous les composants du contrôleur A-Frame sont construits sur le composant des tracked-controls
par:
Définir le composant de contrôles suivis sur l'entité avec l'ID de Gamepad approprié (par exemple, Oculus Touch (Right)). Par exemple, le composant vive-contrôles
el.setAttribute('tracked-controls', {idPrefix: 'OpenVR'})
tracked-controls
se connecteront ensuite à l'objet Gamepad approprié pour fournir une pose et des événements à l'entité.Résumé des événements fournis par les contrôles suivis. les événements de contrôles suivis sont de bas niveau; il était difficile pour nous de savoir quels boutons ont été actionnés uniquement à partir de ces événements car nous devions connaître les mappages de boutons au préalable. Les composants du contrôleur peuvent connaître les mappages au préalable pour leurs contrôleurs respectifs et fournir davantage d'événements sémantiques tels que le
triggerdown
ouxbuttonup
.Fournir un modèle.
tracked-controls
eux seuls ne fournissent aucune apparence. Les composants du contrôleur peuvent fournir un modèle qui affiche un retour visuel, des gestes et des animations lorsque des boutons sont pressés ou touchés. Les composants de contrôleur suivants ne sont activés que s'ils détectent que le contrôleur est détecté et considéré comme connecté dans l'API Gamepad.
Le composant de tracked-controls
suivis s'interface avec les contrôleurs suivis. tracked-controls utilise l'API Gamepad pour gérer les contrôleurs suivis et est extraite par le composant des contrôles manuels ainsi que par les composants de commandes vive et oculus-touch-controls. Ce composant choisit le contrôleur approprié, applique la pose à l'entité, observe l'état des boutons et émet des événements appropriés.
Notez qu'en raison de modifications récentes spécifiques au navigateur, les contrôleurs Vive peuvent être renvoyés par l'API Gamepad avec des valeurs d'ID "OpenVR Gamepad" ou "OpenVR Controller" . Il est donc idPrefix
utiliser idPrefix
pour les contrôleurs Vive / OpenVR.
<a-entity tracked-controls="controller: 0; idPrefix: OpenVR"></a-entity>
Contrôleurs 3Dof et 6Dof
Ajout de contrôleurs 3DoF
Les contrôleurs à 3 degrés de liberté (3DoF) sont limités au suivi en rotation. Les contrôleurs 3DoF n'ont pas de suivi de position, ce qui signifie que nous ne pouvons ni tendre la main ni bouger la main de haut en bas. Avoir un contrôleur avec seulement 3DoF, c'est comme avoir une main et un poignet sans bras. En savoir plus sur les degrés de liberté pour la RV.
Les composants du contrôleur 3DoF fournissent un suivi en rotation, un modèle par défaut correspondant au matériel réel, et des événements permettant d'abstraire les mappages de boutons. Les contrôleurs pour Google Daydream et Samsung GearVR ont 3DoF, et les deux prennent en charge un seul contrôleur pour une main.
Contrôleurs Daydream
Le composant daydream-controls s'interface avec les contrôleurs Google Daydream. Il enveloppe le composant de contrôles suivis tout en ajoutant des mappages de boutons, des événements et un modèle de contrôleur Daydream qui met en évidence les boutons touchés et / ou pressés (pavé tactile).
Match contrôleur Daydream si présent, quelle que soit la main.
<a-entity daydream-controls></a-entity>
Match contrôleur Daydream si présent et pour la main spécifiée.
<a-entity daydream-controls="hand: left"></a-entity>
<a-entity daydream-controls="hand: right"></a-entity>
Contrôleurs GearVR
Le composant gearvr-controls s'interface avec les contrôleurs Samsung / Oculus Gear VR. Il enveloppe le composant des contrôles suivis tout en ajoutant des mappages de boutons, des événements et un modèle de contrôleur Gear VR qui met en surbrillance les boutons touchés et / ou pressés (pavé tactile, déclencheur).
<!-- 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>
Ajout de contrôleurs 6DoF
Les contrôleurs à 6 degrés de liberté (6DoF) ont un suivi en rotation et en position. Contrairement aux contrôleurs avec 3DoF qui sont contraints à l'orientation, les contrôleurs avec 6DoF peuvent se déplacer librement dans l'espace 3D. 6DoF nous permet de tendre la main dans notre dos ou de nous approcher de notre visage. Avoir 6DoF est comme la réalité où nous avons les deux mains et les bras. 6DoF s'applique également au casque et aux trackers supplémentaires (par exemple, pieds, accessoires). Avoir 6DoF est un minimum pour fournir une expérience de VR vraiment immersive.
Les composants du contrôleur 6DoF fournissent un suivi complet, un modèle par défaut correspondant au matériel réel, et des événements permettant d'abstraire les mappages de boutons. HTC Vive et Oculus Rift avec Touch fournissent 6DoF et contrôleurs pour les deux mains. HTC Vive fournit également des suiveurs pour suivre des objets supplémentaires dans le monde réel en VR.
Vive contrôleurs
Le composant vive-contrôles s'interface avec les contrôleurs / baguettes HTC Vive. Il enveloppe le composant de contrôles suivis tout en ajoutant des mappages de boutons, des événements et un modèle de contrôleur Vive qui met en surbrillance les boutons enfoncés (déclencheur, poignée, menu, système) et le pavé tactile.
<a-entity vive-controls="hand: left"></a-entity>
<a-entity vive-controls="hand: right"></a-entity>
Contrôleurs tactiles Oculus
Le composant oculus-touch-controls s'interface avec les contrôleurs Oculus Touch. Il encapsule le composant de contrôles suivis tout en ajoutant des mappages de boutons, des événements et un modèle de contrôleur Touch.
<a-entity oculus-touch-controls="hand: left"></a-entity>
<a-entity oculus-touch-controls="hand: right"></a-entity>
Contrôle de la souris
Les contrôles de souris ne sont pris en charge qu'en dehors du mode VR et peuvent être utilisés pour des jeux sans HMD. Pour plus d'informations sur les contrôles de la souris, vous pouvez trouver dans l'exemple de curseur de la souris .
<a-scene>
<a-entity camera look-controls mouse-cursor>
</a-scene>