Share via


Porta VR-appar till Windows Mixed Reality

Windows 10 har stöd för uppslukande och holografiska headset. Andra enheter som Oculus Rift eller HTC Vive har beroenden av bibliotek som finns ovanför operativsystemets plattforms-API. För att överföra befintliga Win32 Unity VR-appar till Windows Mixed Reality måste du ommåla leverantörsspecifik VR SDK-användning till Unitys VR-API:er och plugin-program mellan leverantörer.

Att portera VR-appar till Windows Mixed Reality kräver följande processer på hög nivå:

  1. Kontrollera att datorn kör Windows 10 version 1709 (Fall Creator's Update) eller senare eller Windows 11.
  2. Uppgradera till den senaste versionen av grafiken eller spelmotorn. Spelmotorer måste ha stöd för Windows 10 SDK version 10.0.15063.0 eller senare.
  3. Uppgradera mellanprogram, plugin-program och komponenter. Om din app innehåller några komponenter uppgraderar du till de senaste versionerna.
  4. Rikta in dig på den senaste Unity-versionen och OpenXR-plugin-programmet. Ta bort beroenden för duplicerade SDK:er. Beroende på vilken enhet ditt innehåll har som mål tar du bort eller kompilerar det SDK:t villkorligt.
  5. Arbeta dig igenom byggproblem som är specifika för din app, din motor och dina komponentberoenden.

Vanliga portningssteg

Börja med följande vanliga portningssteg:

  1. Kontrollera att du har rätt maskinvara för utveckling. Vr-entusiastguiden visar den rekommenderade utvecklingsmaskinvaran.

  2. Uppgradera till den senaste Windows 10.

    1. Installera Windows 10 Creators Update
    2. Gå med i Windows Insider Program.
    3. Aktivera utvecklarläge
    4. Växla till Avsnittet Windows Insider Fast-flygningar via Inställningar > Uppdatera & säkerhet.

    Anteckning

    Den Windows Mixed Reality plattformen är fortfarande under aktiv utveckling. Gå med i Windows Insider Program för att få åtkomst till Windows Insider Fast-flygningen. Få inte förhandsversioner från Insider Skip Ahead-ringen, eftersom dessa byggen inte är de mest stabila för utveckling av mixad verklighet.

  3. Om du använder Visual Studio uppgraderar du till den senaste versionen. Se Installera verktygen under Visual Studio 2022. Se till att installera arbetsbelastningen Spelutveckling med Unity .

Enhetsporteringssteg

Granska de vanliga stegen för att se till att utvecklingsmiljön är korrekt konfigurerad. Följ dessa steg om du vill portera ditt befintliga Unity-innehåll:

1. Uppgradera till den senaste offentliga versionen av Unity med Windows MR-stöd

  1. Spara en kopia av projektet innan du kommer igång.
  2. Ladda ned den senaste rekommenderade offentliga versionen av Unity med stöd för Windows Mixed Reality.
  3. Om projektet byggdes på en äldre version av Unity läser du Unity Upgrade Guides.
  4. Följ anvisningarna för att använda Unitys automatiska API-uppdatering.
  5. Se om du behöver göra några andra ändringar för att få igång projektet och gå igenom eventuella fel och varningar.

2. Uppgradera mellanprogrammet till de senaste versionerna

Med en Unity-uppdatering kan du behöva uppdatera ett eller flera mellanprogramspaket som ditt spel eller program är beroende av. Om du uppdaterar till det senaste mellanprogrammet ökar sannolikheten för att lyckas under resten av portningsprocessen.

3. Rikta ditt program så att det körs på Win32

Inifrån Unity-programmet:

  1. Gå till Inställningarförfilbygge>.
  2. Välj PC, Mac, Linux Standalone.
  3. Ange målplattformen till Windows.
  4. Ange arkitektur till x86.
  5. Välj Växla plattform.

Anteckning

Om ditt program har några beroenden för enhetsspecifika tjänster, till exempel matchning från Steam, inaktiverar du dem nu. Du kan ansluta motsvarande Windows-tjänster senare.

4. Lägg till stöd för Mixed Reality OpenXR-plugin-programmet

  1. Välj och installera en Unity-version och ett XR-plugin-program. Unity 2020.3 LTS med Mixed Reality OpenXR-plugin-programmet är bäst för Mixed Reality utveckling, men du kan också skapa appar med andra Unity-konfigurationer.

  2. Ta bort eller kompilera villkorsstyrt biblioteksstöd som är specifikt för en annan VR SDK. Dessa tillgångar kan ändra inställningar och egenskaper för projektet på sätt som inte är kompatibla med Windows Mixed Reality.

    Om projektet till exempel refererar till SteamVR SDK uppdaterar du projektet så att det i stället använder Unitys vanliga VR-API:er, som stöder både Windows Mixed Reality och SteamVR.

  3. I Unity-projektet riktar du in dig på Windows 10 SDK.

  4. Konfigurera kameran för varje scen.

5. Konfigurera maskinvara för Windows Mixed Reality

  1. Granska stegen i avancerad konfiguration av headset.
  2. Lär dig hur du använder Windows Mixed Reality-simulatorn och navigerar Windows Mixed Reality hem.

6. Använd scenen för att placera innehåll på golvet

Du kan skapa Mixed Reality upplevelser i en mängd olika upplevelseskalor. Om du porterar en platsskala kontrollerar du att Unity är inställt på rymdtypen Stationär spårning:

XRDevice.SetTrackingSpaceType(TrackingSpaceType.Stationary);

Den här koden anger Unitys världskoordinatsystem för att spåra den stationära referensramen. I läget Stationär spårning visas innehåll som du placerar i redigeraren precis framför kamerans standardplats (vidarebefordran är -Z) framför användaren när appen startas. Om du vill visa användarens ursprungliga plats kan du anropa Unitys XR. InputTracking.Recenter-metod .

Om du porterar en upplevelse i stående skala eller rumsskala placerar du innehåll i förhållande till golvet. Du resonerar om användarens golv med hjälp av den rumsliga fasen, som representerar användarens definierade ursprung på golvnivå. Den rumsliga fasen kan innehålla en valfri rumsgräns som du konfigurerade under den första körningen.

För de här funktionerna kontrollerar du att Unity är inställt på utrymmestypen RoomScale-spårningsutrymme . RoomScale är standard, men ange det uttryckligen och se till att du kommer tillbaka true. Den här metoden fångar situationer där användaren har flyttat sin dator bort från rummet som de kalibrerade.

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.
}

