Rapport Réalité Virtuelle

21
Projet de simulation numérique Personnalisation du véhicule T35 Rapport de MN90 – P2016 Département Ergonomie, Design et Ingénierie Mécanique (EDIM) HELLEC Hugo HAMANI Zyad Responsables de l’UV : Sébastien CHEVRIAU Florence BAZZARO

Transcript of Rapport Réalité Virtuelle

Projet de simulation numérique

Personnalisation du véhicule T35

Rapport de MN90 – P2016

Département Ergonomie, Design et Ingénierie Mécanique (EDIM)

HELLEC Hugo

HAMANI Zyad

Responsables de l’UV :

Sébastien CHEVRIAU

Florence BAZZARO

2 Projet MN90 – P2016 – HELLEC Hugo & HAMANI Zyad – Personnalisation du véhicule T35

Introduction

Dans le cadre de l’UV de TN90, nous avons réalisé une série de TPs qui nous ont permis de

nous familiariser avec le logiciel 3DVIA Virtools. A la suite de ces TPs, nous avons débuté la réalisation

de notre propre programme durant la moitié du semestre. Ce programme sera l’occasion d’appliquer

les connaissances apprises lors des différents TP et cours magistraux, et d’en apprendre de nouvelles

grâce à la découverte de programmes qui n’ont pas encore été étudiés.

Après une description du scénario de programmation que nous avons défini, nous allons

présenter la méthode mise en œuvre, allant de la préparation des modèles CAO, jusqu’à l’élaboration

du programme, les difficultés rencontrées et les solutions trouvées.

3 Projet MN90 – P2016 – HELLEC Hugo & HAMANI Zyad – Personnalisation du véhicule T35

Table des matières Introduction ............................................................................................................................................. 2

Table des figures ...................................................................................................................................... 4

Détermination des Interactions et Immersions (I²) ................................................................................. 5

Définition du scénario ............................................................................................................................. 6

Objectif ................................................................................................................................................ 6

Résumé théorique du programme ...................................................................................................... 6

Travail effectué sur le modèle ................................................................................................................. 7

Présentation du modèle CAO .............................................................................................................. 7

Application des matériaux (textures, couleurs) .................................................................................. 7

Importation ......................................................................................................................................... 8

Travail effectué sur l’environnement .................................................................................................... 10

Décor ................................................................................................................................................. 10

Lumières ............................................................................................................................................ 10

Principales interactions ou principes de fonctionnement de l’application ........................................... 11

Fonctions attendues et application ................................................................................................... 11

Utilisateur – Razer Hydra ................................................................................................................... 11

Interface ............................................................................................................................................ 14

Les problèmes principaux rencontrées et pistes d’amélioration .......................................................... 17

Problèmes rencontrés ....................................................................................................................... 17

Pistes d’amélioration ......................................................................................................................... 17

Conclusion ............................................................................................................................................. 18

Annexes – Illustration du processus de personnalisation ..................................................................... 19

4 Projet MN90 – P2016 – HELLEC Hugo & HAMANI Zyad – Personnalisation du véhicule T35

Table des figures Figure 1 : Modèle numérique .................................................................................................................. 7

Figure 2 : fenêtre d'import ...................................................................................................................... 8

Figure 3 : Onglet Level Manager ............................................................................................................. 8

Figure 4 : Onglet Material Setup d'un matériau ...................................................................................... 9

Figure 5 : Les différents environnement disponibles ............................................................................ 10

Figure 6 : Insertion des lumières ........................................................................................................... 10

Figure 7 : Script de détection du Razer Hydra ....................................................................................... 11

Figure 8 : Script de la rotation de la voiture .......................................................................................... 12

Figure 9 : Hiérarchie de User ................................................................................................................. 12

Figure 10 : Script des déplacements de l'utilisateur ............................................................................. 13

Figure 11 : Script de la fonction s'accroupir .......................................................................................... 13

