V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey...

93
Unity3D - Réalité Virtuelle V.R.T.K - Fondations 1

Transcript of V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey...

Page 1: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

Unity3D - Réalité VirtuelleV.R.T.K - Fondations

1

Page 2: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

▷ VRTK○ Harvey Ball & the V.R.T.K community

▷ This training ○ Author : Sébastien Yriarte, Tech’N’Smile○ Google Slide Template : Slides Carnival○ Photo : Unsplash

▷ Licence d’utilisation : ○ Creative Commons

Attribution & Share Alike

Credits & Licence

2

Page 3: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

Bienvenue !

Je m’appelle Sébastien YriarteV.R.T.K a transformé ma vie !

Pour me joindre :

[email protected]

@technsmile @py_yseb

3

Page 4: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

▷ Audience

▷ Prérequis du cours

▷ Objectifs du cours

▷ A quoi s’attendre

A propos de ce cours

4

Page 5: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

Sommaire

▷ Découverte de V.RT.K.

▷ La téléportation

▷ Interactions avec des objets

▷ Interface graphique5

Page 6: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

1.Découverte de V.RT.K.

Présentation de VRTKInstallation SteamVR + VRTKUtilisation du simulateur VR

Préparation d’une scène avec VRTK

6

Page 7: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

▷ Auteur VRTK : Harvey Ball ○ The Stone Fox○ @the_stonefox

▷ Presentation VRTK Unite 2017 https://www.youtube.com/watch?v=AbIiBrg8yT4

Présentation de VRTK

7

Page 8: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

▷ VRTK est un environnement de travail alternatif qui facilite la création d’applications VR en mutualisant des scripts○ Déplacement○ Interaction avec des objets○ Interface graphique○ Gestion corporelle

▷ Community driven○ Champ d'étude de ce qui fonctionne en VR○ +50 contributeurs○ 2000 personnes participent aux discussions

Présentation de VRTK

8

Page 9: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

▷ VRTK agit comme une couche d’abstraction pour les SDKs VR○ Simulateur VR○ SteamVR○ Oculus○ Windows Mixed Reality

▷ Plateformes supportées expérimentalement○ Ximmerse○ DayDream○ Gear VR

Présentation de VRTKUn SDK pour les contrôler tous ...

9

Page 10: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

▷ Pourquoi, quand utiliser VRTK ?○ Support de plusieurs plateformes VR○ Va au delà du sdk SteamVR (ui, escalade ... )○ Gain de productivité○ Plébiscité par la communauté de développeurs VR○ Solutions pour des problèmes de VR génériques prêt à

l’emploi

Présentation de VRTK

10

Page 11: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

▷ Documentation https://vrtoolkit.readme.io/docs

▷ Slack http://invite.vrtk.io/

▷ Tutoriels vidéos YoutubeVRTKhttps://www.youtube.com/channel/UCWRk-LEMUNoZxUmY1wO7DBQStone foxhttps://www.youtube.com/playlist?list=PLRM1b2lKjTbdFJtYv_SNAb3NvYp-Gl7nZ

Présentation de VRTK

11

Page 12: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

▷ Créer un nouveau projet Unity

▷ Asset Store > SteamVR > Import > Accept All

▷ Asset Store > VRTK > Import > Accept All

▷ Ouvrir la scène VRTK > Examples > 004_CameraRig_BasicTeleport

Installation SteamVR + VRTK

12

Page 13: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

▷ Steam VR est le composant actif par défaut

▷ Une téléportation par pointeur est disponible pour se déplacer dans la scène

▷ Un switch de Kit VR est disponible dans l’interface graphique côté écran

Installation SteamVR + VRTK

13

Page 14: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

▷ Permet de simuler les entrées sorties d’un casque et de contrôleurs VR sans matériel avec le clavier et une souris

Le simulateur VR

14

Page 15: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

▷ Utile lorsqu’un développeur n’a pas accès à du matériel VR○ le développeur d’App VR est en déplacement

○ une équipe n’a pas tout le temps accès à une machine puissante avec un casque VR

