Szukaj…


Wprowadzenie

Kontrolery są niezbędne do zanurzenia ludzi w aplikacji VR. Bez nich potencjał VR nie jest spełniony, a mianowicie kontrolery zapewniające sześć stopni swobody (6DoF). Dzięki kontrolerom ludzie mogą dotrzeć do sceny i wokół niej oraz wchodzić w interakcje z obiektami rękami.

A-Frame zapewnia komponenty dla kontrolerów w całym spektrum, obsługiwane przez odpowiednie przeglądarki WebVR za pośrednictwem Gamepad Web API. Istnieją komponenty do sterowników Vive, Oculus Touch, Daydream i GearVR.

Uwagi

Możliwe, że musisz włączyć gamepadextents. Możesz to zrobić, wykonując następujące czynności:

  • W Chrome: przejdź do chrome://flags
  • W przeglądarce Firefox: przejdź do about:config
  • W IE: przejdź do Edytora zasad grupy na pulpicie
  • W Operze: przejdź do opera:config
  • Na krawędzi: przejdź do about:flags

Kontrola Wasd

Komponent wasd-control steruje jednostką za pomocą klawiszy W , A , S i D lub klawiszy strzałek. Komponent wasd-controls jest zwykle dołączany do elementu z komponentem kamery.

<a-entity camera look-controls wasd-controls></a-entity>

W przypadku klawiatur azerty można użyć klawiszy Z , Q , S i D.

Sprawdź elementy sterujące

Element sterujący wyglądem:

  • Obraca byt, gdy obracamy wyświetlacz VR zamontowany na głowie (HMD).
  • Obraca element, gdy klikamy myszą.
  • Obraca element, gdy dotykamy ekranu dotykowego.

Komponent sterujący wyglądem jest zwykle używany obok komponentu kamery.

<a-entity camera look-controls></a-entity>

Ostrzeżenia

Jeśli chcesz utworzyć własny komponent do kontroli wyglądu, będziesz musiał skopiować i wkleić bity śledzenia HMD do swojego komponentu. W przyszłości możemy mieć system ułatwiający tworzenie kontroli.

Dodanie spojrzenia do kursora

W tym celu należy dodać element kursora do aparatu

<a-scene>
  <a-camera>
    <a-cursor></a-cursor>
    <!-- Or <a-entity cursor></a-entity> -->
  </a-camera>
</a-scene>

Więcej informacji można znaleźć na temat kursora (komponentu) .

Sterowanie ręczne

Rama A 0, x 0,3

A-Frame zapewnia implementację do obsługi wielu rodzajów kontrolerów 6DoF (Vive, Oculus Touch) za pośrednictwem komponentu sterowania ręcznego. Element sterowania ręcznego jest przeznaczony głównie dla kontrolerów 6DoF, ponieważ jest ukierunkowany na interakcje w skali pomieszczenia, takie jak chwytanie obiektów. Element sterowania ręcznego działa na kontrolerach Vive i Oculus Touch poprzez:

  • Ustawianie zarówno elementów sterowania vive, jak i oculus-touch-control

  • Przesłanianie modeli kontrolera za pomocą prostego modelu ręcznego

  • Mapowanie zdarzeń specyficznych dla Vive i Oculus Touch do zdarzeń i gestów rąk (np. Chwytanie i wyzwalanie do thumbup)

Aby dodać komponent sterowania ręcznego:

<a-entity hand-controls="left"></a-entity>
<a-entity hand-controls="right"></a-entity>

Niestety nie ma jeszcze komponentu kontrolera 3DoF, który dobrze streści wszystkie typy kontrolerów 3DoF (tj. Daydream, GearVR). Możemy stworzyć niestandardowy kontroler, który będzie działał z oboma kontrolerami. Byłoby to dość łatwe do pokrycia, ponieważ kontrolery 3DoF nie oferują dużego potencjału interakcji (tj. Tylko śledzenie obrotowe za pomocą touchpada).