Figure 12 : Hiérarchie de l'interface ...................................................................................................... 14

Figure 13 : Extrait du script d'apparition de d'interface ....................................................................... 14

Figure 14: Liste des matériaux............................................................................................................... 15

Figure 15 : Test de détection de la partie sélectionnée ........................................................................ 15

Figure 16 : Extrait du script d'attribution de l'interface ........................................................................ 16

Figure 17 : Nouvelle hiérarchie de User ................................................................................................ 16

Figure 18 : Positionnement du Frame ................................................................................................... 16

5 Projet MN90 – P2016 – HELLEC Hugo & HAMANI Zyad – Personnalisation du véhicule T35

Détermination des Interactions et Immersions (I²)

Le projet a débuté par le choix d’un modèle numérique à étudier, tel qu’une voiture, un

hélicoptère, un avion ou du matériel électro-ménager. Nous avons choisi d’étudier la voiture T35.

Ensuite, nous avons réfléchi aux différentes fonctions que nous pourrions étudier en réalité

virtuelle. Nous avons donc rédigé une liste des Interactions et Immersions (I²) possibles, tel qu’observer

le véhicule ou interagir avec ses caractéristiques et ses déplacements. Pour chaque I² suivait la

détermination des Primitives Comportementales Virtuelles (PVC), puis l’identification des schèmes et

métaphores, et un petit résumé du script pour chaque fonction. Toutes ces données ont été listées

dans un tableau Excel (voir fichier « Hamani_Hellec_T35.xls »).

Nous avons ensuite cherché avec le professeur, quelles fonctionnalités nous pourrions étudier

au cours de notre projet.

6 Projet MN90 – P2016 – HELLEC Hugo & HAMANI Zyad – Personnalisation du véhicule T35

Définition du scénario

Objectif

Comme défini précédemment, le sujet de notre projet se portera sur la voiture T35. Le sujet

choisi est un « catalogue de personnalisation » des couleurs et textures du véhicule.

L’objectif du programme est donc de permettre à un utilisateur de visualiser sa voiture, et de

changer les couleurs à sa guise ainsi que de visualiser le modèle avec les combinaisons de couleur de

son choix.

Résumé théorique du programme

La voiture se situe au milieu d’un garage. Un utilisateur se trouve dans la salle et est capable

de visualiser le véhicule dans son intégralité. Il a également la possibilité de faire pivoter la

voiture et de changer son point de vue pour visualiser l’intérieur du véhicule en position conduite.

L’utilisateur dispose de manettes lui permettant de toucher les objets. Lorsqu’il touche une

pièce faisant parti d’un sous-ensemble, une interface avec des choix de couleurs apparait.

Lorsqu’il clique sur une couleur, cette dernière est appliquée au sous-ensemble de pièces en

question. L’interface se ferme et l’utilisateur peut observer son modèle avec ses nouvelles

couleurs. L’opération est à renouveler autant de fois que nécessaire

Maintenant que le scénario est déterminé, il nous faut décider la forme sous laquelle ces

différentes fonctions vont se manifester.

Nous allons donc dans un premier temps nous concentrer sur le modèle CAO du véhicule, afin

de visualiser le modèle et l’adapter à notre besoin.

7 Projet MN90 – P2016 – HELLEC Hugo & HAMANI Zyad – Personnalisation du véhicule T35

Figure 1 : Modèle numérique

Travail effectué sur le modèle

Présentation du modèle CAO

Voici le modèle CAO du véhicule étudié :

Le modèle est composé de 832 pièces. Les pièces et surfaces sont réparties dans 5 sous-

ensembles : le corps principal de la voiture et les 4 demi-trains (arrière et avant). Les pièces qui nous

concernent sont les pièces situées à l’extérieur du modèle. Plus précisément, les pièces ou ensembles

de pièces que nous souhaitons personnaliser sont :

- La carrosserie

- Les jantes

- Les garde-boues