○ pour collaborer avec d’autres équipes qui n’ont pas d'équipement

Le simulateur VR

15

Page 16: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

▷ Pour une démonstration rapide○ Ouvrir la scène

VRTK>Examples> 004_CameraRig_BasicTeleport○ Copier les objets [VRTK_Scripts] et [VRTK_Manager]○ Créer une nouvelle scène○ Coller les objets [VRTK_Scripts] et [VRTK_Manager]○ Sauver la scène○ Lancer la scène

▷ La copie de l’exemple importe l’ensemble de tous les SDKs VR, SteamVR est détecté et actif par défaut.

Préparation d’une scène

16

Page 17: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

▷ Créer une scène○ Supprimer la caméra

▷ Préparation de [VRTK SDK]○ Créer un GameObjet○ Le nommer [VRTK SDK]○ Ajouter le composant VRTK_SDK Manager

Préparation d’une scèneInstallation manuelle

17

Page 18: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

▷ Préparation de [SteamVRSDK]○ Ajouter un GameObjet enfant [VRTK_SDK]○ Le nommer SteamVRSDK○ Ajouter le composant VRTK_SDK Setup○ Instancier les Prefabs SteamVR dans SteamVRSDK

■ SteamVR>Prefabs>[CameraRig] ■ SteamVR>Prefabs>[SteamVR]

○ Paramétrer le composant VRTK_SDK Setup■ Quick Select : SteamVR

Préparation d’une scèneInstallation manuelle

18

Page 19: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

▷ Paramétrer VRTK SDK○ Sélectionner le GameObject VRTK SDK

○ Paramétrer le composant VRTK_SDK Manager■ Ajouter dans la liste des setups disponibles le

GameObject SteamVRSDK■ Sélectionner le bouton AutoPopulate■ Vérifier le fonctionnement

Préparation d’une scèneInstallation manuelle

19

Page 20: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

▷ Définir les contrôleurs○ Ajouter un GameObject [VRTKScripts]○ Ajouter deux GameObjects enfants LeftController et

RightController

▷ Attacher les manettes au VRTK SDK○ Sélectionner le gameObject VRTK SDK○ Parameter VRTK_SDK Manager> Script Aliases

■ Left Controller => Left Controller■ Right Controller => Right Controller

Préparation d’une scèneInstallation manuelle

20

Page 21: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

▷ Définir le simulateur○ Ajouter un GameObject au GameObject VRTKSDK○ Le nommer Simulator○ Ajouter le Prefab

VRTK>Prefabs>VRSimulatorCameraRig○ Ajouter le composant VRTK SDK Setup

■ SDK Selection>QuickSelect : Simulator

Préparation d’une scèneInstallation manuelle

21

Page 22: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

▷ Définir le simulateur○ Sélectionner le GameObject VRTK SDK

○ Paramétrer le composant VRTK_SDK Manager■ Sélectionner le bouton AutoPopulate

○ Vérifier le fonctionnement

Préparation d’une scèneInstallation manuelle

22

Page 23: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

▷ Ajouter un acces aux differents SDK○ Ajouter le prefab SDKSetupSwitcher○ TODO

Préparation d’une scèneInstallation manuelle

23

Page 24: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

2.La téléportation

Téléportation simpleTéléportation avancée

Téléportation SmartApparence de la téléportation

24

Page 25: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

▷ Utiliser/Créer une scène paramétrée avec VRTK, SteamVR, les prefabs associés et les scripts de bases initialisés

▷ Paramétrer les GameObjects LeftController et RightController○ Ajouter le script VRTK_StraightPointerRenderer

permettant le rendu de pointeur linéaire

Téléportation simple

25

Page 26: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

▷ Paramétrer les GameObjects LeftController et RightController○ Ajouter le script VRTK_Pointer pour associer une

interface de pointage○ Pour chaque contrôleur, associer le paramètre

PointerRenderer vers son GameObject correspondant

Téléportation simple

26

Page 27: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

▷ Paramétrer les GameObjects LeftController et RightController○ Ajouter le script VRTK_ControllerEvents pour

