Ejercicio: Incorporación de scripts de interacción manual a un objeto

Completado

El script ObjectManipulator admite la modalidad de “manipulación directa” del modelo de entrada “manos y controladores de movimiento”. Cuando los scripts se adjuntan a un objeto, el usuario puede mover, escalar o girar el objeto con las manos. En este ejercicio, creará dos cubos, les adjuntará los scripts necesarios y luego los moverá.

Agregue y ajuste el primer cubo

  1. En la barra de menús, seleccione GameObject>Objeto 3D>Cubo.

    Screenshot of menu commands for adding the cube.

    El tamaño predeterminado del cubo es de un metro cuadrado; esto es demasiado grande para nuestros objetivos. Reduciremos el tamaño a 20 x 20 x 20 cm.

  2. Seleccione el cubo y, a continuación, en Inspector, cambie los valores Tranform/Scale (Transformar/Escalado) del cubo a lo siguiente:

    X = 0.2, Y = 0.2, Z = 0.2

    El cubo se colocó en la escena en la posición predeterminada de (0,0,0). Esto significa que el cubo está en la misma posición que el casco del usuario y este no podrá ver el cubo hasta que se mueva hacia atrás. Cambiaremos los valores de posición del cubo para que esté en una mejor ubicación para visualizarlo.

  3. En Inspector, cambie los valores Tranform/Position (Tranformar/Posición) del cubo a lo siguiente:

    X = 0.2, Y = 1.6, Z = 0.5

    Screenshot of the cube's transform component after updates.

    Queremos poder ver tres lados del cubo, por lo que también cambiaremos su rotación.

    Nota:

    El alto del cubo se establece en 1.6 para que coincida con el alto del desplazamiento de cámara en Plataforma de XR de MRTK, lo que lo coloca aproximadamente en el nivel del ojo.

  4. En Inspector, cambie los valores Tranform/Rotation (Tranformar/Rotación) del cubo a lo siguiente:

    X = 9, Y = 14, Z = 0

    Sugerencia

    Para acercar el cubo, selecciónelo, asegúrese de que el cursor mantiene el puntero sobre la ventana Escena y presione la tecla F. Puede acercar cualquier objeto de esta manera.

Agregar los scripts al cubo

Para que un objeto sea “agarrable” con las manos con seguimiento, debe tener tres componentes conectados:

  • Un componente Collider (no es necesario hacer nada aquí: el cubo de Unity ya tiene un componente Box Collider asociado de forma predeterminada)
  • Componente Object Manipulator (Script) (Manipulador de objetos [script])
  1. Con el cubo todavía seleccionado, en la ventana Inspector, seleccione el botón Añadir componente, y luego busque y seleccione el script Manipulador de objetos.

    Screenshot of adding the Object Manipulator script.

    El script ObjectManipulator hace que un objeto se pueda mover, escalar y girar con una o las dos manos. Al agregar el script Manipulador de objetos, el script Administrador de restricciones también se agrega automáticamente porque el script Manipulador de objetos depende de él.

    Screenshot of the Constraint Manager script added to the cube.

Actualizar el material del cubo

Para fines de rendimiento, se recomienda usar materiales de MRTK en lugar de los materiales predeterminados de Unity.

  1. Con el cubo aún seleccionado, busque la sección "Materiales" en el componente Representador de malla.
  2. Reemplace el material predeterminado por el material de MRTK_Standard_White, ubicado enMateriales de recursos estándar de MRTK>Materiales.

Agregue un segundo cubo

  1. En Jerarquía, haga clic con el botón derecho en el cubo y, a continuación, seleccione Duplicar. El cubo duplicado aparece con el nombre “Cube” (1) (Cubo (1)).

  2. Haga clic con el botón derecho en el cubo original, seleccione Cambiar nombre y, a continuación, asigne al cubo el nombre “Cubo cercano”.

  3. Haga clic con el botón derecho en el cubo duplicado, seleccione Cambiar nombre y, a continuación, asigne al cubo el nombre “Cubo lejano”.

    Por el momento, parece que solo hay un cubo en la vista Escena. Esto se debe a que el cubo cercano y el cubo lejano están en el mismo lugar exacto. Vamos a cambiar la posición y rotación del cubo lejano.

  4. Conel cubo lejano aún seleccionado, cambie sus valores en el componente Transformar por lo siguiente:

    Posición: X = 0.6, Y = 1.6, Z= 1.1

    Rotación: X = 27, Y = 0, Z = 0

    Ahora, la cámara debería ver el cubo cercano a la izquierda y el cubo lejano un poco más lejos a la derecha. Para confirmarlo, en Jerarquía, seleccione Cámara principal (enPlataforma de XR de MRTK>Desplazamiento de cámara) y luego mire a la ventana Cámara principal en la ventanaEscena.

    Screenshot of the Main Camera view in the Scene window.

    Sugerencia

    Si quiere que la vista de la ventana Escena se parezca más a lo que ve la cámara, desplácese por la ventana Escena. Es posible que deba establecer Borrar marcas de la cámara en Skybox si no está establecido de forma predeterminada.