- Les arceaux

- Les sièges

- Les ceintures

- L’habitacle

- Le tableau de bord

- Le cerclage du volant

Application des matériaux (textures, couleurs)

Avant d’être importées, certaines pièces que nous souhaitons personnaliser doivent posséder

une texture fixe ou une couleur ayant un certain reflet. Nous appliquons aux sièges une texture cuir.

Le reste des pièces possède un rendu couleur de type peinture.

8 Projet MN90 – P2016 – HELLEC Hugo & HAMANI Zyad – Personnalisation du véhicule T35

Importation

Nous décidons d’importer l’assemblage du véhicule dans le logiciel Virtools. Nous

sélectionnons l’onglet Ressources Import File et on sélectionne le fichier avec l’extension 3DXML

converti au préalable sous CATIA.

Figure 2 : fenêtre d'import

Nous nous assurons d’importer le fichier avec ces paramètres afin de pouvoir visualiser toutes

les pièces, et non les uniquement les 5 sous-ensembles. Nous obtenons ainsi la répartition suivante :

Figure 3 : Onglet Level Manager

La première difficulté vient de la nomination des pièces. Les noms de pièces ont été remplacés

par le nom de leur sous-ensemble respectif avec un numéro de pièce. Il faut donc que nous défilions

9 Projet MN90 – P2016 – HELLEC Hugo & HAMANI Zyad – Personnalisation du véhicule T35

Figure 4 : Onglet Material Setup d'un matériau

parmi toutes les pièces afin de repérer celles qui nous intéressent. Une fois les pièces repérées, on les

regroupe et nous leur appliquons un matériau.

Afin de préparer le fichier à une mise en place optimisée du script, il a été nécessaire d’effectuer

un tri des différentes surfaces de la voiture que nous souhaitions modifier. Pour cela, nous avons créé

des matériaux pour chacune des parties de la voiture que nous voulions soit modifier, soit attribuer

une couleur fixe facilement accessible et modifiable. Au total 10 matériaux différents, numérotés de 1

à 10, ont été créés :

- 01 – carrosserie

- 02 – Maille avant

- 03 – Arceau

- 04 – Prise d’air

- 05 – Garde boue

Nous avons défini que le script permettant le choix des couleurs agirait sur les 8 premiers

matériaux. Les deux derniers seront fixes pour des raisons de rendu visuel.

Pour obtenir une attribution des matériaux la plus exacte possible, nous avons sélectionné une à

une chacune des surfaces concernant chaque matériau pour les attribuer sur leur maillage. Nous

obtenons ainsi des matériaux bien précis permettant une modification de toutes les surfaces que l’on

souhaite en un unique coup, ce qui est beaucoup plus efficace et pratique que l’attribution initiale.

Nous avons rencontré quelques difficultés avec des pièces qui possédaient des faces invisibles.

Nous profitons de l’application de ces différents matériaux aux pièces concernées pour régler ce

problème en cochant l’icône Both Sided lighting.

- 06 – Jantes

- 07 – Volant + Tableau

- 08 – Sièges

- 09 – Vitre

- 10 – Miroir

10 Projet MN90 – P2016 – HELLEC Hugo & HAMANI Zyad – Personnalisation du véhicule T35

Travail effectué sur l’environnement

Décor

Virtools offre la possibilité d’importer un décor dans l’environnement. Plusieurs choix

pertinents sont possibles entre la ville, l’entrepôt et le laboratoire.

Figure 5 : Les différents environnement disponibles

Nous choisissons d’importer le laboratoire car avoir un espace plus confiné semble favorable

à l’immersion, de plus le thème du laboratoire est assez ressemblant à un environnement de type

garage.

Lumières

Nous souhaitions illuminer toute la voiture par un halo de lumière avec un spot artificiel

positionné au-dessus du véhicule. Mais nous avons remarqué que le décor choisit possédait des néons

