Convertire app VR in Windows Mixed Reality

Windows 10 include il supporto per visori VR immersive e olografici. Altri dispositivi come Oculus Rift o HTC Vive hanno dipendenze dalle librerie esistenti sopra l'API della piattaforma del sistema operativo. Per trasferire le app VR Win32 Unity esistenti in Windows Mixed Reality, è necessario ridestinare l'uso di VR SDK specifico del fornitore per le API e i plug-in di VR tra fornitori di Unity.

La conversione di app VR in Windows Mixed Reality richiede i processi generali seguenti:

  1. Assicurati che il PC esegua il Windows 10, versione 1709 (aggiornamento di Fall Creator) o versione successiva o Windows 11.
  2. Eseguire l'aggiornamento alla versione più recente del motore di grafica o di gioco. I motori di gioco devono supportare Windows 10 SDK versione 10.0.15063.0 o successiva.
  3. Aggiornare il middleware, i plug-in e i componenti. Se l'app contiene componenti, eseguire l'aggiornamento alle versioni più recenti.
  4. Scegliere come destinazione la versione più recente di Unity e il plug-in OpenXR. Rimuovere le dipendenze dagli SDK duplicati. A seconda del dispositivo di destinazione, rimuovere o compilare in modo condizionale tale SDK.
  5. Risolvere i problemi di compilazione specifici per l'app, il motore e le dipendenze dei componenti.

Passaggi comuni di conversione

Iniziare con i passaggi comuni di conversione seguenti:

  1. Assicurarsi di disporre dell'hardware di sviluppo corretto. La guida per gli appassionati di realtà virtuale elenca l'hardware di sviluppo consigliato.

  2. Eseguire l'aggiornamento alla versione più recente del Windows 10.

    1. Installare il Windows 10 Creators Update
    2. Aggiungere il Programma Windows Insider.
    3. Abilitare la modalità sviluppatore
    4. Passare alla Windows Insider Fast flights tramite Impostazioni > Sezione Sicurezza aggiornamenti&.

    Nota

    La piattaforma Windows Mixed Reality è ancora in fase di sviluppo attivo. Partecipa al Programma Windows Insider per accedere al volo Windows Insider Fast. Non ottenere build di anteprima dall'anello Insider Skip Ahead, perché queste build non sono la più stabile per lo sviluppo di realtà mista.

  3. Se si usa Visual Studio, eseguire l'aggiornamento alla build più recente. Vedere Installare gli strumenti in Visual Studio 2022. Assicurarsi di installare il carico di lavoro Sviluppo di giochi con Unity .

Passaggi di conversione di Unity

Esaminare i passaggi comuni per assicurarsi che l'ambiente di sviluppo sia configurato correttamente. Per convertire il contenuto di Unity esistente, seguire questa procedura:

1. Eseguire l'aggiornamento alla build pubblica più recente di Unity con supporto di Windows MR

  1. Salvare una copia del progetto prima di iniziare.
  2. Scaricare la build pubblica consigliata più recente di Unity con il supporto di Windows Mixed Reality.
  3. Se il progetto è stato compilato in una versione precedente di Unity, vedere le guide all'aggiornamento di Unity.
  4. Seguire le istruzioni per l'uso dell'aggiornamento automatico dell'API di Unity.
  5. Verificare se è necessario apportare altre modifiche per eseguire il progetto ed eseguire eventuali errori e avvisi.

2. Aggiornare il middleware alle versioni più recenti

Con qualsiasi aggiornamento di Unity, potrebbe essere necessario aggiornare uno o più pacchetti middleware da cui dipende il gioco o l'applicazione. L'aggiornamento al middleware più recente aumenta la probabilità di esito positivo durante il resto del processo di conversione.

3. Specificare come destinazione l'esecuzione dell'applicazione in Win32

Dall'interno dell'applicazione Unity:

  1. Passare a Compilazione file>Impostazioni.
  2. Selezionare PC, Mac, Linux autonomo.
  3. Impostare la piattaforma di destinazione su Windows.
  4. Impostare l'architettura su x86.
  5. Selezionare Cambia piattaforma.

Nota

Se l'applicazione ha dipendenze da servizi specifici del dispositivo, ad esempio la creazione di corrispondenze da Steam, disabilitarle ora. È possibile associare i servizi equivalenti Windows in un secondo momento.

4. Aggiungere il supporto per il plug-in OpenXR Realtà mista

  1. Scegliere e installare una versione di Unity e un plug-in XR. Anche se Unity 2020.3 LTS con il plug-in OpenXR Realtà mista è ideale per lo sviluppo di Realtà mista, è anche possibile creare app con altre configurazioni di Unity.

  2. Rimuovere o compilare in modo condizionale qualsiasi libreria supportato specificamente per un altro SDK VR. Tali asset possono modificare le impostazioni e le proprietà del progetto in modi incompatibili con Windows Mixed Reality.

    Ad esempio, se il progetto fa riferimento a SteamVR SDK, aggiornare il progetto in modo da usare le API VR comuni di Unity, che supportano sia Windows Mixed Reality che SteamVR.

  3. Nel progetto Unity specificare come destinazione Windows 10 SDK.

  4. Per ogni scena , configurare la fotocamera.