Sterowanie ręczne daje śledzone ręce (przy użyciu określonego modelu) z animowanymi gestami. Sterowanie ręczne owija komponenty sterowania vive i sterowania dotykowego oculus, które z kolei owijają komponent śledzenia. Komponent zapewnia dodatkowe zdarzenia oraz obsługuje animacje i pozy dłoni.

<a-entity hand-controls="left"></a-entity>
<a-entity hand-controls="right"></a-entity>

Śledzone kontrole

Rama A 0, x 0,3

Śledzony element sterujący jest podstawowym elementem kontrolera A-Frame, który stanowi podstawę dla wszystkich elementów kontrolera A-Frame. Śledzony element sterujący:

  • Pobiera obiekt Gamepad z interfejsu API Gamepad o podanym identyfikatorze lub prefiksie.

  • Stosuje pozę (pozycję i orientację) z interfejsu API Gamepad do odczytu ruchu kontrolera.

  • Szuka zmian wartości przycisków obiektu Gamepad do dostarczenia zdarzenia podczas naciskania przycisków lub dotykaniu i kiedy oś i touchpady są zmienione (tj axischanged , buttonchanged , buttondown , buttonup , touchstart , touchend ).

Wszystkie komponenty kontrolera A-Frame zbudowane są na komponencie tracked-controls Control:

  • Ustawienie komponentu śledzenia na obiekcie z odpowiednim identyfikatorem Gamepad (np. Oculus Touch (z prawej)). Na przykład działa komponent vive-control

    el.setAttribute('tracked-controls', {idPrefix: 'OpenVR'})
    

    tracked-controls połączą się następnie z odpowiednim obiektem Gamepad, aby zapewnić pozę i zdarzenia dla istoty.

  • Wyodrębnianie zdarzeń zapewnianych przez śledzone kontrole. zdarzenia śledzenia kontrolowanego są na niskim poziomie; trudno byłoby nam powiedzieć, które przyciski zostały naciśnięte na podstawie samych tych zdarzeń, ponieważ musielibyśmy wcześniej poznać mapowanie przycisków. Elementy sterujące może wiedzieć mapowania wcześniej dla swoich sterowników i zapewnić bardziej semantyczne wydarzeń, takich jak triggerdown lub xbuttonup .

  • Zapewnienie modelu. same tracked-controls nie zapewniają żadnego wyglądu. Komponenty kontrolera mogą udostępniać model, który pokazuje wizualne informacje zwrotne, gesty i animacje po naciśnięciu lub dotknięciu przycisków. Następujące elementy kontrolera są aktywowane tylko wtedy, gdy wykryją, że kontroler został znaleziony i widziany jako podłączony w interfejsie API Gamepad.

Interfejs komponentu tracked-controls śledzonymi kontrolerami. tracked-control korzysta z interfejsu API Gamepad do obsługi śledzonych kontrolerów i jest wyodrębniany przez komponent sterowania ręcznego, a także komponenty vive-control i oculus-touch-control. Ten komponent wybiera odpowiedni kontroler, stosuje pozę do bytu, obserwuje stan przycisków i emituje odpowiednie zdarzenia.

Należy pamiętać, że ze względu na ostatnie zmiany specyficzne dla przeglądarki kontrolery Vive mogą być zwracane przez interfejs API Gamepad z wartościami identyfikacyjnymi „OpenVR Gamepad” lub „OpenVR Controller” , dlatego idPrefix użycie idPrefix dla kontrolerów Vive / OpenVR.

<a-entity tracked-controls="controller: 0; idPrefix: OpenVR"></a-entity>

Kontrolery 3Dof i 6Dof

Dodawanie kontrolerów 3DoF

Kontrolery z 3 stopniami swobody (3DoF) są ograniczone do śledzenia obrotowego. Kontrolery 3DoF nie mają śledzenia pozycji, co oznacza, że nie możemy wyciągnąć ręki ani poruszać ręką w przód iw tył lub w górę iw dół. Posiadanie kontrolera tylko z 3DoF jest jak posiadanie ręki i nadgarstka bez ramienia. Przeczytaj więcej o stopniach swobody dla VR.