au plafond (d’où également le choix du laboratoire). C’est pourquoi nous avons donc pensé qu’il serait

plus judicieux pour l’immersion de les prendre pour référence pour le positionnement de nos deux

sources de lumière.

Figure 6 : Insertion des lumières

11 Projet MN90 – P2016 – HELLEC Hugo & HAMANI Zyad – Personnalisation du véhicule T35

Une troisième source de lumière de type Point a également rajoutée en bas du véhicule afin

de raviver les couleurs.

Principales interactions ou principes de fonctionnement de l’application

Fonctions attendues et application

Comme énoncé dans notre besoin, nous attendons du programme qu’il nous permette de nous

déplacer autour de la voiture afin de voir toutes ses facettes et d’afficher une interface permettant de

changer les couleurs à volonté en touchant des ensembles de pièce.

Utilisateur – Razer Hydra

Vis-à-vis des déplacements de l’utilisateur, nous allons utiliser l’interface Razer Hydra. Les

manettes permettront à l’utilisateur de déplacer le personnage et de le faire pivoter.

Nous avons suivi la même méthode qu’en TP pour importer les scripts nécessaires ainsi que

les 2 mains 3D. Nous avons fusionné le fichier .cmo du razer hydra avec notre projet dans le but de

pouvoir l’utiliser afin d’effectuer les différents mouvements de l’opérateur ainsi que les mouvements

de la voiture. Par soucis d’import ainsi que de disponibilité du matériel et pour pouvoir tester avant

d’importer l’Hydra, nous avons également créé un script permettant le déplacement à l’aide du clavier.

Après les différents réglages du script, nous créons une 3D Frame nommé User placé à l’entrée

du laboratoire. Nous créons par la suite une caméra [Vue extérieure] qui symbolise la vision de

l’utilisateur.

Grâce à cette partie du programme, nous avons choisi d’attribuer deux boutons du Razer Hydra

à la rotation du véhicule, plus précisément les boutons 3 et 4 de la manette droite. Pour effectuer cette

rotation, nous nous sommes inspirés de l’aide html fournie avec le BB Rotate de virtools. Cette rotation

est attribuée uniquement à l’entité 3D Assemblage-35-VO, parent de toutes les parties de la voiture

pour permettre la rotation de la voiture complète.

Figure 7 : Script de détection du Razer Hydra

12 Projet MN90 – P2016 – HELLEC Hugo & HAMANI Zyad – Personnalisation du véhicule T35

Figure 9 : Hiérarchie de User

Figure 8 : Script de la rotation de la voiture

Par la suite, nous nous sommes penchés sur les différents

mouvements de l’utilisateur. Il est nécessaire qu’il puisse se déplacer

d’avant en arrière ainsi que de gauche à droite. Pour cela, nous avons

créé une 3D Frame User dans laquelle nous avons placé en tant que

parent la totalité du système Razer Hydra ainsi que la caméra

représentant la vue de l’utilisateur.

Nous avons donc créé un nouveau script permettant le déplacement du 3Dframe User pour

déplacer tous ses enfants en même temps. Ce script s’inspire des différents TP que nous avons pu

effectuer. Les mouvements de la personne, transversaux ou longitudinaux, sont attribués au joystick

gauche tandis que les mouvements de caméra sont attribués au joystick droit. Pour que la caméra ne

s’incline pas de manière imprévue, nous avons effectué la rotation de la caméra permettant la vue de

haut en bas selon le référentiel de User à l’aide du clavier. La rotation de haut en bas ne sera plus

utilisée lors de l’import de l’Oculus Rift. De plus, par soucis d’atteinte de certaines pièces de la

carrosserie, nous avons jugé nécessaire de pouvoir « accroupir » l’utilisateur (Annexe 1).

Ci-dessous les différents scripts des déplacements utilisateurs. Les différents déplacements

passent par la détection de valeurs envoyées par les différents joysticks et sont ensuite transformés

