Presence in VR: ImmotionRoom - dtc.immotionar.comdtc.immotionar.com/Slides/Immotionar_2.pdf · UE4...

28
[email protected] - @giannirg Presence in VR: ImmotionRoom Gianni Rosa Gallina & Antony Vitillo Torino, 23 Settembre 2016 [email protected] - @SkarredGhost

Transcript of Presence in VR: ImmotionRoom - dtc.immotionar.comdtc.immotionar.com/Slides/Immotionar_2.pdf · UE4...

Page 1: Presence in VR: ImmotionRoom - dtc.immotionar.comdtc.immotionar.com/Slides/Immotionar_2.pdf · UE4 e CryEngine hanno prestazioni grafiche migliori Tutti i nomi, immagini, prodotti,

[email protected] - @giannirg

Presence in VR: ImmotionRoomGianni Rosa Gallina & Antony Vitillo

Torino, 23 Settembre 2016

[email protected] - @SkarredGhost

Page 2: Presence in VR: ImmotionRoom - dtc.immotionar.comdtc.immotionar.com/Slides/Immotionar_2.pdf · UE4 e CryEngine hanno prestazioni grafiche migliori Tutti i nomi, immagini, prodotti,

Sponsor

Page 3: Presence in VR: ImmotionRoom - dtc.immotionar.comdtc.immotionar.com/Slides/Immotionar_2.pdf · UE4 e CryEngine hanno prestazioni grafiche migliori Tutti i nomi, immagini, prodotti,

Dr. Gianni ROSA GALLINAHead of division e Software Architect

NUI Designer (Microsoft Kinect, Leap Motion, Intel RealSense)

VR Developer (Oculus Rift, Gear VR, Google Cardboard, Unity 3D)

• Software Architect e Senior Developer in BEPS Engineering

Tecnologie Windows Embedded (sviluppo di sistema/applicazioni)

IoT: integrazione Cloud ed Embedded con servizi Microsoft Azure

Progettazione app per mobile/tablet (Windows / WinPhone / Xamarin)

Big Data & Analytics

• Autore Pluralsight

• Laurea Magistrale in Ingegneria Informatica (Applicazioni Multimediali)Politecnico di Torino, 2009

[email protected]

@giannirg

Chi siamo

Page 4: Presence in VR: ImmotionRoom - dtc.immotionar.comdtc.immotionar.com/Slides/Immotionar_2.pdf · UE4 e CryEngine hanno prestazioni grafiche migliori Tutti i nomi, immagini, prodotti,

Dr. Antony VITILLOPR e Chief R&D Developer

Esperto di Computer Vision e Body Tracking

NUI Designer (Microsoft Kinect, Leap Motion, Intel RealSense)

VR Developer (Oculus Rift, GearVR, Google Cardboard, Unity 3D)

Sviluppatore/designer di giochi per Windows/Windows Phone

• Consulente

• Blogger

• Laurea in Ingegneria InformaticaPolitecnico di Torino, 2007

[email protected]

@SkarredGhost

Chi siamo

Page 5: Presence in VR: ImmotionRoom - dtc.immotionar.comdtc.immotionar.com/Slides/Immotionar_2.pdf · UE4 e CryEngine hanno prestazioni grafiche migliori Tutti i nomi, immagini, prodotti,

Agenda

• Come sviluppare esperienze in realtà virtuale

Unity3D

Oculus SDK

Peculiarità

• Problemi della realtà virtuale classica

Presence

Motion sickness

• ImmotionRoom

Descrizione

SDK

Demo

Page 6: Presence in VR: ImmotionRoom - dtc.immotionar.comdtc.immotionar.com/Slides/Immotionar_2.pdf · UE4 e CryEngine hanno prestazioni grafiche migliori Tutti i nomi, immagini, prodotti,

Sviluppare per la VR

“How to start developing for virtual reality?” è una delle domande piùrichieste su reddit