transmettre les informations du SDK Steam vers VRTK_Pointer

▷ Tester l'émission de lasers

Téléportation simple

27

Page 28: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

▷ Paramétrer une aire de téléportation valide○ Ajouter le GameObject PlayAreaScripts dans l’objet

VRTKScripts○ Ajouter le composant VRTK_BasicTeleport

▷ Tester la téléportation

La téléportation simple ne gère pas les volumes

Téléportation simple

28

Page 29: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

▷ La téléportation progressive○ Selectionner le GameObject

VRTKScripts>PlayAreaScripts○ Supprimer le composant VRTK_BasicTeleport○ Ajouter le composant VRTK_DashTeleport○ Tester le comportement

▷ La téléportation HeightAjust○ Selectionner le GameObject

VRTKScripts>PlayAreaScripts○ Supprimer le composant VRTK_DashTeleport○ Ajouter le composant VRTK_HeightAdjustTeleport○ Tester le comportement

Téléportation avancée

29

Page 30: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

▷ La téléportation fonctionne avec les terrains lorsqu’ils ont un composant TerrainCollider

▷ La téléportation fonctionne avec les mesh lorsqu’ils ont un composant MeshCollider

▷ La téléportation fonctionne avec un navmesh lorsqu’il est calculé

Téléportation avancée

30

Page 31: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

▷ Empêcher/Restreindre la téléportation sur un élément○ Selectionner le GameObject VRTKScripts>PlayArea○ Ajouter un composant VRTK_PolicyList

■ Operation : Ignore / Include■ CheckTypes : Tag (ExcludeTeleport), Script, Layer■ Elements : GameObjects ciblés

▷○ Paramétrer VRTK_xxxTeleport

■ TargetListPolicy : lui-même

Téléportation avancée

31

Page 32: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

▷ Restreindre la téléportation sur un NavMesh○ Afficher l’outil Menu>Window>Navigation○ Sélectionner l’onglet Bake○ Ajuster les paramètres du NavMesh : Radius, Height,

Slope, StepHeight … ○ Appuyer sur le bouton Bake

Téléportation avancée

32

Page 33: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

▷ Restreindre la téléportation sur un NavMesh

○ Selectionner le GameObject VRTKScripts>PlayArea

○ Paramétrer VRTK_xxxTeleport■ NavMesh Limit Distance : 0.5

Téléportation avancée

33

Page 34: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

▷ Restreindre la téléportation sur des points de teleportation○ Instancier dans la scène des Prefabs

VRTK>Prefabs>DestinationPoint○ Selectionner le GameObject VRTKScripts>PlayArea○ Ajouter un composant VRTK_PolicyList

■ Operation : Include■ CheckTypes : Script■ Elements : VRTK_DestinationPoint

○ Paramétrer VRTK_xxxTeleport■ TargetListPolicy : lui-même

Téléportation avancée

34

Page 35: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

▷ Limitations de la téléportation bézier○ Elle est complexe à utiliser pour atteindre des endroits

en hauteur○ Il faut plusieurs sauts pour atteindre des endroits

éloignés○ Elle ne passe pas à travers les murs :D

▷ Pour faciliter l’accès à certains emplacements la destination d’un DestinationPoint peut être définie à un autre emplacement○ bas de l’escalier => haut de l’escalier○ porte dans la rue => salon d’un appartement

Téléportation Smart

35

Page 36: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

▷ Définir un emplacement différent pour un DestinationPoint○ Créer un Cube

■ Scale : 1, 100,1

○ Créer un GameObject vide qui servira de destination■ Nom : TP_Sommet■ Position : sommet du cube.

○ Créer un DestinationPoint ■ Position : au pied du cube■ DestinationLocation : TP_Sommet

Téléportation Smart

36

Page 37: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

▷ L'expérience de téléportation par défaut ne gère pas la gravité. L’utilisateur est libre de marcher dans le vide, sur l’eau …

▷ Pour simuler une chute libre○ Modifier le composant VRTKScripts>PlayArea○ Ajouter le composant VRTK_BodyPhysics○ La chute peut introduire des nausées

