Przenoszenie aplikacji VR do Windows Mixed Reality

Windows 10 obejmuje obsługę immersyjnych i holograficzne zestawy słuchawkowe. Inne urządzenia, takie jak Oculus Rift lub HTC Vive, mają zależności od bibliotek, które istnieją powyżej interfejsu API platformy systemu operacyjnego. Aby zapewnić Windows Mixed Reality istniejące aplikacje Vr platformy Win32, należy ponownie uruchomić zestaw VR SDK specyficzny dla dostawcy do interfejsów API VR i wtyczek aparatu Unity dla wielu dostawców.

Przenoszenie aplikacji VR do Windows Mixed Reality wymaga następujących procesów wysokiego poziomu:

  1. Upewnij się, że na komputerze jest uruchomiona Windows 10 wersja 1709 (aktualizacja Fall Creator's Update) lub nowsza lub Windows 11.
  2. Uaktualnij do najnowszej wersji aparatu grafiki lub gry. Aparaty gier muszą obsługiwać zestaw SDK Windows 10 w wersji 10.0.15063.0 lub nowszej.
  3. Uaktualnij oprogramowanie pośredniczące, wtyczki i składniki. Jeśli aplikacja zawiera jakiekolwiek składniki, przeprowadź uaktualnienie do najnowszych wersji.
  4. Docelowa najnowsza wersja aparatu Unity i wtyczka OpenXR. Usuń zależności od zduplikowanych zestawów SDK. W zależności od urządzenia, którego dotyczy zawartość, usuń lub warunkowo skompiluj ten zestaw SDK.
  5. Zapoznaj się z problemami kompilacji specyficznymi dla aplikacji, aparatu i zależności składników.

Typowe kroki przenoszenia

Rozpocznij od następujących typowych kroków przenoszenia:

  1. Upewnij się, że masz odpowiedni sprzęt programistyki. Przewodnik entuzjastów VR zawiera listę zalecanego sprzętu deweloperskiego.

  2. Uaktualnij do najnowszego lotu Windows 10.

    1. Instalowanie Aktualizacja systemu Windows 10 dla twórców
    2. Dołącz do niejawnego programu testów systemu Windows.
    3. Włączanie trybu dewelopera
    4. Przejdź do szybkich lotów testów systemu Windows za pomocą sekcji Aktualizacje ustawień > & zabezpieczeń.

    Uwaga

    Platforma Windows Mixed Reality jest nadal aktywna. Dołącz do niejawnego programu testów systemu Windows, aby uzyskać dostęp do szybkiego lotu niejawnego testera systemu Windows. Nie pobieraj kompilacji w wersji zapoznawczej z pierścienia Insider Skip Ahead, ponieważ te kompilacje nie są najbardziej stabilne w przypadku tworzenia rzeczywistości mieszanej.

  3. Jeśli używasz programu Visual Studio, przeprowadź uaktualnienie do najnowszej kompilacji. Zobacz Instalowanie narzędzi w programie Visual Studio 2022. Pamiętaj, aby zainstalować pakiet roboczy Programowanie gier za pomocą aparatu Unity .

Kroki przenoszenia aparatu Unity

Zapoznaj się z typowymi krokami, aby upewnić się, że środowisko deweloperskie jest poprawnie skonfigurowane. Aby prze portować istniejącą zawartość aparatu Unity, wykonaj następujące kroki:

1. Uaktualnianie do najnowszej publicznej kompilacji aparatu Unity z obsługą mr systemu Windows

  1. Przed rozpoczęciem zapisz kopię projektu.
  2. Pobierz najnowszą zalecaną publiczną kompilację środowiska Unity z obsługą Windows Mixed Reality.
  3. Jeśli projekt został utworzony na starszej wersji aparatu Unity, zapoznaj się z przewodnikami uaktualniania aparatu Unity.
  4. Postępuj zgodnie z instrukcjami dotyczącymi korzystania z automatycznego aktualizatora interfejsu API aparatu Unity.
  5. Sprawdź, czy musisz wprowadzić inne zmiany w celu uruchomienia projektu i przejrzeć wszelkie błędy i ostrzeżenia.

2. Uaktualnij oprogramowanie pośredniczące do najnowszych wersji

W przypadku każdej aktualizacji aparatu Unity może być konieczne zaktualizowanie co najmniej jednego pakietu oprogramowania pośredniczącego, od którego zależy twoja gra lub aplikacja. Aktualizacja do najnowszego oprogramowania pośredniczącego zwiększa prawdopodobieństwo powodzenia w pozostałej części procesu przenoszenia.

3. Skierować aplikację do uruchamiania w systemie Win32

Z poziomu aplikacji aparatu Unity:

  1. Przejdź dopozycji Ustawienia kompilacjipliku>.
  2. Wybierz pozycję PC, Mac, Linux Standalone.
  3. Ustaw platformę docelową na Windows.
  4. Ustaw architekturę na x86.
  5. Wybierz pozycję Przełącz platformę.

Uwaga

Jeśli aplikacja ma jakiekolwiek zależności od usług specyficznych dla urządzenia, takich jak dopasowanie z platformy Steam, wyłącz je teraz. Możesz później podłączyć równoważne usługi systemu Windows.

4. Dodawanie obsługi wtyczki Mixed Reality OpenXR

  1. Wybierz i zainstaluj wersję aparatu Unity i wtyczkę XR. Chociaż środowisko Unity 2020.3 LTS z wtyczką Mixed Reality OpenXR jest najlepsze dla Mixed Reality programowania, można również tworzyć aplikacje z innymi konfiguracjami aparatu Unity.

  2. Usuń lub warunkowo skompiluj dowolną bibliotekę specyficzną dla innego zestawu VR SDK. Te zasoby mogą zmieniać ustawienia i właściwości projektu w sposób niezgodny z Windows Mixed Reality.

    Jeśli na przykład projekt odwołuje się do zestawu SDK SteamVR, zaktualizuj projekt, aby zamiast tego używać typowych interfejsów API VR aparatu Unity, które obsługują zarówno Windows Mixed Reality, jak i SteamVR.

  3. W projekcie aparatu Unity wybierz zestaw SDK Windows 10.

  4. Dla każdej sceny skonfiguruj kamerę.

5. Konfigurowanie sprzętu Windows Mixed Reality

  1. Zapoznaj się z krokami konfiguracji immersyjnego zestawu słuchawkowego.
  2. Dowiedz się, jak używać symulatora Windows Mixed Reality i nawigować po Windows Mixed Reality domu.

6. Użyj etapu, aby umieścić zawartość na podłodze

Możesz tworzyć środowiska Mixed Reality w wielu różnych skalach środowiska. Jeśli przenosisz środowisko skalowania na miejsce, upewnij się, że dla aparatu Unity ustawiono typ przestrzeni śledzenia stacjonarnego :

XRDevice.SetTrackingSpaceType(TrackingSpaceType.Stationary);

Ten kod ustawia układ współrzędnych świata aparatu Unity w celu śledzenia stacjonarnej ramki odwołania. W trybie śledzenia stacjonarnego zawartość umieszczona w edytorze tuż przed domyślną lokalizacją aparatu (do przodu to -Z) pojawia się przed użytkownikiem po uruchomieniu aplikacji. W przypadku ostatniego miejsca użytkownika możesz wywołać XR aparatu Unity. InputTracking.Recenter , metoda.

Jeśli przenosisz środowisko skalowania na stojąco lub w skali pomieszczenia, umieszczasz zawartość względem podłogi. Przyczyną jest podłoga użytkownika przy użyciu etapu przestrzennego, który reprezentuje zdefiniowane przez użytkownika pochodzenie na poziomie podłogi. Etap przestrzenny może zawierać opcjonalną granicę pomieszczenia skonfigurowaną podczas pierwszego uruchomienia.

W przypadku tych środowisk upewnij się, że środowisko Unity jest ustawione na typ śledzenia RoomScale . Funkcja RoomScale jest wartością domyślną, ale ustaw ją jawnie i upewnij się, że wrócisz true. Ta praktyka wychwytuje sytuacje, w których użytkownik przeniósł swój komputer z dala od pomieszczenia, w którym skalibrowali.

if (XRDevice.SetTrackingSpaceType(TrackingSpaceType.RoomScale))
{
    // RoomScale mode was set successfully.  App can now assume that y=0 in Unity world coordinate represents the floor.
}
else
{
    // RoomScale mode was not set successfully.  App can't make assumptions about where the floor plane is.
}

Gdy aplikacja pomyślnie ustawi typ śledzenia roomScale, zawartość umieszczona na płaszczyźnie y=0 pojawi się na podłodze. Początek (0, 0, 0) jest konkretnym miejscem na podłodze, na którym użytkownik stał podczas instalacji pomieszczenia, z -Z reprezentującym kierunek do przodu, z którym mieli do czynienia podczas instalacji.

W kodzie skryptu można następnie wywołać metodę TryGetGeometry w typie UnityEngine.Experimental.XR.Boundary , aby uzyskać wielokąt granicy, określając typ TrackedAreagranicy . Jeśli użytkownik zdefiniował granicę, zostanie przywrócona lista wierzchołków. Następnie możesz dostarczyć użytkownikowi środowisko skalowania pomieszczeń , w którym może chodzić po tworzonej scenie.

System automatycznie renderuje granicę, gdy użytkownik zbliża się do niej. Aplikacja nie musi używać tego wielokąta do renderowania samej granicy.

Przykład wyników:

Przykład wyników

Aby uzyskać więcej informacji, zobacz Współrzędne systemy w środowisku Unity.

7. Praca z modelem wejściowym

Każda gra lub aplikacja, która jest przeznaczona dla istniejącego wyświetlacza zainstalowanego przez głowę (HMD) ma zestaw danych wejściowych, które obsługuje, typy danych wejściowych, których potrzebuje do środowiska, oraz określone interfejsy API, które wywołuje w celu uzyskania tych danych wejściowych. Korzystanie z danych wejściowych dostępnych w Windows Mixed Reality jest proste i proste.

Aby uzyskać szczegółowe informacje o tym, jak Windows Mixed Reality uwidacznia dane wejściowe, zobacz przewodnik przenoszenia danych wejściowych dla aparatu Unity oraz sposób mapowania danych wejściowych na działanie aplikacji.

Ważne

Jeśli używasz kontrolerów HP Reverb G2, zobacz HP Reverb G2 Controllers in Unity (Kontrolery HP Reverb G2 w środowisku Unity), aby uzyskać dalsze instrukcje dotyczące mapowania danych wejściowych.

8. Testowanie i dostosowywanie wydajności

Windows Mixed Reality jest dostępny na wielu urządzeniach, począwszy od komputerów z wysokiej klasy do szerokiego głównego nurtu rynku komputerów. Te urządzenia mają znacznie różne budżety obliczeniowe i graficzne dostępne dla aplikacji.

W przypadku przenoszenia aplikacji przy użyciu komputera w warstwie Premium ze znaczącymi budżetami obliczeniowymi i graficznymi należy przetestować i profilować aplikację na sprzęcie reprezentującym rynek docelowy. Aby uzyskać więcej informacji, zobacz Windows Mixed Reality minimalne wytyczne dotyczące zgodności sprzętu komputera.

Zarówno aparat Unity , jak i program Visual Studio obejmują profileery wydajności, a zarówno wytyczne dotyczące publikowania firmy Microsoft , jak i firmy Intel dotyczące profilowania wydajności i optymalizacji.

Aby zapoznać się z obszerną dyskusją na temat wydajności, zobacz Omówienie wydajności Mixed Reality. Aby uzyskać szczegółowe informacje na temat aparatu Unity, zobacz Zalecenia dotyczące wydajności aparatu Unity.

Mapowanie danych wejściowych

Aby uzyskać informacje o mapowaniu danych wejściowych i instrukcje, zobacz Przewodnik przenoszenia danych wejściowych dla aparatu Unity.

Ważne

Jeśli używasz kontrolerów HP Reverb G2, zobacz HP Reverb G2 Controllers in Unity (Kontrolery HP Reverb G2 w środowisku Unity), aby uzyskać dalsze instrukcje dotyczące mapowania danych wejściowych.

Zobacz też