en un mouvement de rotation ou de translation.

13 Projet MN90 – P2016 – HELLEC Hugo & HAMANI Zyad – Personnalisation du véhicule T35

Figure 10 : Script des déplacements de l'utilisateur

En ce qui concerne le script pour s’accroupir, il nécessite une boucle permettant la détection

de la pression du joystick gauche. C’est pourquoi nous avons utilisé des BB Specific Bool Event associés

à des BB Keep Active et Translate pour effectuer cette action.

Figure 11 : Script de la fonction s'accroupir

14 Projet MN90 – P2016 – HELLEC Hugo & HAMANI Zyad – Personnalisation du véhicule T35

Interface

Une fois le razer hydra bien importé et les mouvements bien définis, nous avons commencé la

conception de script permettant l’affichage de l’interface. Cette interface doit s’afficher lorsque

l’utilisateur sélectionne une partie du véhicule. L’interface est constituée de trois sphères s’affichant

devant l’utilisateur lorsque celui-ci a sélectionné une partie du véhicule à l’aide de la main gauche.

Pour cela, il a été nécessaire de créer 3 sphères importées des

ressources Virtools avec leurs matériaux et une nouvelle 3Dframe Interface.

Nous avons ensuite placé les 3 sphères différentes enfant de ce frame.

Par la suite, nous avons créé un nouveau script pour positionner cette interface selon

l’emplacement touché par l’utilisateur. Ce script devait donc contenir un BB collision manager pour

détecter la collision de la main de l’Hydra avec la pièce à sélectionner puis attribuer une nouvelle

position et une nouvelle orientation à l’interface selon l’emplacement de l’utilisateur (Annexe 2).

L’appui de la gâchette gauche entraine ensuite l’apparition de l’interface initialement cachée

en condition initiale au moyen d’un BB specific bool event. Voici la partie de script obtenue (Annexe

3) :

Figure 13 : Extrait du script d'apparition de d'interface

Figure 12 : Hiérarchie de l'interface

15 Projet MN90 – P2016 – HELLEC Hugo & HAMANI Zyad – Personnalisation du véhicule T35

Cependant, les différentes couleurs proposées sur l’interface doivent

différer selon la partie touchée de la voiture. Sachant que nous avions opté pour

8 parties différentes de la voiture configurables, il y a donc 8 interfaces différentes

possibles. Il a donc été nécessaire de créer 3 nouveaux matériaux pour chaque

catégorie de matériau :

Une fois ces matériaux créés, il est nécessaire de dire au script de

connaitre le matériau de la 3DEntity touchée et le tester pour savoir s’il

correspond au bon matériau afin de proposer les 3 bons matériaux dans

l’interface. Cela implique l’utilisation d’un BB Test.

Les « diffuse » des matériaux correspondant sont ensuite attribués au

différent « diffuse » des matériaux des sphères pour obtenir 3 sphères de

couleurs différentes selon la partie sélectionnée.

Voici la partie du script obtenue. Cette partie est répétée pour les 8 types

de matériaux différents :

Figure 15 : Test de détection de la partie sélectionnée

Une fois les différentes couleurs affichées sur l’interface, l’utilisateur doit toucher la boule de

la couleur qu’il souhaite appliquer à la partie de la voiture et la sélectionner au moyen de la gâchette

droite (Annexe 4)

Une fois sélectionnée, la couleur diffuse du matériau de la boule est transmise au matériau de

la voiture. C’est pourquoi nous avons utilisé des Specific Bool Event pour cette partie du script ainsi

Figure 14: Liste des matériaux

16 Projet MN90 – P2016 – HELLEC Hugo & HAMANI Zyad – Personnalisation du véhicule T35

qu’à nouveau un set diffuse. Le script est ensuite bouclé pour pouvoir répéter cette action pendant

toute la durée de l’immersion. (Annexe 5)

Figure 16 : Extrait du script d'attribution de l'interface