▷ VRTK_BasicTeleport.ForceTeleport()

Téléportation Smart

37

Page 38: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

▷ Pour simuler une téléportation au lieu d’une chute○ augmenter le paramètre Gravity Fall Y Threshold à 10

▷ Pour permettre à l’utilisateur de se pencher en dehors de l’aire de destination sans tomber○ changer le paramètre Fall Restriction

pour ne pas activer la chute tant que les manettes sont toujours dans le périmètre

Téléportation Smart

38

Page 39: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

▷ Autres scénarios de téléportation○ Téléportation MiniMap○ Téléportation Menu○ Portals○ ...

▷ VRTK_BasicTeleport.ForceTeleport()

Téléportation Smart

39

Page 40: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

▷ Différents types de pointeurs laser sont disponibles○ VRTK_StraightPointerRenderer○ VRTK_BezierPointerRenderer

▷ Le pointeur en ligne droite sera plutôt utilisé pour pointer des objets ou interagir avec des interfaces graphiques

Apparence de la téléportationLe pointeur

40

Page 41: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

▷ Le pointeur en ligne bézier est utilisé pour la téléportation puisqu’il permet d’atteindre des destinations sans casser le poignet

▷ Bezier Pointer Appearance Settings○ Maximum Length : Profondeur et hauteur maximale ○ Tracer Density : Nombre de point de la courbe○ Height Limit Angle : Angle maximal de la courbe○ Curve Offset : Densité du signal vers la cible

Apparence de la téléportationLe pointeur

41

Page 42: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

▷ Bezier Pointer Appearance Settings○ Custom Tracer : Objet/Prefab

représentant des sous-instances du trait.

○ Rescale Tracer : Modifie l’échelle du tracer en fonctionde la proximité

Apparence de la téléportationLe pointeur

42

Page 43: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

▷ Créer un Tracer personnalisé○ Préparer un GameObject qui servira de composant au

tracer○ Enlever la réception d’ombre○ Enlever l'émission d’ombre○ Créer un matériau émissif○ Ajouter un effet de particule

▷ Tester la nouvelle expérience de téléportation

Apparence de la téléportationExercice

43

Page 44: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

▷ Pour émettre un traceur ligne○ Supprimer le MeshFilter○ Supprimer le MeshRenderer○ Ajouter un LineRenderer

■ Width : 0.01■ Material : WorldPointer

Apparence de la téléportationLe pointeur

44

Page 45: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

▷ Bezier Pointer Appearance Settings○ Custom Cursor : Objet/Prefab représentant le

point de téléportation

▷ Créer un Curseur personnalisé○ Instancier un GameObject○ Supprimer le composant BoxCollider○ Affecter teleport_marker_mesh dans le

MeshFilter○ Affecter le materiel

SteamVR>InteractionSystem>Teleport>Materials>TeleportPointVisible

Apparence de la téléportation

45

Page 46: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

▷ Personnaliser les curseurs pour afficher les zones de téléportation correctes et incorrectes○ ValidLocationObject : Affecter le précédent

curseur personnalisé■ material : TeleportPointValid

○ InvalidLocationObject : Copier le curseur personnalisé ■ mesh : TeleportDestination_Invalid_Mesh■ material : TeleportPointInvalid■ scale : 0.4, 0.4, 0.4

○ Custom Cursor : Affecter un GameObject vide

Apparence de la téléportation

46

Page 47: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

▷ Le prefab DestinationPoint permet de spécifier un emplacement téléportable.

▷ Il possède 3 skins éditables○ Default Cursor : Affichage dans la scène○ Hover Cursor : Affichage pointé○ Locked Cursor : Affichage non-accessible

Apparence de la téléportationDestinationPoint

47

Page 48: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

▷ Les propriétés spatiales du DestinationPoint sont définis par les mesh attachés à chaque Skin

▷ Paramétrer un point de téléportation○ Instancier un prefab DestinationPoint○ Sélectionner DefaultCursor>CursorCapsule

■ MeshFilter : TeleportDestination_Mesh■ Material : TeleportPointVisible

