Réalité virtuelle Réalité fusion Ordinateur Porté, Ambiant Ubiquité
V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey...
Transcript of V.R.T.K - Fondations Unity3D - Réalité Virtuelle · Unity3D - Réalité Virtuelle ... VRTK Harvey...
Unity3D - Réalité VirtuelleV.R.T.K - Fondations
1
▷ 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
Bienvenue !
Je m’appelle Sébastien YriarteV.R.T.K a transformé ma vie !
Pour me joindre :
@technsmile @py_yseb
3
▷ Audience
▷ Prérequis du cours
▷ Objectifs du cours
▷ A quoi s’attendre
A propos de ce cours
4
Sommaire
▷ Découverte de V.RT.K.
▷ La téléportation
▷ Interactions avec des objets
▷ Interface graphique5
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
▷ 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
▷ 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
▷ 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
▷ 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
▷ 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
▷ 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
▷ 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
▷ 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
▷ 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
▷ 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
▷ 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
▷ 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
▷ 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
▷ 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
▷ 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
▷ 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
▷ Ajouter un acces aux differents SDK○ Ajouter le prefab SDKSetupSwitcher○ TODO
Préparation d’une scèneInstallation manuelle
23
2.La téléportation
Téléportation simpleTéléportation avancée
Téléportation SmartApparence de la téléportation
24
▷ 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
▷ 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
▷ 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
▷ 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
▷ 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
▷ 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
▷ 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
▷ 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
▷ 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
▷ 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
▷ 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
▷ 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
▷ 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
▷ 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
▷ Autres scénarios de téléportation○ Téléportation MiniMap○ Téléportation Menu○ Portals○ ...
▷ VRTK_BasicTeleport.ForceTeleport()
Téléportation Smart
39
▷ 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
▷ 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
▷ 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
▷ 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
▷ 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
▷ 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
▷ 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
▷ 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
▷ 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
▷ 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
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
▷ 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
▷ 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
▷ 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
▷ 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
▷ 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
▷ 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
▷ 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
▷ 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
▷ 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
▷ Autres actions à deux mains○ redimensionner un objet
VRTK_AxisScaleGrabAction
○ définir une direction à 2 mainsVRTK_ControlDirectionGrabAction
Interaction à deux mains
60
▷ 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
Retour haptique : Vibration
62
4.Interface Graphique
Les nouveaux modèles d’interactionUtilisation du canvas Unity
Menu radialCustomisation des contrôleurs
63
▷ Mega menu pointé
Les nouveaux modèles d’interaction
64
▷ Mega menu pointé
Les nouveaux modèles d’interaction
65
▷ Mega menu circulaire
Les nouveaux modèles d’interaction
66
▷ Mega menu circulaire
Les nouveaux modèles d’interaction
67
▷ Menu Panneau sur un objet
Les nouveaux modèles d’interaction
68
▷ Heads Up Display (H.U.D.)
Les nouveaux modèles d’interaction
69
▷ Heads Up Display (H.U.D.)
Les nouveaux modèles d’interaction
70
▷ Heads Up Display (H.U.D.)
Les nouveaux modèles d’interaction
71
▷ Menu main palette
Les nouveaux modèles d’interaction
72
▷ Menu main palette déployable
Les nouveaux modèles d’interaction
73
▷ Menu main palette déployable
Les nouveaux modèles d’interaction
74
▷ Menu main radial
Les nouveaux modèles d’interaction
75
https://www.slideshare.net/marknb00/comp-4010-lecture-5-interaction-design-for-virtual-reality
Processus de design d’interaction
76
▷ Dessin Papier/Stylo
▷ sketchbox3d.com
▷ Tiltbrush + Blocks
Outils de modélisation d’interfaces
77
▷ 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
▷ 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
▷ 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
▷ Paramétrer le script UI_Controller○ buttonText : GameObject Interface>Button>Text
Utilisation du canvas Unity
81
▷ 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
▷ 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
▷ 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
▷ Menu radial sur un contrôleur ou un objet
Menu radial
85
▷ 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
▷ 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
▷ 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
▷ 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
▷ 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
▷ 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
▷ 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
▷ 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