Je me mets à la VR (part 1)

October 26, 2016

Introduction

J’ai envie de me former sur la VR car je pense qu’il y a une carte à jouer, j’ai pour ça un projet complet en tête dans le but d’apprendre un maximum : voir le post précédent

Ce que j'ai réussi à faire

Installation et matériel

L’installation de Daydream en suivant la documentation Google s’est passée sans trop de difficultés, malheureusement le guide n’est déjà plus à jour et il faudra adapter certaines choses ici et là.

En terme de matériel j’ai acheté un Nexus 6P pour le casque (headset) et j’ai un Nexus 5 que j’utilise pour la télécommande (tracker) J’avais un Cardboard en plastique déjà et j’utilise mon clavier Bluetooth pour l’expérience.


Cardboard

Clavier

Apprentissage

J’ai regardé quelques vidéos pour apprendre un minimum sur Blender afin de modéliser un clavier, c’est assez simple puisque je me suis limité à des cubes. J’ai nommé les touches selon la convention de Unity pour pouvoir facilement y accéder ensuite en Unity Script (C#).

Pour le reste, je vais apprendre au fur et à mesure.

Avancés

Je suis parti de la démo de Google afin de ne pas avoir a créer une scène de zéro, la télécommande a marché facilement et j’ai pu bouger les cubes avec comme le prévoit la démo.

Ensuite j’ai intégré mes modèles Blender, “Snowman” et “Lapin” que j’avais créé dans les tutoriels vidéos, j’ai ajouté le nécessaire dans le code pour qu’on puisse les déplacer aussi. Fun.

J’ai ajouté un bloc pour symboliser le tracker - Nexus 5 - physiquement dans la scène (en effet dans la démo de Google il n’y a qu’un pointeur) et j’ai ajouté le code pour que le bloc bouge selon la position du tracker sur les 3 axes.

Finalement j’ai importé le clavier dans Unity et ajouté un champ texte dans la scène. Après quelques temps sur la documentation Unity (pas très simple à trouver sur ce point particulier) j’ai réussi à récupérer les événements des touches, et du coup j’ai pu coder un feedback sur le modèle 3D du clavier : quand on appuie sur une touche physique alors la touche du modèle 3D s’illumine.

Au final le rendu est sympa mais pas aussi satisfaisant que ce que j'avais en tête à cause d’une limitation importante sur la plateforme Daydream.

Ce que j’ai appris

Malheureusement je suis vite arrivé sur une des limitations de la plateforme Daydream (dans la configuration que j’utilise en tout cas) : le positionnement dans l'espace n’est pas possible. En effet si l’utilisateur se déplace, ou si il déplace le tracker physiquement dans l’espace, il n’est pas possible de répercuter ces déplacements dans la VR. Pour que ce soit possible il faudrait des capteurs externes comme le propose le Vive par exemple. C’est une limitation connue de Daydream dans sa version actuelle, limitation qui m’avait complètement échappée.

Étape par étape

La deuxième étape sera de faire marcher un navigateur web et d'utiliser le clavier et le contrôleur Daydream pour aller sur le web.

Je tenterai aussi des expérimentations avec une wiimote (au moins réussir une connexion) et aussi de récupérer un flux vidéo d'un autre device en temps réel pour faire un écran de feedback sur le monde réel

Rendu final

Malheureusement je n’ai pas trouvé un moyen de faire une capture vidéo du rendu, les app qui le permettent en général ne fonctionnent pas avec le mode VR. On peut voir sur cette scène, le clavier au repos. Les touches n’ont pas de textures (flemme), elles deviennent oranges quand on appuie dessus. A droite le tracker (Nexus 5 dans le monde physique) et le pointeur en orange au loin. Il y a aussi l’écran qui flotte avec le texte entré au clavier qui apparaît dessus.