○ Repeter l'opération pour les 2 autres skins■ Material : TeleportPointHighlighted,

TeleportPointLocked

Apparence de la téléportationDestinationPoint

48

Page 49: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

▷ Créer une aire de téléportation○ Instancier un prefab DestinationPoint

■ Ajouter un BoxCollider ● Size : 3, 0.1, 3

○ Sélectionner DefaultCursor>CursorCapsule■ MeshFilter : Cube■ Material : TeleportAreaVisibleLow

○ Répéter l'opération pour les 2 autres skins■ Material : TeleportAreaVisibleBright,

TeleportAreaLocked

Apparence de la téléportationDestinationPoint

49

Page 50: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

3.Interactions avec des objets

Attraper / Jeter des objetsGrab Mechanics

Attraper un objet au démarrage / touchantInteraction à deux mains

Retour haptique : VibrationUtiliser les objets en main

50

Page 51: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

▷ Préparer une table○ Ajouter un cube○ Position : 2.5; 0.5; 0○ Taille : 0.7; 1; 1○ Matériau : couleur distincte

▷ Préparer des objets interactifs, un cube et une sphère ○ Position : sur la table○ Taille : 0.2; 0.2; 0.2○ Matériau : couleur distincte

Attraper / Jeter des objets

51

Page 52: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

▷ Associer les composants VRTK_InteractTouch et VRTK_InteractGrab sur les objets LeftController et RightController pour permettre les comportements d’interaction

▷ Sélectionner le cube

▷ Lancer l’outil Window>VRTK>Setup Interactable Object

Attraper / Jeter des objets

52

Page 53: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

▷ Sélectionner la sphère○ Ajouter un composant RigidBody○ Ajouter un composant de la famille *GrabAttach

VRTK_ChildOfControllerGrabAttach○ Ajouter un composant VRTK_InteractableObject

■ GrabAttachMechanic : Lui-mêmeIsGrabbable : True

○ Ajouter un composant VRTK_OutlineObjectCopyHighlighter permettant le surlignage de l’objet traduisant visuellement une interaction

Attraper / Jeter des objets

53

Page 54: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

▷ 021_Controller_GrabbingObjectsWithJoints

▷ GrabAttachMechanics○ VRTK_ChildOfControllerGrabAttach

■ L’objet attrapé devient un enfant/extension du contrôleur.

○ VRTK_FixedJointGrabAttach■ L’objet attrapé est lié au contrôleur de manière

fixe. Au contact d’un autre objet de la scène, l’objet se déconnecte du contrôleur et tombe

Grab Mechanics

54

Page 55: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

▷ GrabAttachMechanics○ VRTK_SpringJointGrabAttach

■ L’objet attrapé est lié au contrôleur par un ressort. La physique des autres objets de la scène s’applique

○ VRTK_TrackObjectGrabAttach■ Suit le contrôleur en contournant les obstacles. Si

l’obstacle est incontournable, le comportement est identique au FixedJoint

Grab Mechanics

55

Page 56: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

▷ GrabAttachMechanics○ VRTK_RotatorTrackGrabAttach

■ Poignée pour faire tourner une roue

○ VRTK_ClimbableGrabAttach

■ L’objet attrapé devient un enfant du contrôleur et peut passer à travers d’autres objets

○ VRTK_CustomJointGrabAttach

■ Ajouter un composant RigidBody

Grab Mechanics

56

Page 57: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

▷ 026_Controller_ForceHoldObject

▷ Attraper un objet au lancement de la scène○ L’affectation du script VRTK_ObjectAutoGrab sur un

contrôleur permet d'équiper automatiquement l’objet au lancement de la scène

Attraper un objet au démarrage

57

Page 58: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

▷ Définir un script héritant de VRTK_InteractableObject et l’attacher à l’objet attrapable

▷ Surcharger la méthode StartTouching pour attraper un objet en le touchant (sans clic)

Attraper un objet en le touchant

58

Page 59: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

▷ 043_Controller_SecondaryControllerActions

▷ Changer l’objet attrapé de mains○ Sélectionner un GameObject exploitant

