Upload
zyad-hamani
View
71
Download
0
Embed Size (px)
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