#Hololens – HoloToolkit Sharing: compartir Hologramas entre diferentes devices (Post 1 de N o lo que me cueste hacerlo funcionar …)

Hola !

Ahora que he encontrado un 2do set de Hololens para trabajar aquí en Toronto, llega el momento de volver a Unity3D y a HoloToolkit. Dentro del mismo, es momento de probar una de las features menos documentadas que hay: Sharing Holograms.

Una vez que hemos importado (de la forma correcta) el paquete de HoloToolkit Unity, podemos ver dentro de los Assets la carpeta Sharing.

Clipboard03.jpg

Este es el elemento que debemos agregar a nuestro proyecto de Unity para que el mismo tenga capacidades de “Sharing” con otras apps en Hololens. En las propiedades de este elemento vemos que el mismo utiliza un par de clases interesantes:

  • SharingStage.cs
  • SharingSessionTracker.cs
  • AutoJoinSession.cs
  • CustomMessages.cs

clipboard05

Como siempre, al faltar documentación relevante, os recomiendo ver el código de las mismas ya que es la forma más simple de comprender cómo funciona esta funcionalidad. Por ahora solo remarcar las propiedades de [Sharing Stage]

  • Client Role: define el tipo de cliente para una app de Sharing. Segun la documentación de la clase C#:

/// Set whether this app should be a Primary or Secondary client.
/// Primary: Connects directly to the Session Server, can create/join/leave sessions
/// Secondary: Connects to a Primary client. Cannot do any session management

  • Server Address y Server Port: La dirección IP y puerto del servidor que se utiliza para coordinar el sharing de información entre varios devices
  • Auto Discover Server: Solo con habilitar este check, nuestra app debería poder descubrir automáticamente un Sharing Server en la misma subnet. En mi caso, y tal vez por las restricciones de mi red local, no he podido descubrirlo automáticamente, por lo que he tenido que configurar a mano la dirección IP y el puerto.

Después de leer todo esto, llega el momento de preguntarse donde está Sharing Service. El server es un exe escondido en las entrañas del paquete de HoloToolkit.

$\HoloToolkit-Unity-master\External\HoloToolkit\Sharing\Server\SharingService.exe

Ahora ya podemos lanzar el executable y tener nuestro Sharing Service Up and Running.

Nota: Hay una opción para lanzar Sharing Service desde el menú de Unity. No he conseguido que funcione.

clipboard07

Ahora bien, más novedades, existen 2 formas de lanzar el Sharing Service

  • local, funcionando en modo app
  • servicio, funcionando como un servicio de Windows

clipboard09

Para este ejemplo lanzaré la app en modo local. En este momento podemos ver lo siguiente en la consola de comando

Clipboard11.jpg

C:\Hololens\Sharing\Server>SharingService.exe -local
Running Sharing Service locally. Enter ‘q’ to quit.
SharingService: ** Logging Session Began at 23:24:59, 10-6-2016
SharingService: ***********************************
SharingService: ****** Sharing Service OnStart ******
SharingService: ***********************************
SharingService: Server Info:
Build Version: 1.1.0.0
Schema Version: 15
SharingService: Listening for session list connections on port 20602 of all network devices of the local machine.
SharingService: Local IP addresses are:
SharingService: 172.16.80.1
SharingService: 192.168.0.19
SharingService: 169.254.80.80
SharingService: Created Session “Default” with ID 0 on port 20601

Cuando lanzamos una app creada que utilize el Asset de Sharing, con los valores correctamente configurados, podremos ver que el server detecta una nueva sesión y comienza a mostrar logs sobre la misma.

clipboard14

Pues bien, en el siguiente post sobre Sharing espero poder mostrar como 2 apps comparten y trabajan sobre un mismo holograma!

Saludos @ Toronto

El Bruno

References

5 comments

  1. Hola bruno, podrías explicar como es el proceso que se debe hacer para, una vez arrancado el servidor, el emulador y las hololens corran todas ellas en un mismo ordenador?, que de diferente deben estar configurada cada una de ellas?

    Like

    1. Hola Guillermo
      pues daria para un rato largo de escribir, si saco tiempo lo pongo en un post. Te recomiendo que veas https://github.com/Microsoft/MixedRealityToolkit-Unity/wiki/Sharing y si sigues los pasos del tutorial principal de la HoloAcademy https://developer.microsoft.com/en-us/windows/mixed-reality/holograms_240#chapter_3_-_shared_coordinates tambien podras ver los requisitos y pasos necesarios. Es todo cuestion de configurar correctamente direcciones IPs
      Saludos
      -Bruno

      Like

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.