#Hololens – Moving and rotating holograms using an #XBoxOne Controller

Hello!

Now that I have already connected the XBoxOne controller to the Hololens and I wrote on how to use some code to work with it, today’s post will show some of the features of the HoloToolkit class “Game Controller Manipulator“.

This class allows us to do several things, without having to add a line of code:

  • Selecting and moving a hologram in the PoV of the user of Hololens
  • Rotate a hologram on its 3-axis

Here is an example of this class in use.

2017 03 02 Holo XboxOne Controller Rotate Move 01.gif

Important: I found an error which affects the performance on a final app. I need to define the “ControllerTriggerAxis” as a new input element to be used for the Game Controller script. The following steps fix the original ones.

We start with the basics with these steps

  • 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

The configuration of the Cube would look similar to the following image:

clipboard04

The input section would be similar to the following image:

clipboard02

Now we see a little so you can make the script Game Controller Manipulator. The first thing we see is that it has the following properties

clipboard02

In these properties we use the custom values we add in the Input for the Project settings. The 2 latest properties are also important

  • “Rotate modifier button name” indicate the name of a button on the remote control of XboxOne. Fire2 corresponds with the B button on the controller. While we hold it and move the joystick on the remote control, the hologram that this pointed to with the Gaze, will rotate on their axes, X, and y Z.
  • If you select “Move Gaze Target” when you press the button “Fire 1” (A button on the controller) we can move the hologram selected using the joystick on the remote control.

In these 2 scenarios, we see how the properties of the class define what are the elements of Input that are used to move the object of work.

Finally, comment that this class can be used in 2 ways

  • If you select the option “Move Gaze Target”, the movement and rotation apply to a hologram that is pointing the Gaze.
  • If the script is attached to an element and the “Move Gaze Target” option is not selected, move and rotate options are applied to the element

Greetings @ Toronto

El Bruno

References

Advertisements

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

Hola ! Ayer comenté como conectar un mando de XBoxOne a las Hololens, hoy veamos un poco de código para interactuar con el mismo. El ejemplo es simple Una vez agregada la capacidad de Spatial Mapping en el proyecto, activaremos la visualización de Mesh cuando se presione el botón A del mando de XBoxOne Por ejemplo: Empezamos por […]

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

#Hololens – Fire Buttons actions with a #XBoxOne Controller

Hola ! Ayer comenté como conectar un mando de XBoxOne a las Hololens, hoy veamos un poco de código para interactuar con el mismo. El ejemplo es simple Una vez agregada la capacidad de Spatial Mapping en el proyecto, activaremos la visualización de Mesh cuando se presione el botón A del mando de XBoxOne Por ejemplo: Empezamos por […]

Hello!

Yesterday I wrote on how to connect an XBoxOne controller to a Hololens. Today I’ll share a bit of code on how to interact with the device. The example is simple

Once added the ability of Spatial Mapping in the project, we will activate the display of Visual Mesh when you press button A on the XBoxOne remote control

For example:

 

2017-03-01-holo-xboxone-controller-03

We started with the basics, creating a project vacuum in Unity3D and following these steps

  • Configure project to support HoloLens projects
  • Clean Scene elements
  • Import HoloToolkit package
  • Add
    • HololensCamera
    • SpatialMapping
    • CursorWithFeedback
  • Add Empty element, Managers
    • Add existing scripts
      • Gaze Managers
      • Gaze Stabilizer
      • Input Manager
    • Add new empty script
      • XboxControllerManager

After completion of the project would be similar to the following:

Clipboard02.jpg

Now we see the code required for the “XboxControllerManager” script. We will work on the Update(): check for button A pressed state, and let’s add that state to the DrawVisualMeshes property of the active instance of Spatial Mapping.

clipboard04

Done! This is good enough for a sample, although here it is convenient to study a bit about concepts that handles Unity for the “Inputs” (see references). In this case, in the project properties, we can see the basic settings for projects 3D in Unity in this aspect. And the main class for the States of the buttons on the remote control to access is UnityEngine.Input.

In the next post, when working with a kind of HoloToolkit for control of Xbox, comment the changes needed to make it work properly.

The source of the example source code can be downloaded from link.

Greetings @ Toronto

El Bruno

References

#Hololens – Capturando Fire Buttons events de un #XBoxOne Controller

Hola !

Ayer comenté como conectar un mando de XBoxOne a las Hololens, hoy veamos un poco de código para interactuar con el mismo. El ejemplo es simple

Una vez agregada la capacidad de Spatial Mapping en el proyecto, activaremos la visualización de Mesh cuando se presione el botón A del mando de XBoxOne

Por ejemplo:

2017-03-01-holo-xboxone-controller-03

Empezamos por lo básico, creando un proyecto vacio en Unity3D y siguiendo los siguientes pasos

  • Configure project to support HoloLens projects
  • Clean Scene elements
  • Import HoloToolkit package
  • Add
    • HololensCamera
    • SpatialMapping
    • CursorWithFeedback
  • Add Empty element, Managers
    • Add existing scripts
      • Gaze Managers
      • Gaze Stabilizer
      • Input Manager
    • Add new empty script
      • XboxControllerManager

Una vez finalizado el proyecto quedaría similar al siguiente:

Clipboard02.jpg

Ahora nos queda ver el código necesario del script “XboxControllerManager”. En el mismo verificaremos en el Update() si el botón A está presionado, y asociaremos ese estado a la propiedad DrawVisualMeshes de la instacia activa de Spatial Mapping.

clipboard04

Y listo ! Como ejemplo sirve, aunque aquí es conveniente estudiar un poco sobre los conceptos que maneja Unity para los “Inputs” (ver referencias). En este caso, en las propiedades del proyecto podemos ver la configuración básica para los proyectos 3D en Unity en este aspecto. Y la clase principal para acceder a los estados de los botones del mando es UnityEngine.Input.

En el próximo post, cuando trabaje con una clase de HoloToolkit para el mando de Xbox, comentaré los cambios necesarios para que la misma funcione correctamente.

El código fuente del ejemplo se puede descargar desde link.

Saludos @ Toronto

El Bruno

References

#Hololens – Windows 10, Xbox One Controller, Bluetooth and some lessons learned

Hello!

Since version Windows 10 Anniversary Edition, we can to connect a XBox One controller wireless to a computer to use it. I’m not a gamer, so the couple of times I have used it it always had been for very useful scenarios. For example: Control a Usb missile launcher with a XBox One controller (link)

And what better than a video showing this.

 

Now comes the time when I need to connect a controller wirelessly. So, I did the steps suggested by common sense. First, go to Settings and search for “Connect wireless Xbox One controller

clipboard05

In the Bluetooth section, add my device.

clipboard06

But nothing… I had the controller in “discovery” mode, but I found no way to connect it. I thought maybe I needed an update, so I went back to the old school steps. I connected the controller with a USB cable and installed the app “XBox Accessories”.

clipboard08

Then check if the device needed a Firmware upgrade. In this case, the device is the up to date.

clipboard10

I went back to try to connect the device via BlueTooth and nothing. The problem began to get interesting. I start to browse and see what you could be going.

After awhile to navigate and read, I went back to the home page of connection and problems with the controls of the XBox (link). In it, appears in very clear there are 2 models of the XBox controllers, the “new ones” and “old ones”. As logic dictates, the old ones do not support the wireless connection, and the new ones Yes.

clipboard03

As you can see in the video of the rocket launcher, I have a couple of “old” controllers. Lucky me, when a few months ago I bought the XBox One S, it brought me a “new” command. So I made the change to Valentino (my son) and I could now go ahead.

clipboard01

Now the important part, connect the XBox controller to Hololens. This is quite simple, just have to go to Settings, Bluetooth, add device.

clipboard01

In the list of devices we’ll see XBox control. We pressed the button Pair.

clipboard02

And few seconds later we will have connected to our Hololens command.

clipboard03

From here I can already return to write about Unity 3D and Hololens with XBox Controller!

Greetings @ Toronto

El Bruno

References

#Hololens – Windows 10, Xbox One Controller, Bluetooth y una lección aprendida a tiempo

 

Hola !

Desde la versión Windows 10 Anniversary Edition, es posible conectar un mando de XBox One vía BlueTooth a un ordenador para utilizar el mismo. En mi caso, que no soy muy jugón, el par de veces que lo había utilizado siempre había sido para cosas muy útiles como por ejemplo: Controlar un lanza misiles con un mando de XBox One (link)

Y que mejor que un video que muestra esto.

 

Pues bien, ahora que llega el momento de conectar un mando de forma inalámbrica, hice los pasos que sugiere el sentido común. En primer lugar, Settings y buscar por “Connect wireless Xbox One controller

clipboard05

En la sección de bluetooh, agregar mi device.

clipboard06

Pero nada … tenía el mando en modo “discovery” pero no encontré forma de conectarlo. Supuse que tal vez necesitaba un update, así que volví a los pasos de la vieja escuela. Conecté el mando con un cable USB e instalé la app “XBox Accesories”.

clipboard08

Luego  verifiqué si el device necesitaba un upgrade de Firmware. En este caso, el device está al actualizado al día.

clipboard10

Volví a intentar conectar el device por BlueTooth y nada. La cosa se empezaba a poner interesante. Me tocó comenzar a navegar y ver que podía estar pasando.

Después de un rato de navegar y leer, volví a la página principal de conexión y problemas con los mandos de XBox (link). En la misma, aparece muy en claro que hay 2 modelos de mandos de XBox, los “nuevos” y los “viejos”. Como dicta la lógica, los viejos no soportan la conexión inalámbrica, y los nuevos sí.

clipboard03

Como se puede ver en el video del lanzamisiles, yo tengo un par de mandos “viejos”. Por suerte, cuando hace unos meses compré la XBox One S, la misma me trajo un mando “nuevo”. Así que le hice el cambio a Valentino y ya pude seguir adelante.

clipboard01

Ahora la parte importante, conectar el mando de XBox a Hololens. Esto es bastante simple, solo tenemos que ir a Settings, Bluetooth, add device.

clipboard01

En la lista de devices veremos el mando de XBox. Presionamos el botón Pair.

clipboard02

Y pocos segundos después ya tendremos el mando conectado a nuestras Hololens.

clipboard03

A partir de aquí ya puedo volver a escribir sobre Unity 3D y Hololens con XBox Controller !

Saludos @ Toronto

El Bruno

References

#XBox – XBox Design Lab, crea tu mando de #XboxOne a medida!

Hola !

Una de las cosas que más me gusta de la XBoxOne S es su mando blanco. Ahora bien, hoy he conocido XBox Design Lab. En este sitio podemos diseñar y crear nuestros propios mandos, por ejemplo jugando con el blanco y el naranja podemos crear algo así

Xbox Design Lab

Tenemos para personalizar 7 aspectos de nuestro mando

  • Body
  • Bumpers
  • Triggers
  • DPad
  • Thumbsticks
  • ABXY
  • View and Menu
  • Back

Y al finalizar el proceso podemos ver un preview muy potente con el diseño final y el uso que hemos hecho de los colores

Clipboard04

Luego llega el momento interesante: pagar. En este caso son $79, aquí además podemos agregar un grabado láser por $9 más.

Podemos guardar cada uno de estos diseños y compartirlos en una galería. El diseño anterior se puede ver aquí (link). Y claro, si tienes algún enemigo puedes regalarle el siguiente mando (link)

Clipboard06

 

Saludos @ Toronto

El Bruno

References

[#KINECT] #Kinect Adapter for Windows

Hello!

One of the big differences between Kinect V1 and V2 is that in version 2 we can use XBox One Kinect with our computer without any problems. If we go back a little, with the Kinect V1 we used to had 2 versions

  • Kinect for Windows
  • Kinect for XBox

Officially, you could use the Kinect for XBox to develop apps, but then the production stage you should use the version for Windows.

With version 2, this has changed, and if you have a XBox One with Kinect, you can use it with Windows. And of course, you need this adapter: Adapter Kinect for Windows.

When I get the box I got scared a bit, since it is quite big

k01

Then quickly startle is passed, there are lots of air inside the box and 4 wires of rigor for the Kinect

k02

In 4 minutes, connected to the Surface and running!

Greetings @ Home

/El Bruno

[#KINECT] Adaptador #Kinect para Windows

Hola!

Una de las grandes diferencias entre Kinect V1 y V2 es que en la versión 2 podemos usar la Kinect de la XBox One con nuestro ordenador sin problemas. Si hacemos un poco de memoria, con la Kinect V1 teníamos 2 versiones

  • Kinect for Windows
  • Kinect for XBox

Oficialmente podías utilizar la Kinect de XBox para desarrollar apps, pero luego en producción solo podías usar la versión para Windows.

Con la version 2 esto ha cambiado, y si tienes una XBox One con Kinect, la puedes usar con Windows. Eso sí, necesitas este adaptador: Adaptador Kinect para Windows.

Cuando me llego la caja me asusté un poco, ya que la misma es bastante grande

k01

Luego el susto se pasa enseguida, hay MUCHO AIRE dentro de la caja y los 4 cables de rigor para la Kinect

k02

En 4 minutos, conectado al Surface y funcionando !

Saludos @ Home

/El Bruno