När appen har ställt in space-typen RoomScale-spårning visas innehåll som placerats på y=0-planet på golvet. Ursprunget vid (0, 0, 0) är den specifika plats på golvet där användaren stod under rumskonfigurationen, med -Z som representerar den framåtriktade riktning de mötte under installationen.

I skriptkod kan du anropa TryGetGeometry metoden för UnityEngine.Experimental.XR.Boundary typen för att hämta en gränspolygon och ange en gränstyp av TrackedArea. Om användaren har definierat en gräns får du tillbaka en lista med hörn. Du kan sedan leverera en upplevelse i rumsskala till användaren, där de kan gå runt på scenen som du skapar.

Systemet återger automatiskt gränsen när användaren närmar sig den. Din app behöver inte använda den här polygonen för att återge själva gränsen.

Exempel på resultat:

Exempel på resultat

Mer information finns i Koordinatsystem i Unity.

7. Gå igenom din indatamodell

Varje spel eller program som riktar sig mot en befintlig huvudmonterad skärm (HMD) har en uppsättning indata som den hanterar, typer av indata som behövs för upplevelsen och specifika API:er som anropas för att hämta dessa indata. Det är enkelt och enkelt att dra nytta av de indata som är tillgängliga i Windows Mixed Reality.

Se guiden för indataportering för Unity för mer information om hur Windows Mixed Reality exponerar indata och hur indata mappar till vad programmet gör nu.

Viktigt

Om du använder HP Reverb G2-styrenheter läser du HP Reverb G2-styrenheter i Unity för ytterligare instruktioner för indatamappning.

8. Testa och finjustera prestanda

Windows Mixed Reality finns på många enheter, allt från avancerade speldatorer till breda vanliga datorer på marknaden. Dessa enheter har betydligt olika beräknings- och grafikbudgetar tillgängliga för ditt program.

Om du porterade din app med en premiumdator med betydande beräknings- och grafikbudgetar bör du testa och profilera din app på maskinvara som representerar målmarknaden. Mer information finns i Windows Mixed Reality minsta riktlinjer för maskinvarukompatibilitet för datorer.

Både Unity och Visual Studio innehåller prestandaprofiler och både Microsoft och Intel publicerar riktlinjer för prestandaprofilering och optimering.

En omfattande diskussion om prestanda finns i Förstå prestanda för Mixed Reality. Specifik information om Unity finns i Prestandarekommendationer för Unity.

Indatamappning

Information om och instruktioner för indatamappning finns i Guiden för indataportering för Unity.

Viktigt

Om du använder HP Reverb G2-styrenheter läser du HP Reverb G2-styrenheter i Unity för ytterligare instruktioner för indatamappning.

Se även