VRTK_InteractableObject

○ Ajouter le script VRTK_SwapControllerGrabAction○ Paramétrer le script VRTK_InteractableObject

■ SecondaryGrabAction : lui-même

Interaction à deux mains

59

Page 60: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

▷ Autres actions à deux mains○ redimensionner un objet

VRTK_AxisScaleGrabAction

○ définir une direction à 2 mainsVRTK_ControlDirectionGrabAction

Interaction à deux mains

60

Page 61: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

▷ 016_Controller_HapticRumble

▷ Les retours haptiques s’effectuent en appelant les méthodes statiques de la classe VRTK_ControllerHaptic○ TriggerHapticPulse (..., strength, duration, interval)○ TriggerHapticPulse (..., strength, audioClip)

Ou○ TriggerHapticPulse (..., strength)○ CancelHapticPulse(...)

Retour haptique : Vibration

61

Page 62: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

Retour haptique : Vibration

62

Page 63: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

4.Interface Graphique

Les nouveaux modèles d’interactionUtilisation du canvas Unity

Menu radialCustomisation des contrôleurs

63

Page 64: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

▷ Mega menu pointé

Les nouveaux modèles d’interaction

64

Page 65: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

▷ Mega menu pointé

Les nouveaux modèles d’interaction

65

Page 66: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

▷ Mega menu circulaire

Les nouveaux modèles d’interaction

66

Page 67: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

▷ Mega menu circulaire

Les nouveaux modèles d’interaction

67

Page 68: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

▷ Menu Panneau sur un objet

Les nouveaux modèles d’interaction

68

Page 69: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

▷ Heads Up Display (H.U.D.)

Les nouveaux modèles d’interaction

69

Page 70: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

▷ Heads Up Display (H.U.D.)

Les nouveaux modèles d’interaction

70

Page 71: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

▷ Heads Up Display (H.U.D.)

Les nouveaux modèles d’interaction

71

Page 72: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

▷ Menu main palette

Les nouveaux modèles d’interaction

72

Page 73: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

▷ Menu main palette déployable

Les nouveaux modèles d’interaction

73

Page 74: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

▷ Menu main palette déployable

Les nouveaux modèles d’interaction

74

Page 75: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

▷ Menu main radial

Les nouveaux modèles d’interaction

75

Page 77: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

▷ Dessin Papier/Stylo

▷ sketchbox3d.com

▷ Tiltbrush + Blocks

Outils de modélisation d’interfaces

77

Page 78: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

▷ Créer un GameObject UI > Canvas○ Nom : Interface○ RenderMode : WorldSpace○ Width : 300○ Height : 300○ Position : 0; 1.5; 5○ Scale : 0.01; 0.01; 0.01

▷ Ajouter le composant VRTK_UICanvas au Canvas Interface

Utilisation du canvas Unity

78

Page 79: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

▷ Sélectionner le GameObject [VRTK_Scripts] > Right Controller

▷ Ajouter les composants○ VRTK_ControllerEvents○ VRTK_UIPointer○ VRTK_Pointer

■ Pointer Renderer : lui-même○ VRTK_StraightPointerRenderer

Utilisation du canvas Unity

79

Page 80: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

▷ Ajouter un bouton au GameObject Interface○ Text : Don’t click here !

▷ Ajouter un GameObject vide○ Nom : UI_Controller

▷ Déclarer un script UI_Controller.cs et l’attacher au GameObject UI Controller

Utilisation du canvas Unity

80

Page 81: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

▷ Paramétrer le script UI_Controller○ buttonText : GameObject Interface>Button>Text

Utilisation du canvas Unity

81

Page 82: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

▷ Paramétrer le script UI_Controller > UI_Controller○ Button Text : Interface>Button>Text

▷ Définir le gestionnaire d'événement du bouton○ Sélectionner le GameObject Button○ Déclarer un gestionnaire d'événement OnClick()

■ Object : UI_Controller■ Function : UI_Controller.Click

Utilisation du canvas Unity

82

Page 83: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