Komponenty kontrolera 3DoF zapewniają śledzenie rotacji, domyślny model pasujący do rzeczywistego sprzętu, a także zdarzenia do abstrakcyjnego mapowania przycisków. Kontrolery dla Google Daydream i Samsung GearVR mają 3DoF i oba obsługują tylko jeden kontroler dla jednej ręki.

Rama A 0,x 0,6

Kontrolery marzeń

Interfejs komponentu Daydream-Control łączy się z kontrolerami Google Daydream. Obejmuje komponent kontrolowanego śledzenia podczas dodawania mapowań przycisków, zdarzeń i modelu kontrolera Daydream, który wyróżnia dotknięte i / lub naciśnięte przyciski (gładzik).

Dopasuj kontroler Daydream, jeśli jest obecny, niezależnie od ręki.

<a-entity daydream-controls></a-entity>

Dopasuj kontroler Daydream, jeśli jest obecny i dla określonej ręki.

<a-entity daydream-controls="hand: left"></a-entity>
<a-entity daydream-controls="hand: right"></a-entity>

Kontrolery GearVR

Gearvr-control łączy interfejsy z kontrolerami Samsung / Oculus Gear VR. Obejmuje komponent Tracked Controls podczas dodawania mapowań przycisków, zdarzeń i modelu kontrolera Gear VR, który wyróżnia dotykane i / lub naciskane przyciski (gładzik, spust).

<!-- 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>

Dodanie kontrolerów 6DoF

Kontrolery o 6 stopniach swobody (6DoF) mają śledzenie obrotowe i pozycyjne. W przeciwieństwie do kontrolerów z 3DoF, które są ograniczone do orientacji, kontrolery z 6DoF mogą swobodnie poruszać się w przestrzeni 3D. 6DoF pozwala nam sięgać do przodu, za naszymi plecami, poruszać rękami po ciele lub blisko twarzy. Posiadanie 6DoF jest jak rzeczywistość, w której mamy zarówno dłonie, jak i ramiona. 6DoF dotyczy również zestawu słuchawkowego i dodatkowych urządzeń śledzących (np. Stóp, rekwizytów). Posiadanie 6DoF to minimum zapewniające naprawdę wciągające wrażenia VR.

Komponenty kontrolera 6DoF zapewniają pełne śledzenie, domyślny model pasujący do rzeczywistego sprzętu oraz zdarzenia do abstrakcyjnego mapowania przycisków. HTC Vive i Oculus Rift with Touch zapewniają 6DoF i kontrolery dla obu rąk. HTC Vive zapewnia także urządzenia śledzące do śledzenia dodatkowych obiektów w świecie rzeczywistym w VR.

Rama A 0, x 0,3

Kontrolery Vive

Komponent vive-control łączy się z kontrolerami / różdżkami HTC Vive. Obejmuje komponent Tracked Controls, dodając odwzorowania przycisków, zdarzenia i model kontrolera Vive, który wyróżnia naciśnięte przyciski (spust, uchwyt, menu, system) i gładzik.

<a-entity vive-controls="hand: left"></a-entity>
<a-entity vive-controls="hand: right"></a-entity>
Rama A 0,x 0,5

Kontrolery dotykowe Oculus

Interfejs oculus-touch-kontroluje interfejsy z kontrolerami Oculus Touch. Obejmuje komponent kontrolowanego śledzenia podczas dodawania mapowań przycisków, zdarzeń i modelu kontrolera dotykowego.

<a-entity oculus-touch-controls="hand: left"></a-entity>
<a-entity oculus-touch-controls="hand: right"></a-entity>

Sterowanie myszą

Sterowanie myszą jest obsługiwane tylko poza trybem VR i może być używane w grach bez HMD. Więcej informacji na temat elementów sterujących myszy można znaleźć w przykładzie kursora myszy .

<a-scene>
  <a-entity camera look-controls mouse-cursor>
</a-scene>


Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow