Capter l’orientation du casque de réalité virtuelle et y implanter un son

Tuto - Capter l'orientation du casque de réalité virtuelle et y implanter un son

 

Dans ce tutoriel nous allons apprendre à utiliser les outils nécessaires à la réalisation de l'objectif sus-cité. Il faudra donc passer par l'installation de ces outils (en l'occurrence un seul).

Voici un léger sommaire de ce tutoriel :

  • Installation d'Unreal Engine 4
  • Création d'un projet VR
  • Récupération de l'orientation du casque
  • Création et implantation d'un composant son

Installation d'Unreal Engine 4

Au même titre que l'environnement et moteur Unity 5, Unreal Engine 4 met à disposition des développeurs, designers des outils leur permettant la réalisation de projet 2D, 3D, et même en réalité virtuelle, ce dernier cas étant ici celui qui nous intéresse.

Les fonctionnalités qu'Unreal propose peuvent être exploitées tant lors de la partie BackEnd d'un projet (logique du projet, algorithme, etc) que pour la partie FrontEnd (interface utilisateur, graphismes, scènes, etc).

Il sera donc nécessaire pour la suite d'installer cet environnement sur votre pc, pour cela il suffit d'installer le launcher d'Epic Games disponible ici (création de compte nécessaire), puis de lancer l'installation d'Unreal Engine 4.


Création d'un projet VR

Une fois Unreal Engine 4 lancé à partir de l'Epic Games Launcher, il vous sera possible de créer un projet.

Sélectionner New Project > BluePrint > Virtual Reality (les trois cases sous la sélection du type de projet doivent être identiques si vous souhaitez obtenir la même scène que dans la suite du projet)

Une fois le projet créer, une scène vous proposant un mode de fonctionnement adapté à un casque avec ou sans controllers vous sera proposé (voir image suivante). Il faudra donc choisir comme ci-dessous :

Dans le menu File > Open Level > Motion Controller Map


Récupération de l'orientation du casque

Après avoir ouvert notre niveau (Motion Controller Map) nous obtenons une scène (voir image ci-dessous) dans laquelle nous avons plusieurs composant basiques tels que des cubes, mais si l'on clique sur le composant de la caméra on constate que celui-ci est nommé dans le gestionnaire de composant à droite 'VRPawn'. Cela signifie que notre caméra est adaptée à la réalité virtuelle, c'est une simulation de notre HMD (Head Mounted Display, le casque).

Ceci étant dit, il vous paraîtra donc logique que ce soit grâce à ce composant que l'ont pourra récupérer toutes sorte d'informations liées à notre casque (position, orientation, etc), et vous avez raison. Les informations liées à nos controllers sont également accessible via ce composant.

Notre but étant dans un premier temps de récupérer et d'afficher l'orientation du casque nous allons donc éditer le Blueprint du VRPawn. Avant toutes choses il faut savoir qu'un Blueprint est le coeur de l'algorithme de chaque objet dans l'environnement Unreal, il permet d'accéder aux méthodes, aux propriétés de l'objet concerné mais pas seulement.

Editer le Blueprint du VRPawn

Pour les besoins de nos tests nous allons donc attacher un composant de texte à notre caméra. Ceci nous permettra d'afficher l'orientation du casque récupérée au moment voulu.

+Add Component puis TextRender

Une fois le Blueprint du VRPawn ouvert, nous pouvons lui ajouter un composant texte. On utilisera ici TextRender. Ceci aura pour effet d'ajouter un composant TextRender à notre Blueprint (auquel est associé un SetText) mais aussi une ligne de texte en face du point de vue de notre caméra.

Si l'on veut rendre la récupération quelque peu interactive nous pouvons faire en sorte que lorsque les gâchettes droites ou gauches de nos controllers sont pressées l'orientation du casque s'affiche à l'écran.

Pour cela il suffit de faire un click droit dans notre schéma Blueprint puis d'entrer motion controller (R) trigger dans la zone de recherche pour trouver l'évenement testant si la gâchette est pressée. On relis notre propriété 'Pressed' à notre 'SetText' ce qui aura pour effet de modifier le TextRender lorsque la gâchette droite est pressée.

Si nous désirons afficher l'orientation du casque il faut donc la récupérer. Une méthode du HMD nous permet ceci : Get Orientation And Position. Il suffit donc encore d'un click droit puis d'une rapide recherche avec ces termes pour la trouver. Nous disposons donc maintenant de presque tout les éléments pour afficher l'orientation du casque dans notre environnement virtuel. 'Presque' car il faudra tout de même convertir le Rotator renvoyé par Get Orientation And Position en variable Text, ce qui est réalisable avec la fonction ToText implémentée par UE4.

Voici le résultat de notre schéma :

Schéma complet

Nous pouvons maintenant tester ce Blueprint, pour cela sauvegardez, compilez. Il suffira de réduire le Blueprint, de lancer le programme en VR grâce au bouton VR (situé à gauche de Build). Une fois lancé et  lors du port du casque et de l'appuie sur la gâchette droite, l'orientation s'affiche alors à la position du TextRender placé précédemment.


Création et implantation d'un composant son

Nous souhaitons désormais implanter un son dans notre scène, qui pourra être entendu par l'utilisateur du casque de réalité virtuelle lorsqu'il porte un casque ou des écouteurs.

Pour cela nous allons simplement créer un cube qui aura pour rôle d’émettre le son et ensuite l'ajouter à notre scène (un cube déjà existant dans la scène fera aussi l'affaire).

Nous pouvons maintenant importer notre son dans notre dossier Content de notre projet (voir ci-dessous).

Import > Sélection du fichier

A présent nous disposons d'un fichier .wav dans notre projet. Ajouter un .wav directement à notre cube pour qu'il émette le son contenu dans notre fichier n'est pas possible. Pour rentre celui-ci utilisable nous allons devoir convertir ce son en 'cue' (c'est à dire en signal).

Créer un signal à partir d'un fichier son

Maintenant que nous disposons de notre composant Cue nous allons pouvoir l'ajouter au cube précédemment créer.

Pour ce faire il suffit de sélectionner notre cube dans le gestionnaire de composant à droite puis de cliquer sur +Add Component, on recherche alors notre composant Cue dans Audio et le tour est joué.

Ajouter le signal à notre composant cube

Dans l'état, notre cube est donc désormais capable si l'on sauvegarde, compile et lance d'émettre un son. Cependant il est possible d'aller plus loin, notamment grâce au Blueprint de notre Cue qu'il est possible d'éditer.

Editer le Blueprint du signal

Lors de son ouverture on constate que celui-ci se compose de deux éléments : le son en lui même et "l'ouput" - ce que l'utilisateur va réellement entendre. Il est dès lors possible d'ajouter des modifications au son original pour qu'il soit entendu selon celles-ci par un utilisateur.

On peut par exemple ajouter un 'Modulator' au Blueprint qui va permettre de modifier les pitchs minimum et maximum - le pitch ou 'pitch shift' étant un effet audio qui a pour but de modifier la hauteur d'un signal sonore - d'autre effets sonores existe et sont nombreux, on peut citer le 'Random' qui, avec deux son à disposition alterne aléatoirement ceux-ci à la suite ou encore le 'Delay' qui permet de marquer un temps d'arrêt entre l'émission du son et la réception de celui-ci par l'utilisateur.

Source / Sitographie :

 

 

Pas de commentaire.

Ajouter un commentaire