▷ Contrôles compatibles○ Button, Text, Slider, Image, Toggle Button, Dropdown○ Scrollbar, Scrollview○ Drag & Drop

▷ Les interfaces peuvent être touchées en plus d'être pointées○ VRTK_InteractTouch sur le contrôleur○ ClickOnPointerCollision sur VRTK_UICanvas

▷ 034_Controls_InteractingWithUnityUI

Utilisation du canvas Unity

83

Page 84: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

▷ Parenter le GameObject Interface sur le GameObject [VRTK_Scripts] > LeftController

▷ Adapter l’objet Interface pour un affichage sur le contrôleur○ Position : 0; 0.05; 0○ Rotation : 90; 0; 0○ Scale : 0.005; 0.005; 0.005

Utilisation du canvas Unity

84

Page 85: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

▷ Menu radial sur un contrôleur ou un objet

Menu radial

85

Page 86: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

▷ Déposer le prefab VRTK > Prefabs > RadialMenu sur un contrôleur ou un objet

▷ Paramétrer la collection Buttons dans le script Controller/Object > RadialMenu > RadialMenuUI > Panel > VRTK_RadialMenu○ Buttons/Size : Définir la taille de la collection

Menu radial

86

Page 87: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

▷ Pour chaque bouton de la collection○ Définir l'icône associée○ Définir l'événement OnClick()

▷ Définir les événements facultatifs ○ OnHold()○ OnHoverEnter()○ OnHoverExit()

Menu radial

87

Page 88: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

▷ Affiner le comportement du menu radial○ RotateIcons : animation d’affichage○ IsShown + HideOnRelease : menu visible de manière

permanente○ Basic Haptic strength

▷ 030_Controls_RadialTouchpadMenu

Menu radial

88

Page 89: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

▷ Utilisation d’un autre objet 3D à la place des manettes HTC Vive○ Dans l’asset store, importer le paquet SciFi Gun○ Sélectionner l’objet [VRTK_Scripts] >

LeftController○ Parenter le prefab SciFi Gun > SciFiGun_Specular

■ Position : 0; -0.07; 0■ Rotation : 0; 90; 37.2■ Scale : 2; 2; 2

Customisation des contrôleurs

89

Page 90: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

▷ Utilisation d’un autre objet 3D à la place des manettes HTC Vive○ Sélectionner l’objet [VRTK_Scripts] >

RightController○ Parenter le prefab SciFi Gun > SciFiGun_Specular

■ Position : 0; 0.07; 0■ Rotation : 0; 90; 37.2■ Scale : 2; 2; 2

Customisation des contrôleurs

90

Page 91: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

▷ Désactiver le GameObject [VRTK SDK] > [SteamVR SDK] > [CameraRig] > Controller (left) > Model

▷ Désactiver le GameObject [VRTK SDK] > [SteamVR SDK] > [CameraRig] > Controller (right) > Model

Customisation des contrôleurs

91

Page 92: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

▷ Utilisation d’un autre contrôleur HTC Vive○ Dans le casque Vive, afficher les paramètres et

télécharger un modèle de manette.○ Ouvrir le dossier C:\Program Files

(x86)\Steam\steamapps\workshop\content\○ Rechercher le téléchargement en se basant sur les

images des previews○ Importer le dossier du contrôleur○ Remplacer les objets [VRTK_Scripts] > Left/Right

Controller>SciFi Gun par le modèle de manette importé correspondant

Customisation des contrôleurs

92

Page 93: V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey Ball & the V.R.T.K community This training Author : Sébastien Yriarte, Tech’N’Smile

▷ Utilisation de mains à la place de contrôleurs ○ Sélectionner l’objet [VRTK_Scripts] > RightController○ Parenter le prefab VRTK>Prefabs > VRTK_BasicHand○ Sélectionner l’objet [VRTK_Scripts] > LeftController○ Parenter le prefab VRTK>Prefabs > VRTK_BasicHand○ Paramétrer le script [VRTK_Scripts] > LeftController

> VRTK_AvatarHandController■ Mirror Model : true

▷ 032_Controller_CustomControllerModel

Customisation des contrôleurs

93