Le script étant presque fini, nous nous sommes ensuite penchés sur l’import de l’Oculus Rift.

Pour cela, nous avons fusionné le fichier .cmo de l’Oculus avec notre projet. Ensuite, nous

avons mis les différents éléments de l’Oculus enfants de User pour que la vision de l’utilisateur se

déplace en même temps que l’utilisateur. Enfin, la frame Head3Dframe est déplacé de manière à ce

que la vue se situe au niveau de la vision d’un homme moyen, c'est-à-dire à 1m60 du sol.

Figure 17 : Nouvelle hiérarchie de User

Figure 18 : Positionnement du Frame

17 Projet MN90 – P2016 – HELLEC Hugo & HAMANI Zyad – Personnalisation du véhicule T35

Les problèmes principaux rencontrées et pistes d’amélioration

Problèmes rencontrés

Lors de ce projet, nous n’avons pas pu nous baser sur les exercices réalisés en TP, puisque les

types de fonctions et leurs architectures (nombreuses répétitions de cycles etc.) nous étaient inconnus.

Nous nous sommes donc adaptés et avons trouvé de nouveaux codes tels que le transfert de

propriétés d’un matériau à un autre. Il nous a donc fallu rechercher parmi la liste des Building Blocks

et nous aider de l’aide html logicielle pour nous guider tout au long de la conception du programme.

Le manque de matériel Hydra et Oculus pour tous les groupes de projet nous a également

contraint à adapter une partie du programme pour une manipulation au clavier plutôt qu’aux manettes

dans l’optique de pouvoir continuer à développer sans pour autant nécessiter de l’utilisation du Razer

Hydra ou de L’Oculus Rift.

Pistes d’amélioration

Quelques pistes d’amélioration pourraient optimiser et améliorer l’expérience du programme,

tel que :

- Permettre à l’utilisateur de retirer sa main gauche pour sélectionner les boules, plutôt que

de devoir garder sa main figée.

- Passer à l’étape supérieure en proposant des modèles CAO, comme par exemple différents

modèles de jantes voire changer la forme de la carrosserie.

- Offrir la possibilité de changer le décor pour voir la voiture en situation et éventuellement, la

possibilité de simuler la voiture en route.

18 Projet MN90 – P2016 – HELLEC Hugo & HAMANI Zyad – Personnalisation du véhicule T35

Conclusion

Grâce aux différentes connaissances acquises lors des cours et séances de TP, ainsi que de

notre capacité d’adaptation, nous avons réussi à réaliser un programme fidèle au scénario que nous

nous étions fixé au départ. Ce projet nous a permis de consolider nos connaissances du logiciel Virtools

et d’apprendre de nouvelles fonctionnalités propres à notre sujet ainsi qu’à la réalité virtuelle en

générale.

Ce projet a été une intéressante et enrichissante introduction à la réalité virtuelle, et c’est une

expérience que nous garderons et que nous appliquerons peut-être lors de nos futures expériences

professionnelles dans l’optique de présenter, par exemple, un nouveau produit à un client.

19 Projet MN90 – P2016 – HELLEC Hugo & HAMANI Zyad – Personnalisation du véhicule T35

Annexes – Illustration du processus de personnalisation

Annexe 1: Déplacements dans l’espace ................................................................................................ 20

Annexe 2 : Sélection carosserie ............................................................................................................. 20

Annexe 3 : Affichage interface et choix ................................................................................................. 21

Annexe 4 : Application textures ............................................................................................................ 21

20 Projet MN90 – P2016 – HELLEC Hugo & HAMANI Zyad – Personnalisation du véhicule T35

Annexe 1: Déplacements dans l’espace

Annexe 2 : Sélection carosserie

21 Projet MN90 – P2016 – HELLEC Hugo & HAMANI Zyad – Personnalisation du véhicule T35

Annexe 3 : Affichage interface et choix

Annexe 4 : Application textures