Agarre y mueva los cubos en modo de reproducción

  1. Seleccione el botón Reproducir. Cuando el proyecto comienza a reproducirse, la vista cambia a la ventana Juego.

    Screenshot of the Game window after entering Play mode.

    Nota:

    Antes de reproducir, confirme que hay un perfil válido establecido en Configuración del proyecto>MRTK3.

  2. Seleccione el botón de tres puntos situado encima de la esquina superior derecha de la ventana Juego y seleccione Maximizar.

    Screenshot of Maximize command for the Game window.

  3. Presione la barra espaciadora para que la mano derecha simulada aparezca en la vista.

  4. Acerque la mano simulada al cubo cercano hasta que toque el lado o la parte inferior del cubo.

    Screenshot of the simulated right hand touching the Near Cube.

  5. Seleccione el botón izquierdo del mouse (esto hace que la mano “agarre” el cubo) y lo arrastre alrededor de la escena.

    Screenshot of Move the cube.

    Para agarrar y mover el cubo lejano, usaremos el puntero lejano asociado a la mano simulada.

  6. Si es necesario, vuelva a presionar la barra espaciadora para que aparezca la mano derecha simulada. Observe el puntero lejano que se extiende desde el final del dedo índice de la mano.

    Screenshot of simulated hand's far pointer.

  7. Acerque la mano al cubo lejano hasta que pueda ver la punta del puntero en el cubo. Es posible que tenga que mover la mano en un movimiento circular varias veces para que la punta del puntero aparezca en el cubo.

    Screenshot of the far pointer touching the cube.

  8. Seleccione el botón izquierdo del mouse (esto hace que la mano se cierre, haciendo lo que llamamos el “gesto de pellizcar”) y, a continuación, arrastre el cubo alrededor de la escena.

Simulación de la entrada en el editor de Unity

Puede probar el comportamiento de objetos holográficos con las características de simulación de entrada en el editor de Unity.

Cambiar la vista de la escena

  • Presione las teclas W/A/S/D para mover la cámara hacia delante, la izquierda, atrás o la derecha.
  • Para mover la cámara verticalmente, presione las teclas Q y E.
  • Para girar la cámara, presione el botón derecho del mouse y arrastre.

Simular la entrada de mano

  • Para habilitar la mano derecha simulada, mantenga presionada la barra espaciadora. Para quitar la mano, suelte la barra espaciadora.
  • Para habilitar la mano izquierda simulada, mantenga presionada la tecla Mayus izquierda. Para quitar la mano, suelte la tecla.
  • Para mover cualquiera de las manos alrededor de la escena, mueva el mouse.
  • Para mover la mano hacia delante o hacia atrás, gire la rueda del mouse.
  • Seleccione el botón izquierdo del mouse para simular el gesto de pellizcar.
  • Para girar la mano, mantenga presionada la barra espaciadora + la tecla CTRL (mano derecha) o la tecla Mayús izquierda + la tecla CTRL (mano izquierda) y, a continuación, mueva el mouse.

Manos persistentes

  • Para habilitar una mano y mantenerla en pantalla sin tener que mantener presionada una tecla, presione T (mano izquierda) o Y (mano derecha). Para quitar las manos, vuelva a presionar esas teclas.

Compile su aplicación en Unity

  1. En la barra de menús, seleccione Archivo>Configuración de compilación....

  2. En la ventana Build Settings (Configuración de compilación), seleccione el botón Add Open Scenes (Agregar escenas abiertas) para agregar la escena actual a la lista Scenes In Build (Escenas de la compilación).

  3. Seleccione el botón Compilar.

  4. En la ventana Build Universal Windows Platform (Compilar Plataforma universal de Windows), vaya a la carpeta donde desea almacenar la compilación o cree una nueva carpeta y vaya a ella. A continuación, seleccione el botón Select Folder (Seleccionar carpeta) para iniciar el proceso de compilación.

    Screenshot of the location to save your build.

    Aparece una barra de progreso que le permite saber cómo se está avanzando en la compilación.

(Opcional) Para compilar e implementar la aplicación

Nota:

La creación y las pruebas de HoloLens 2 no son obligatorias. Como alternativa, puede realizar pruebas en el Emulador de HoloLens 2 si no tiene un dispositivo. Los dispositivos se pueden adquirir en HoloLens.com.

  1. Una vez completado el proceso de compilación, Explorador de archivos de Windows abre y muestra la carpeta de compilación. Desplácese a la carpeta y haga doble clic en el archivo de solución para abrirlo en Visual Studio:

    Screenshot of File Explorer with the builds folder displayed.

  2. Configure Visual Studio para HoloLens. Para ello, seleccione la configuración Principal o Versión y la arquitectura ARM64:

    Screenshot of Visual Studio window with the build options for the project.

    Sugerencia

    Si va a realizar la implementación en HoloLens (1ª. generación), seleccione la arquitectura x86.

    Nota

    Si no ve “Dispositivo” como opción de destino en Visual Studio, es posible que deba cambiar el proyecto de inicio de la solución del proyecto de IL2CPP al proyecto de UWP. Para ello, en Explorador de soluciones, haga clic con el botón derecho en [nombre del proyecto](Universal Windows) y, a continuación, seleccione Set as StartUp Project (Establecer como proyecto de inicio).

    Importante

    Antes de realizar una compilación en el dispositivo, el dispositivo debe estar en Modo de desarrollador y emparejado con el equipo de desarrollo. Consulte la sección denominada “Enabling Developer Mode” (Habilitación del modo de desarrollador) en esta página.

  3. Seleccione la lista desplegable de destino de implementación y, a continuación, realice una de las acciones siguientes:

    • Si va a compilar e implementar a través de Wi-Fi, seleccione Equipo remoto.

    Screenshot of Visual Studio window with Remote Machine as the target.

    • Si va a compilar e implementar a través de USB, seleccione Dispositivo.

    Screenshot of Visual Studio window with Device as the target.

  4. Establezca la conexión remota: en la barra de menús, seleccione Proyecto > Propiedades.

  5. En la ventana Páginas de propiedades del proyecto, en Propiedades de configuración > Depuración.

  6. Seleccione el menú desplegable Debugger to launch (Depurador que se va a iniciar) y seleccione Remote Machine (Máquina remota), si no está ya seleccionada.

    Importante

    Siempre se recomienda especificar manualmente la dirección IP en lugar de depender de la característica "Detección automática". Para buscar la dirección IP, en HoloLens, vaya a Configuración > Actualizaciones y Seguridad > Para desarrolladores. La dirección IP aparece en la parte inferior de la ventana, en Ethernet.

  7. En el campo Nombre del equipo, escriba la dirección IP del dispositivo.

    Remote connection dialog in Visual Studio

  8. Establezca el Modo de autenticación en Universal (protocolo sin cifrar).

  9. Conecte el dispositivo HoloLens al equipo y, a continuación, realice una de las acciones siguientes en Visual Studio:

    • Para implementar HoloLens e iniciar automáticamente la aplicación en el dispositivo sin el depurador de Visual Studio adjunto, seleccione Depurar>Iniciar sin depurar.
    • Seleccione Compilar>Implementar solución para implementar HoloLens en el dispositivo sin que la aplicación se inicie automáticamente.

    Screenshot of Visual Studio with the Start Without Debugging menu item displayed.

Emparejamiento del dispositivo

La primera vez que implemente una aplicación en HoloLens desde el equipo, deberá escribir un PIN. Para crear un PIN:

  1. En HoloLens, vaya a Configuración > Actualizaciones y Seguridad > Para desarrolladores.
  2. Seleccione Emparejar. Esto muestra el PIN en HoloLens.
  3. Escriba el PIN en el cuadro de diálogo de Visual Studio.
  4. Una vez completado el emparejamiento, seleccione Listo en HoloLens.

En ese momento, el equipo estará emparejado con HoloLens y podrá implementar aplicaciones automáticamente. Repita estos pasos para todos los equipos que se usen para implementar aplicaciones en HoloLens.

Ejecución de la aplicación en HoloLens

  1. Una vez que la aplicación termine de compilarse, en el menú Inicio de HoloLens, busque el icono de aplicación de la aplicación y selecciónelo.

  2. Una vez que se inicie la aplicación, alcance el cubo cercano y, a continuación, agárrelo y arrástrelo.

  3. Use el puntero lejos para agarrar el cubo lejano y, a continuación, arrástrelo.

    Sugerencia

    HoloLens proporciona más flexibilidad que cuando estaba probando la aplicación en Unity. Puede moverse físicamente y utilizar el puntero lejano en el cubo cercano o alcanzar y agarrar con la mano el cubo lejano.

Sugerencias

  • También puede realizar la implementación en el emulador de HoloLens o crear un paquete de aplicación para la instalación de prueba.

  • Es posible que observe el generador de perfiles de diagnóstico en la aplicación. Puedes activarlo o desactivarlo mediante el comando de voz “Toggle Diagnostics” (Alternar diagnóstico). Se recomienda que mantenga el generador de perfiles visible la mayor parte del tiempo durante el desarrollo para comprender cómo los cambios en la aplicación pueden afectar al rendimiento. Por ejemplo, puede supervisar la aplicación para asegurarse de que la velocidad de fotogramas sea de al menos de 60 FPS.