Per sviluppare per la realtà virtuale servono le stesse competenze (o

quasi) dello sviluppo di qualsiasi gioco (per mobile, per PC, etc…)

• Conoscenza di game engine (Unity3D, Unreal Engine, CryEngine, etc…)

• Capacità di programmare (C# / C++)

• Reperibilità di elementi multimediali (modelli 3D, suoni, etc…)

Page 7: Presence in VR: ImmotionRoom - dtc.immotionar.comdtc.immotionar.com/Slides/Immotionar_2.pdf · UE4 e CryEngine hanno prestazioni grafiche migliori Tutti i nomi, immagini, prodotti,

Sviluppare per la VR

Unity3D è il game engine più usato

• Semplice da utilizzare

• Forse il migliore per prototipare

• Supporta nativamente la VR (e non solo)

• Grande community

Potrebbe non essere il migliore per

l’applicazione di interesse

• UE4 e CryEngine hanno prestazioni grafiche migliori

Tutti i nomi, immagini, prodotti, marchi registrati citati sono di proprietà dei rispettivi proprietari.

Page 8: Presence in VR: ImmotionRoom - dtc.immotionar.comdtc.immotionar.com/Slides/Immotionar_2.pdf · UE4 e CryEngine hanno prestazioni grafiche migliori Tutti i nomi, immagini, prodotti,

Sviluppare per la VR

Andiamo a conoscere Unity…

Page 9: Presence in VR: ImmotionRoom - dtc.immotionar.comdtc.immotionar.com/Slides/Immotionar_2.pdf · UE4 e CryEngine hanno prestazioni grafiche migliori Tutti i nomi, immagini, prodotti,

Sviluppare per la VR

Riassumendo:

• Ogni elemento di gioco è un GameObject

• Questo oggetto ha dei comportamenti, che sono i behaviour

• I behaviour possono essere di qualunque tipo

• L’unico behaviour di default è la Transform

• Lo sviluppatore può (e deve) implementarsi i propri behaviour

mediante scripting (C#)

• Si possono salvare degli elementi di gioco come Prefab

per uso futuro

• Si possono salvare interi progetti come Package

Page 10: Presence in VR: ImmotionRoom - dtc.immotionar.comdtc.immotionar.com/Slides/Immotionar_2.pdf · UE4 e CryEngine hanno prestazioni grafiche migliori Tutti i nomi, immagini, prodotti,

Sviluppare per la VR

Per sviluppare per un particolare visore bisogna scaricare l’SDK (e il runtime) dal

sito del produttore

• Tutti offrono anche un package per sviluppare mediante Unity

• Ogni package ha le sue peculiarità, ma sono molto simili

Andremo ora a sviluppare in Unity mediante il plugin di Oculus

• È quello presente sul mercato da più tempo

• Permette di sviluppare sia per PC (Oculus Rift) che per mobile (GearVR)

Tutti i nomi, immagini, prodotti, marchi registrati citati sono di proprietà dei rispettivi proprietari.

Page 11: Presence in VR: ImmotionRoom - dtc.immotionar.comdtc.immotionar.com/Slides/Immotionar_2.pdf · UE4 e CryEngine hanno prestazioni grafiche migliori Tutti i nomi, immagini, prodotti,

Sviluppare per la VR

Andiamo a sviluppare una demo in VR…

Page 12: Presence in VR: ImmotionRoom - dtc.immotionar.comdtc.immotionar.com/Slides/Immotionar_2.pdf · UE4 e CryEngine hanno prestazioni grafiche migliori Tutti i nomi, immagini, prodotti,

Sviluppare per la VR

Riassumendo:

• Si scarica l’integrazione con Unity dal sito di Oculus

(https://developer3.oculus.com/downloads/)

• È consigliabile l’uso delle Oculus Utilities for Unity 5

• Si scarica il package e poi lo si importa all’interno di Unity

• Basta sostituire la camera o il player controller standard con

il corrispettivo VR

• Si fa la build per PC o Mobile

Page 13: Presence in VR: ImmotionRoom - dtc.immotionar.comdtc.immotionar.com/Slides/Immotionar_2.pdf · UE4 e CryEngine hanno prestazioni grafiche migliori Tutti i nomi, immagini, prodotti,

Sviluppare per la VR

Peculiarità dello sviluppo in VR:

• UX da reinventare

• I classici HUD sono sconsigliati

• La VR introduce dei nuovi meccanismi

di input

• Assenza di standard

• Alto FPS (90 Hz)

• Bisogna tornare ad ottimizzare le scene

• Criticità soprattutto per visori mobile

• Presence e virtual sickness

Page 14: Presence in VR: ImmotionRoom - dtc.immotionar.comdtc.immotionar.com/Slides/Immotionar_2.pdf · UE4 e CryEngine hanno prestazioni grafiche migliori Tutti i nomi, immagini, prodotti,

Come interagire o muoversi in VR?

Page 15: Presence in VR: ImmotionRoom - dtc.immotionar.comdtc.immotionar.com/Slides/Immotionar_2.pdf · UE4 e CryEngine hanno prestazioni grafiche migliori Tutti i nomi, immagini, prodotti,

Mal di «virtuale» (Motion Sickness)

Page 16: Presence in VR: ImmotionRoom - dtc.immotionar.comdtc.immotionar.com/Slides/Immotionar_2.pdf · UE4 e CryEngine hanno prestazioni grafiche migliori Tutti i nomi, immagini, prodotti,

Strategie da adottare

• Attenzione a cosa e quando si mangia

• Ambiente tranquillo

• Configurare il profilo utente

• Configurare i visori per uso confortevole

• Stare seduti

• Iniziare lentamente

• Prendere il proprio tempo

• Fare pause

• Imparare a riconoscere i sintomi

• Smettere immediatamente

Page 17: Presence in VR: ImmotionRoom - dtc.immotionar.comdtc.immotionar.com/Slides/Immotionar_2.pdf · UE4 e CryEngine hanno prestazioni grafiche migliori Tutti i nomi, immagini, prodotti,

Consigli per le app VR

• Ridurre movimenti automatici

• Accelerazioni brevi e non frequenti

• Solo movimenti di camera controllati dall’utente

• Eliminare il dondolio della testa in prima persona

• Ridurre i movimenti laterali o all’indietro

• Evitare scale o pattern ripetitivi

Page 18: Presence in VR: ImmotionRoom - dtc.immotionar.comdtc.immotionar.com/Slides/Immotionar_2.pdf · UE4 e CryEngine hanno prestazioni grafiche migliori Tutti i nomi, immagini, prodotti,

Possibili soluzioni

Tutti i nomi, immagini, prodotti, marchi registrati citati sono di proprietà dei rispettivi proprietari.

Page 19: Presence in VR: ImmotionRoom - dtc.immotionar.comdtc.immotionar.com/Slides/Immotionar_2.pdf · UE4 e CryEngine hanno prestazioni grafiche migliori Tutti i nomi, immagini, prodotti,

ImmotionRoom

Soluzione completa per poter vivere la realtà virtuale

con tutto il proprio corpo.

Unisce tecnologie diverse:

• Sensori per rilevare la posa del giocatore

• Anche non indossati, come Kinect

• Visori per fornire la realtà virtuale

Page 20: Presence in VR: ImmotionRoom - dtc.immotionar.comdtc.immotionar.com/Slides/Immotionar_2.pdf · UE4 e CryEngine hanno prestazioni grafiche migliori Tutti i nomi, immagini, prodotti,

ImmotionRoom

Il funzionamento è il seguente:

• Una stanza viene attrezzata con sensori (ad es. Microsoft Kinect) e

configurata

• Viene lanciata l’esperienza di realtà virtuale

• Gli utenti, indossando semplicemente il visore

(nel caso delle Kinect), vivono l’esperienza VR

con tutto il proprio avatar

• Vedono il proprio corpo

• Interagiscono con mani e piedi

• Si muovono senza nausea camminando sul posto

Page 21: Presence in VR: ImmotionRoom - dtc.immotionar.comdtc.immotionar.com/Slides/Immotionar_2.pdf · UE4 e CryEngine hanno prestazioni grafiche migliori Tutti i nomi, immagini, prodotti,

ImmotionRoom

Permette di risolvere molti dei problemi appena enunciati:

• Presence aumentata dalla presenza dell’avatar

• Motion sickness ridotta dal room-scale e dal walk-scale

Page 22: Presence in VR: ImmotionRoom - dtc.immotionar.comdtc.immotionar.com/Slides/Immotionar_2.pdf · UE4 e CryEngine hanno prestazioni grafiche migliori Tutti i nomi, immagini, prodotti,

ImmotionRoom

Funzionalità:• Tracciatura multi-corpo a 360°

• Camminata naturale sul posto + tracking posizionale a

livello stanza

• Interazioni naturali con mani/piedi

• Avatar personalizzabile

• Compatibilità cross-device

• Visori: Oculus Rift, Gear VR, Razer OSVR,

Google Cardboard

• Sensori: Kinect v2; Kinect v1 e VicoVR (in

prossimi update)

• Compatibilità cross-platform

• Windows/Android

• Plugin per Unity 3D

• Setup Plug-and-Play

• Wired e/o Wireless

• App di configurazione per PC/mobile

• Open by design

Page 23: Presence in VR: ImmotionRoom - dtc.immotionar.comdtc.immotionar.com/Slides/Immotionar_2.pdf · UE4 e CryEngine hanno prestazioni grafiche migliori Tutti i nomi, immagini, prodotti,

ImmotionRoom SDK

Beta scaricabile dal sito di Immotionar

• Viene fornito il runtime da installare sulle varie machine

• Astrae l’esperienza dal tipo di sensore utilizzato

• Unity plugin per poter sviluppare esperienze VR

• Stessa filosofia drag-and-drop degli altri package VR

• Semplice da utilizzare, con molti parametri di configurazione

• Fornisce dati di basso o alto livello

• Compatibile con tutti i più noti visori

• Lo sviluppatore può aggiungere il supporto per nuovi device

• Può anche essere utilizzato senza la realtà virtuale

Page 24: Presence in VR: ImmotionRoom - dtc.immotionar.comdtc.immotionar.com/Slides/Immotionar_2.pdf · UE4 e CryEngine hanno prestazioni grafiche migliori Tutti i nomi, immagini, prodotti,

ImmotionRoom SDK

Andiamo a sviluppare una piccolo demo…

Page 25: Presence in VR: ImmotionRoom - dtc.immotionar.comdtc.immotionar.com/Slides/Immotionar_2.pdf · UE4 e CryEngine hanno prestazioni grafiche migliori Tutti i nomi, immagini, prodotti,

ImmotionRoom SDK

Riassumendo:

• Per implementare ImmotionRoom nel proprio

gioco, basta sostituire il player controller standard

con quello di ImmotionRoom

Ovviamente l’interazione dell’utente deve essere

ripensata

• Si può cambiare l’avatar a proprio piacimento

andando a cambiare gli script relativi all’avateering

• Si può accedere ai dati di basso livello

• Gestione interazione utente mediante collider su

mani e piedi

Page 26: Presence in VR: ImmotionRoom - dtc.immotionar.comdtc.immotionar.com/Slides/Immotionar_2.pdf · UE4 e CryEngine hanno prestazioni grafiche migliori Tutti i nomi, immagini, prodotti,

ImmotionRoom SDK

Andiamo a vedere una demo che stiamo sviluppando…

Page 27: Presence in VR: ImmotionRoom - dtc.immotionar.comdtc.immotionar.com/Slides/Immotionar_2.pdf · UE4 e CryEngine hanno prestazioni grafiche migliori Tutti i nomi, immagini, prodotti,

ImmotionRoom SDK

Grazie per la vostra attenzione!

Se avete domande…