#Hololens – Moviendo y rotando Hologramas usando un #XBoxOne Controller

Hola !

Ahora que ya tengo conectado el mando de XBoxOne a las Hololens, y escribí sobre la base para trabajar con el mismo, hoy veremos algunas de las funcionalidades de la clase “Game Controller Manipulator“, que es parte de HoloToolkit.

Esta clase nos permite hacer varias cosas, sin tener que agregar ni una línea de código:

  • Seleccionar y mover un holograma dentro del PoV del usuario de Hololens
  • Rotar un holograma sobre sus 3 ejes

Veamos un ejemplo de esta clase funcionando.

2017 03 02 Holo XboxOne Controller Rotate Move 01.gif

Importante: He encontrado un error en los pasos de configuración y he actualizado el post para solucionar los mismos.

Empezamos por lo básico con los siguientes pasos

  • Create a 3D project in Unity3D
  • Configure project to support HoloLens projects
  • Clean Scene elements
  • Import HoloToolkit package
  • Add
    • HololensCamera
    • SpatialMapping
      • Uncheck the property “Draw Visual Meshes”
    • DefaultCursor
    • InputManager
  • Add Empty element, Managers
    • Add existing scripts
      • Game Controller Manipulator
      • Check the option “Move Gaze Target”
  • Add Empty element, HoloCollection
    • Add 3D elements
      • Cube
        • Position, x:0 y:0 z:2
        • Rotation, x:0 y:0 z:0
        • Scale, x:0.3 y:0.3 z:0.3
  • Edit – project settings – Input
    • Add element
      • Name: ControllerLeftStickX
      • Gravity: 0
      • Dead: 0.19
      • Sensitivity: 1
      • Type: Joystick Axis
      • Axis: X Axis
    • Add element
      • Name: ControllerLeftStickY
      • Gravity: 0
      • Dead: 0.19
      • Sensitivity: 1
      • Type: Joystick Axis
      • Axis: Y Axis
    • Add element
      • Name: ControllerTriggerAxis
      • Gravity: 0
      • Dead: 0.19
      • Sensitivity: 1
      • Type: Joystick Axis
      • Axis: Y Axis

La configuración del Cube quedaría similar a la siguiente imagen:

Clipboard06

La sección de input quedaría similar a la siguiente imagen:

Clipboard04

Ahora veamos un poco lo que puede hacer el script Game Controller Manipulator. Lo primero que vems es que el mismo tiene la siguientes propiedades

Clipboard02

En estas props se utilizan los valores custom que agregamos en las settings de  Input del proyecto. Además las 2 últimas propiedades son importantes

  • En “Rotate modifier button name” indicamos el nombre de un botón  del mando de XboxOne. En este caso Fire2 se corresponde con el boton B. Mientras tengamos presionado el mismo y movamos los joysticks del mando, el holograma que este apuntado con el Gaze, girará sobre sus ejes X, Y y Z.
  • Si seleccionamos “Move Gaze Target”, cuando presionemos el botón “Fire 1” (botón A en el mando) podremos mover el holograma seleccionado utilizando los joysticks del mando.

En estos 2 escenarios vemos como en las propiedades de la clase se definen cuáles son los elementos de Input que se utilizan para mover el objeto de trabajo.

Finalmente  comentar que esta clase se puede utilizar de 2 formas

  • Si se selecciona la opción “Move Gaze Target”, el movimiento y rotación se aplicará al holograma al que esté apuntando el Gaze.
  • Si se asocia el script a un elemento y no se selecciona la opción “Move Gaze Target”, las opciones de mover y rotar se aplicarán al elemento

Saludos @ Toronto

El Bruno

References

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s