5. Configurare l'hardware Windows Mixed Reality

  1. Esaminare i passaggi nella configurazione del visore VR immersive.
  2. Informazioni su come usare il simulatore di Windows Mixed Reality e spostarsi nella home page del Windows Mixed Reality.

6. Utilizzare la fase per posizionare il contenuto sul pavimento

È possibile creare esperienze Realtà mista in un'ampia gamma di scalabilità di esperienze. Se si sta eseguendo la conversione di un'esperienza di scalabilità seduta, assicurarsi che Unity sia impostato sul tipo di spazio di rilevamento stazioni :

XRDevice.SetTrackingSpaceType(TrackingSpaceType.Stationary);

Questo codice imposta il sistema di coordinate mondiali di Unity per tenere traccia della cornice di riferimento fissa. Nella modalità di rilevamento stazioni, il contenuto inserito nell'editor appena davanti alla posizione predefinita della fotocamera (forward è -Z) viene visualizzato davanti all'utente all'avvio dell'app. Per rendere più recente l'origine seduta dell'utente, è possibile chiamare XR di Unity. Metodo InputTracking.Recenter .

Se stai effettuando una conversione di un'esperienza su scala permanente o su scala locale, stai inserendo contenuto relativo al pavimento. Si tratta del pavimento dell'utente usando la fase spaziale, che rappresenta l'origine a livello di pavimento definita dall'utente. La fase spaziale può includere un limite di sala facoltativo configurato durante la prima esecuzione.

Per queste esperienze, assicurarsi che Unity sia impostato sul tipo di spazio di rilevamento RoomScale . RoomScale è l'impostazione predefinita, ma impostarla in modo esplicito e assicurarsi di tornare a true. Questa procedura rileva situazioni in cui l'utente ha spostato il computer dalla stanza che ha calibrato.

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

Dopo che l'app imposta correttamente il tipo di spazio di rilevamento RoomScale, il contenuto posizionato sul piano y=0 viene visualizzato sul pavimento. L'origine a (0, 0, 0) è il luogo specifico sul pavimento in cui l'utente si trovava durante l'installazione della stanza, con -Z che rappresenta la direzione in avanti di fronte durante l'installazione.

Nel codice di script è quindi possibile chiamare il TryGetGeometry metodo sul UnityEngine.Experimental.XR.Boundary tipo per ottenere un poligono limite, specificando un tipo di limite di TrackedArea. Se l'utente ha definito un limite, viene restituito un elenco di vertici. È quindi possibile offrire un'esperienza su scala locale all'utente, in cui è possibile spostarsi nella scena creata.

Il sistema esegue automaticamente il rendering del limite quando l'utente lo avvicina. L'app non deve usare questo poligono per eseguire il rendering del limite stesso.

Esempio di risultati:

Example of results

Per altre informazioni, vedere Sistemi di coordinate in Unity.

7. Usare il modello di input

Ogni gioco o applicazione destinata a un display a testa esistente (HMD) ha un set di input gestiti, tipi di input necessari per l'esperienza e API specifiche che chiama per ottenere tali input. È semplice e semplice sfruttare gli input disponibili in Windows Mixed Reality.

Vedere la guida alla conversione di input per Unity per informazioni dettagliate su come Windows Mixed Reality espone l'input e su come viene eseguito il mapping dell'input a ciò che l'applicazione esegue ora.

Importante

Se si usano controller HP Reverb G2, vedere HP Reverb G2 Controllers in Unity per altre istruzioni sul mapping di input.

8. Testare e ottimizzare le prestazioni

Windows Mixed Reality è disponibile in molti dispositivi, da PC di gioco di fascia alta a PC mainstream di ampio mercato. Questi dispositivi hanno budget di calcolo e grafica notevolmente diversi disponibili per l'applicazione.

Se hai convertito l'app usando un PC Premium con budget di calcolo e grafica significativi, assicurati di testare e profilare l'app su hardware che rappresenti il tuo mercato di destinazione. Per altre informazioni, vedere Windows Mixed Reality linee guida di compatibilità hardware minime per PC.

Sia Unity che Visual Studio includono profiler delle prestazioni e linee guida per la pubblicazione di Microsoft e Intel per la profilatura e l'ottimizzazione delle prestazioni.

Per una descrizione approfondita delle prestazioni, vedere Informazioni sulle prestazioni per Realtà mista. Per informazioni dettagliate specifiche su Unity, vedere Consigli sulle prestazioni per Unity.

Mapping dell'input

Per informazioni e istruzioni sul mapping di input, vedere Guida alla conversione di input per Unity.

Importante

Se si usano controller HP Reverb G2, vedere HP Reverb G2 Controller in Unity per altre istruzioni di mapping di input.

Vedi anche