Delen via


VR-apps overzetten naar Windows Mixed Reality

Windows 10 bevat ondersteuning voor immersive en holografische headsets. Andere apparaten, zoals de Oculus Rift of HTC Vive, hebben afhankelijkheden van bibliotheken die zich boven de platform-API van het besturingssysteem bevinden. Als u bestaande Win32 Unity VR-apps wilt overbrengen naar Windows Mixed Reality, moet u het gebruik van de leverancierspecifieke VR SDK opnieuw toepassen op de CROSS-vendor VR-API's en -invoegtoepassingen van Unity.

Voor het overzetten van VR-apps naar Windows Mixed Reality zijn de volgende processen op hoog niveau vereist:

  1. Zorg ervoor dat op uw pc de Windows 10, versie 1709 (de Fall Creator's Update) of nieuwer of Windows 11 wordt uitgevoerd.
  2. Voer een upgrade uit naar de nieuwste versie van uw grafische of game-engine. Game-engines moeten ondersteuning bieden voor de Windows 10 SDK versie 10.0.15063.0 of hoger.
  3. Middleware, invoegtoepassingen en onderdelen upgraden. Als uw app onderdelen bevat, voert u een upgrade uit naar de nieuwste versies.
  4. Richt u op de nieuwste Unity-versie en OpenXR-invoegtoepassing. Verwijder afhankelijkheden van dubbele SDK's. Afhankelijk van het apparaat waarop uw inhoud is gericht, verwijdert u die SDK of compileert u deze voorwaardelijk.
  5. Werk aan buildproblemen die specifiek zijn voor uw app, uw engine en uw onderdeelafhankelijkheden.

Algemene overdrachtsstappen

Begin met de volgende algemene overdrachtsstappen:

  1. Zorg ervoor dat u over de juiste ontwikkelhardware beschikt. De VR-gids voor liefhebbers vermeldt de aanbevolen ontwikkelhardware.

  2. Upgrade naar de meest recente flight van Windows 10.

    1. De Windows 10-makersupdate installeren
    2. Neem deel aan het Windows Insider-programma.
    3. Ontwikkelaarsmodus inschakelen
    4. Schakel over naar de Windows Insider Fast-vluchten via de sectie Instellingen > bijwerken & beveiliging.

    Notitie

    Het Windows Mixed Reality-platform is nog in ontwikkeling. Neem deel aan het Windows Insider-programma voor toegang tot de Windows Insider Fast-flight. Ontvang geen preview-versies van de Insider Skip Ahead-ring, omdat deze builds niet het meest stabiel zijn voor mixed reality-ontwikkeling.

  3. Als u Visual Studio gebruikt, voert u een upgrade uit naar de meest recente build. Zie De hulpprogramma's installeren onder Visual Studio 2022. Zorg ervoor dat u de workload Gameontwikkeling met Unity installeert.

Stappen voor Unity-overdracht

Bekijk de algemene stappen om te controleren of uw ontwikkelomgeving correct is ingesteld. Als u uw bestaande Unity-inhoud wilt overzetten, voert u de volgende stappen uit:

1. Upgraden naar de nieuwste openbare build van Unity met Windows MR-ondersteuning

  1. Sla een kopie van uw project op voordat u aan de slag gaat.
  2. Download de nieuwste aanbevolen openbare build van Unity met Windows Mixed Reality ondersteuning.
  3. Als uw project is gebouwd op een oudere versie van Unity, raadpleegt u de Unity-upgradehandleidingen.
  4. Volg de instructies voor het gebruik van het automatische API-updateprogramma van Unity.
  5. Kijk of u andere wijzigingen moet aanbrengen om uw project te kunnen uitvoeren en eventuele fouten en waarschuwingen te omzeilen.

2. Upgrade uw middleware naar de nieuwste versies

Bij een Unity-update moet u mogelijk een of meer middlewarepakketten bijwerken waar uw game of toepassing van afhankelijk is. Bijwerken naar de nieuwste middleware verhoogt de kans op succes tijdens de rest van het overdrachtsproces.

3. Uw toepassing richten om te worden uitgevoerd op Win32

Vanuit uw Unity-toepassing:

  1. Navigeer naar Instellingen voor het maken>van bestanden.
  2. Selecteer Pc, Mac, Zelfstandig linux.
  3. Stel het doelplatform in op Windows.
  4. Stel architectuur in op x86.
  5. Selecteer Schakelen tussen platformen.

Notitie

Als uw toepassing afhankelijk is van apparaatspecifieke services, zoals match making van Steam, schakelt u deze nu uit. U kunt de Windows-equivalente services later koppelen.

4. Ondersteuning toevoegen voor de Mixed Reality OpenXR-invoegtoepassing

  1. Kies en installeer een Unity-versie en XR-invoegtoepassing. Hoewel de Unity 2020.3 LTS met de Mixed Reality OpenXR-invoegtoepassing het beste is voor Mixed Reality ontwikkeling, kunt u ook apps bouwen met andere Unity-configuraties.

  2. Verwijder bibliotheekondersteuning die specifiek is voor een andere VR-SDK of compileer deze voorwaardelijk. Deze assets kunnen instellingen en eigenschappen voor uw project wijzigen op manieren die niet compatibel zijn met Windows Mixed Reality.

    Als uw project bijvoorbeeld verwijst naar de SteamVR SDK, werkt u uw project bij om in plaats daarvan de algemene VR-API's van Unity te gebruiken, die ondersteuning bieden voor zowel Windows Mixed Reality als SteamVR.

  3. Richt u in uw Unity-project op de Windows 10 SDK.

  4. Stel voor elke scène de camera in.

5. Uw Windows Mixed Reality hardware instellen

  1. Bekijk de stappen in Het instellen van insluitende headsets.
  2. Meer informatie over het gebruik van de Windows Mixed Reality-simulator en navigeren in de Windows Mixed Reality startpagina.

6. Gebruik het podium om inhoud op de vloer te plaatsen

U kunt Mixed Reality ervaringen bouwen in een breed scala aan ervaringsschalen. Als u een zittende ervaring overbrengt, controleert u of Unity is ingesteld op het type stationaire traceringsruimte:

XRDevice.SetTrackingSpaceType(TrackingSpaceType.Stationary);

Met deze code stelt u het wereldcoördinaatsysteem van Unity in om het stationaire referentiekader te volgen. In de modus Voor stationair volgen wordt inhoud die u in de editor plaatst vlak voor de standaardlocatie van de camera (vooruit is -Z) weergegeven voor de gebruiker wanneer de app wordt gestart. Als u de zittende oorsprong van de gebruiker wilt recenter maken, kunt u XR van Unity aanroepen . Methode InputTracking.Recenter .

Als u een ervaring op staande schaal of ruimteschaal wilt overzetten, plaatst u inhoud ten opzichte van de vloer. U redeneert dat de vloer van de gebruiker gebruikmaakt van de ruimtelijke fase, die de gedefinieerde oorsprong op het niveau van de gebruiker vertegenwoordigt. De ruimtelijke fase kan een optionele ruimtegrens bevatten die u tijdens de eerste uitvoering hebt ingesteld.

Voor deze ervaringen moet u ervoor zorgen dat Unity is ingesteld op het type Ruimte voor het bijhouden van RoomScale . RoomScale is de standaardinstelling, maar stel deze expliciet in en zorg ervoor dat u terugkomt true. Deze praktijk ondervangt situaties waarin de gebruiker zijn computer heeft verplaatst uit de ruimte die hij heeft gekalibreerd.

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

Zodra uw app het type ruimte voor het traceren van RoomScale heeft ingesteld, wordt inhoud die op het y=0-vlak is geplaatst, weergegeven op de vloer. De oorsprong op (0, 0, 0) is de specifieke plaats op de vloer waar de gebruiker zich bevond tijdens de installatie van de ruimte, waarbij -Z de voorwaartse richting vertegenwoordigt waarmee hij tijdens de installatie werd geconfronteerd.

In scriptcode kunt u vervolgens de TryGetGeometry -methode voor het UnityEngine.Experimental.XR.Boundary type aanroepen om een veelhoek van de grens op te halen, waarbij een grenstype van TrackedAreawordt opgegeven. Als de gebruiker een grens heeft gedefinieerd, krijgt u een lijst met hoekpunten terug. Vervolgens kunt u een ervaring op kamerschaal leveren aan de gebruiker, waar deze de scène kan doorlopen die u maakt.

Het systeem geeft de grens automatisch weer wanneer de gebruiker deze benadert. Uw app hoeft deze veelhoek niet te gebruiken om de grens zelf weer te geven.

Voorbeeld van resultaten:

Voorbeeld van resultaten

Zie Systemen coördineren in Unity voor meer informatie.

7. Uw invoermodel doorlopen

Elke game of toepassing die is gericht op een bestaand head-mounted display (HMD) heeft een set invoer die wordt verwerkt, typen invoer die nodig zijn voor de ervaring en specifieke API's die worden aangeroepen om die invoer op te halen. Het is eenvoudig en eenvoudig om te profiteren van de invoer die beschikbaar is in Windows Mixed Reality.

Zie de handleiding voor invoeroverdracht voor Unity voor meer informatie over hoe Windows Mixed Reality invoer beschikbaar maakt en hoe de invoer wordt toegewezen aan wat uw toepassing nu doet.

Belangrijk

Als u HP Reverb G2-controllers gebruikt, raadpleegt u HP Reverb G2-controllers in Unity voor verdere instructies voor invoertoewijzing.

8. Prestaties testen en afstemmen

Windows Mixed Reality is beschikbaar op veel apparaten, variërend van high-end gaming-pc's tot algemene pc's op de markt. Voor deze apparaten zijn aanzienlijk verschillende reken- en grafische budgetten beschikbaar voor uw toepassing.

Als u uw app hebt overgezet met behulp van een premium-pc met aanzienlijke reken- en grafische budgetten, moet u uw app testen en profilen op hardware die uw doelmarkt vertegenwoordigt. Zie Windows Mixed Reality minimale compatibiliteitsrichtlijnen voor pc-hardware voor meer informatie.

Zowel Unity als Visual Studio bevatten prestatieprofielen, en zowel Microsoft als Intel publiceren richtlijnen voor prestatieprofilering en -optimalisatie.

Zie Inzicht in prestaties voor Mixed Reality voor een uitgebreide beschrijving van de prestaties. Zie Prestatieaanbeveling voor Unity voor specifieke informatie over Unity.

Invoertoewijzing

Zie Handleiding voor invoeroverdracht voor Unity voor informatie en instructies voor invoertoewijzing.

Belangrijk

Als u HP Reverb G2-controllers gebruikt, raadpleegt u HP Reverb G2-controllers in Unity voor verdere instructies voor invoertoewijzing.

Zie ook