16
Formation Unity VR Parce que la VR c’est trop cool

Formation Unity 3D Réalité Virtuelle

Embed Size (px)

Citation preview

Page 1: Formation Unity 3D Réalité Virtuelle

Formation Unity VRParce que la VR c’est trop cool

Page 2: Formation Unity 3D Réalité Virtuelle

Qui suis-je ?

Yannick Comte

- Développeur R&D Réalité Virtuelle chez Wanadev

- Développeur de jeux vidéo en Réalité Virtuelle

- Contributeur OSVR

- Auteur d’articles et de toolkit pour la Réalité Virtuelle

Me suivre

- Twitter : @CYannick

- Google+ : http://plus.google.com/+YannickComte

Page 3: Formation Unity 3D Réalité Virtuelle

Rappel Unity

- Moteur 3D et 2D

- Gère le son

- Animation

- Physique

- Multiplateformes (Linux, Mac, Android, iOS, WebGL, Xbox One, etc...)

- VR : Oculus Rift (Runtime 1.3+), OpenVR (Vive, etc...)

- Scripting C#

- Extensible (plugins, code natif, etc...)

Page 4: Formation Unity 3D Réalité Virtuelle

Red or Blue pill?!

Page 5: Formation Unity 3D Réalité Virtuelle

Rappel sur les casques

- Oculus : Le Rift CV1 est la version actuelle grand public. L’application Oculus

Home est requise à son fonctionnement

- HTC Vive : Le Vive est née d’un partenariat entre HTC et Valve (Steam, Half

Life, etc...). La plateforme Steam est requise ainsi que l’application SteamVR.

- HDK : Née d’un partenariat entre Sensics et Razer. Il fonctionne sur la

plateforme OSVR. Razer a crée le design et produit le HDK, Sensics

s’occupe de la conception matériel et logiciel (OSVR entre autre).

Page 6: Formation Unity 3D Réalité Virtuelle

OpenVR

OpenVR est l’API utilisée par le HTC Vive sur Steam. Elle est ouverte aux tiers et

gère le Rift, mais aussi les casques fonctionnant sur OSVR (via un driver externe).

- Créer des drivers pour d’autres casques (OSVR)

- Créer des drivers de contrôleurs VR (Razer Hydra, Leap Motion, PS Move)

- L’utiliser sous Windows, Linux (prochainement) et Mac (en théorie)

C’est une API universelle dont les sources sont fermées (seuls les headers sont

disponibles). Nous pouvons l’utiliser pour développer avec tous les casques du

marché.

Page 7: Formation Unity 3D Réalité Virtuelle

Unity : VR Everywhere

Supporter un projet VR en quelques clics

(Oculus, OpenVR)

File / Build Settings / Player Settings / Other

Settings / Virtual reality SDKs

La caméra principale sera surchargée avec

la position et la rotation du casque !

Page 8: Formation Unity 3D Réalité Virtuelle

Scripting C#

MonoBehaviour : La classe de base d’un script. Il s'attache sur un GameObject

(noeud sur la scène)

- Awake() équivalent au constructeur

- OnEnable/Disable je vous laisse deviner

- OnDestroy() Quand le script est détruit

- Start() une fois que tous les MonoBehaviour sont chargés (Awake appelé)

- Update() Mise à jour des inputs, etc..

- FixedUpdate() Mise à jour de la physique (Rigidbody)

LateUpdate() Mise à jour de la caméra

Page 9: Formation Unity 3D Réalité Virtuelle

Documentation

La documentation C#

- https://docs.unity3d.com/ScriptReference/

Les tutoriels Français

- http://blog.drakulo.com/

- http://www.demonixis.net/blog

Page 10: Formation Unity 3D Réalité Virtuelle

Les plugins / Outils utiles

- Demonixis.Toolbox : Scripts pour gérer les SDKs VR, l’UI, etc...

- ProBuilder : Outil de level design (Blender pour les nuls), la version gratuite

est suffisante pour commencer, la version payante coûte 100$

- InControl : Gestion des input (37.50€)

- DoTween : Animation / Séquences

Page 11: Formation Unity 3D Réalité Virtuelle

Les SDKs

- Le SDK OSVR

- Le SDK OpenVR (SteamVR)

- Le SDK Oculus Rift et Gear VR

Pour une utilisation facile => Demonixis.VR

Gère automatiquement l’ajout des différents scripts sur votre prefab de joueur. Il

restera ainsi propre de tout script vendeur !

Page 12: Formation Unity 3D Réalité Virtuelle

Créer un FPS (rien qu’ça)

- Créer le niveau

- Créer le contrôleur

- Tirer

- Tester

Règle numéro 1 : Forcer le déplacement du joueur peut rendre malade (motion

sickness), il ne faut pas être trop brusque, mais on s’y fait !

Règle numéro 2 : Du coup on utilise de la téléportation car c’est à la mode et ça

ne rend personne malade.

Page 13: Formation Unity 3D Réalité Virtuelle

Hiérarchie du joueur

Player : GameObject (déplacement)

-> Head : GameObject

-> TrackingSpace : GameObject

-> MainCamera : Camera

-> Canvas (UI à appliquer au joueur)

-> Controllers : GameObject (conteneur des contrôleurs au cas ou)*

Cette hiérarchie est proposée par Oculus et fonctionne avec TOUT.

* Si les contrôleurs ne gère pas la position par rapport au casque, il faut les attacher au GameObject Head

Page 14: Formation Unity 3D Réalité Virtuelle

L’UI : Car c’est important

Règle numéro 3 : Ne pas charger le champs de vision du joueur

- Pas de notion d’écran en VR

- Uniquement des UI World Space

- Fonctionnement des UI

- Interaction au regard avec VRGazeUI.cs https://github.com/demonixis/Unity-

toolbox/blob/master/VR/VRGazeUI.cs

- On oublie pas de s’ajouter un callback pour AddInputListener qui va valider

ou pas l’action.

Page 15: Formation Unity 3D Réalité Virtuelle

La téléportation

- Ajout d’un sprite qui réagit au regards

- Utiliser ScreenFader https://github.com/demonixis/Unity-

toolbox/blob/master/Graphics/ScreenFader.cs pour faire une transition propre

var pos = target.position

pos.y = player.y;

transform.position = pos;

Règle numéro 4 : On ne modifie pas directement la rotation (pour ne pas que le

joueur perde ses repaires, mais il y a des exceptions évidemment :-) )

Page 16: Formation Unity 3D Réalité Virtuelle

Fin