Documentación de Needle Engine
Downloads
  • What is Needle Engine?
  • Testimonios
  • Get an overview

    • Samples and Showcase
    • Nuestra Visión 🔮
    • Resumen de Características
    • Resumen técnico
  • Resources

    • Pricing and Plans
    • Changelog
    • API Documentation
    • Support & Community
  • Integrations

    • Needle Engine para Unity
    • Needle Engine para Blender
    • Needle Engine como Web Component
    • Needle Engine en tu sitio web
    • Needle Cloud
  • Topics

    • Estructura de Proyecto Web
    • Acciones Everywhere
    • Exportar Assets a glTF
    • Frameworks, Bundlers, HTML
    • Testing on local devices
    • Despliegue y optimización
  • Advanced

    • Redes
    • VR & AR (WebXR)
    • Usando Needle Engine directamente desde HTML
    • Editor Sync
  • Troubleshooting

    • Cómo Depurar
    • Preguntas Frecuentes (FAQ) 💡
    • Get Help
  • Videos

    • Tutorials on Youtube
    • Interviews on Youtube
  • Scripting Overview

    • Scripting in Needle Engine
    • Introducción al Scripting para Desarrolladores de Unity
    • Componentes principales de Needle
    • Acciones Everywhere
  • Components and Lifecycle

    • Crear y usar Components
    • @serializable y otros decoradores
    • Generación Automática de Componentes
    • Ejemplos de scripting
    • Community Contributions
    • Módulos Adicionales
  • Settings and APIs

    • Configuración de <needle-engine>
    • needle.config.json
    • Needle Engine API
    • three.js API
Help
Samples
Pricing
  • Needle Website
  • Needle Cloud
  • Support Community
  • Discord Server
  • X/Twitter
  • YouTube
  • Newsletter
  • Email
  • Feedback
  • Github
  • English
  • 简体中文
  • Español
  • Português
  • Français
  • हिन्दी
  • 日本語
  • Deutsch
  • Tiếng Việt
Downloads
  • What is Needle Engine?
  • Testimonios
  • Get an overview

    • Samples and Showcase
    • Nuestra Visión 🔮
    • Resumen de Características
    • Resumen técnico
  • Resources

    • Pricing and Plans
    • Changelog
    • API Documentation
    • Support & Community
  • Integrations

    • Needle Engine para Unity
    • Needle Engine para Blender
    • Needle Engine como Web Component
    • Needle Engine en tu sitio web
    • Needle Cloud
  • Topics

    • Estructura de Proyecto Web
    • Acciones Everywhere
    • Exportar Assets a glTF
    • Frameworks, Bundlers, HTML
    • Testing on local devices
    • Despliegue y optimización
  • Advanced

    • Redes
    • VR & AR (WebXR)
    • Usando Needle Engine directamente desde HTML
    • Editor Sync
  • Troubleshooting

    • Cómo Depurar
    • Preguntas Frecuentes (FAQ) 💡
    • Get Help
  • Videos

    • Tutorials on Youtube
    • Interviews on Youtube
  • Scripting Overview

    • Scripting in Needle Engine
    • Introducción al Scripting para Desarrolladores de Unity
    • Componentes principales de Needle
    • Acciones Everywhere
  • Components and Lifecycle

    • Crear y usar Components
    • @serializable y otros decoradores
    • Generación Automática de Componentes
    • Ejemplos de scripting
    • Community Contributions
    • Módulos Adicionales
  • Settings and APIs

    • Configuración de <needle-engine>
    • needle.config.json
    • Needle Engine API
    • three.js API
Help
Samples
Pricing
  • Needle Website
  • Needle Cloud
  • Support Community
  • Discord Server
  • X/Twitter
  • YouTube
  • Newsletter
  • Email
  • Feedback
  • Github
  • English
  • 简体中文
  • Español
  • Português
  • Français
  • हिन्दी
  • 日本語
  • Deutsch
  • Tiếng Việt
  • Getting Started

    • Downloads
    • Needle Engine for Unity
    • Needle Engine for Blender
    • Needle Engine as Web Component
    • Needle Engine on your Website
    • Needle Cloud
    • Custom integrations
    • Support and Community
  • Core Concepts

    • Estructura de Proyecto Web
    • Acciones Everywhere
    • Exportar Assets a glTF
    • Frameworks, Bundlers, HTML
    • Testing on local devices
    • Despliegue y optimización
    • Cómo Depurar
    • Preguntas Frecuentes (FAQ) 💡
  • Scripting

    • Scripting in Needle Engine
    • Introducción al Scripting para Desarrolladores de Unity
    • Crear y usar Components
    • Generación Automática de Componentes
    • Ejemplos de scripting
    • Community Contributions
  • Advanced

    • VR & AR (WebXR)
    • Redes
    • Editor Sync
  • Reference

    • Resumen de Características
    • Resumen técnico
    • Componentes principales de Needle
    • needle.config.json
    • Configuración de <needle-engine>
    • @serializable y otros decoradores

Dispositivos compatibles

Needle Engine es compatible con la especificación completa de WebXR, incluyendo AR y VR. WebXR es un estándar web oficial que trae experiencias inmersivas a la web, con todas las ventajas de la web: sin instalación, sin tienda de apps, sin SDKs necesarios.

Todos los dispositivos con un navegador pueden ejecutar apps hechas con Needle. Si el navegador es compatible con WebXR, tus apps funcionarán automáticamente también en XR, usando nuestros componentes integrados. Esto incluye navegadores de escritorio, navegadores móviles, muchos navegadores en visores de AR/VR, pero también otras tecnologías emergentes como pantallas Looking Glass, gafas inteligentes, y más.

Soporte AR sin app para iOS vía USDZ/QuickLook

Aunque los dispositivos iOS aún no tienen soporte oficial para WebXR, Needle soporta la creación de experiencias AR en iOS usando Everywhere Actions. Consulta la sección de iOS para más detalles. Puedes crear experiencias ricas e interactivas que funcionen sin problemas en AR en dispositivos iOS, incluso con las limitaciones que Apple ha impuesto.

Cuando entras en modo AR en iOS, Needle convertirá automáticamente tu escena a un archivo USDZ, que luego se muestra en AR usando QuickLook de Apple. Se conservarán los objetos, materiales, audio, animación y Everywhere Actions.

La siguiente tabla lista algunos de los dispositivos que hemos verificado que funcionan con Needle Engine. Cuando salga un nuevo dispositivo compatible con WebXR, funcionará con tus apps de fábrica. Esta es una de las grandes ventajas de construir con el navegador como plataforma: la compatibilidad no se limita a un conjunto específico de dispositivos o SDKs.

Dispositivo VisorNavegadorNotas
Apple Vision Pro✔️ Safarihand tracking, soporte para transient pointer
Meta Quest 3✔️ Meta Browserhand tracking, soporte para sessiongranted1, passthrough, depth sensing, mesh tracking
Meta Quest 3S✔️ Meta Browserhand tracking, soporte para sessiongranted1, passthrough, depth sensing, mesh tracking
Meta Quest 2✔️ Meta Browserhand tracking, soporte para sessiongranted1, passthrough (blanco y negro)
Meta Quest 1✔️ Meta Browserhand tracking, soporte para sessiongranted1
Meta Quest Pro✔️ Meta Browserhand tracking, soporte para sessiongranted1, passthrough
Pico Neo 4✔️ Pico Browserpassthrough, hand tracking2
Pico Neo 3✔️ Pico Browserno hand tracking, thumbsticks de controlador invertidos
Oculus Rift 1/2✔️ Chrome
Valve Index✔️ Chrome
HTC Vive✔️ Chrome
Hololens 2✔️ Edgehand tracking, soporte para AR y VR (en modo VR, también se renderiza el fondo)
Dispositivo móvilNavegadorNotas
Android 10+✔️ Chrome
Android 10+✔️ Firefox
iOS 15+(✔️)3 Safari
(✔️)3 Chrome
No hay soporte de código completo, pero Everywhere Actions de Needle son compatibles para crear archivos USDZ dinámicos e interactivos.
iOS 15+✔️ WebXR Viewerel navegador está algo desactualizado actualmente
Hololens 2✔️ Edge
Hololens 1❌no tiene soporte WebXR
Magic Leap 2✔️
Magic Leap 1✔️dispositivo obsoleto
Otros DispositivosNavegadorNotas
Looking Glass Holographic Display✔️ Chromerequiere Looking Glass bridge y algo de código personalizado, ver nuestra muestra
Logitech MX Ink✔️ Meta Browsersoporte oficial, ver documentación

1: Requiere habilitar un flag del navegador: chrome://flags/#webxr-navigation-permission2: Requiere habilitar una opción en los ajustes de Desarrollador 3: Usa Everywhere Actions u otros enfoques

Ejemplos de VR, AR y QuickLook

Visita nuestras Needle Engine Samples para probar muchos ejemplos interactivos ahora mismo. O, pruébalo en vivo en tu dispositivo haciendo clic en los botones QR Code (para teléfonos) o Open on Quest (para visores Meta Quest) a continuación.

Añadir capacidades VR y AR a una escena

Las capacidades de AR, VR y networking en Needle Engine están diseñadas para ser modulares. Puedes elegir no soportar ninguna de ellas, o añadir solo características específicas.

Capacidades básicas

  1. Habilitar AR y VR Añade un componente WebXR. Opcional: puedes establecer un avatar personalizado referenciando un Prefab de Avatar. Por defecto, se asigna un DefaultAvatar básico.

  2. Habilitar Teleportation Añade un componente TeleportTarget a las jerarquías de objetos sobre las que se puede teletransportar. Para excluir objetos específicos, establece su layer a IgnoreRaycasting.

Multijugador

  1. Habilitar Networking Añade un componente SyncedRoom.

  2. Habilitar Desktop Viewer Sync Añade un componente SyncedCamera.

  3. Habilitar Voice Chat Añade un componente VoIP.

Estructura de escena

Estos componentes pueden estar en cualquier lugar dentro de tu jerarquía. También pueden estar todos en el mismo GameObject, lo cual es un patrón común.

Castle Builder usa todo lo anterior para una experiencia sandbox multijugador multiplataforma. — #madebyneedle 💚

Componentes AR especiales

  1. Definir la raíz y escala de la sesión AR Añade un componente WebARSessionRoot a tu objeto root. Para experiencias AR, a menudo quieres escalar la escena para que se ajuste al mundo real.
  2. Define la user scale para encoger (< 1) o ampliar (> 1) al usuario en relación con la escena al entrar en AR.

Controlar la visualización de objetos para XR

  1. Definir si un objeto es visible en Browser, AR, VR, First Person, Third Person Añade un componente XR Flag al objeto que quieres controlar.

  2. Cambia las opciones en el desplegable según sea necesario. Los casos de uso comunes son

    • ocultar suelos al entrar en AR
    • ocultar partes del Avatar en vistas en Primera o Tercera Persona. Por ejemplo, en vista en primera persona, una persona no debería poder ver su propio modelo de cabeza.

Viajar entre mundos VR

Needle Engine es compatible con el estado sessiongranted. Esto permite a los usuarios navegar sin problemas entre aplicaciones WebXR sin salir de una sesión inmersiva: permanecen en VR o AR.

Actualmente, esto solo es compatible con Oculus Quest 1, 2 y 3 en el Navegador de Oculus. En otras plataformas, los usuarios serán expulsados de su sesión inmersiva actual y tendrán que volver a entrar en VR en la nueva página. Requiere habilitar un flag del navegador: chrome://flags/#webxr-navigation-permission

  • Haz clic en objetos para abrir enlaces Añade el componente OpenURL que facilita mucho la construcción de mundos conectados.

Scripting

Lee más sobre scripting para XR en la documentación de scripting XR

Avatares

Aunque actualmente no ofrecemos una integración lista para usar de sistemas de avatares externos, puedes crear avatares o sistemas personalizados específicos de la aplicación.

  • Crear un Avatar personalizado
    • Crea un GameObject vacío como root del avatar
    • Añade un objeto llamado Head y añade un XRFlag configurado en Third Person
    • Añade objetos llamados HandLeft y HandRight
    • Añade tus gráficos debajo de estos objetos.

Componentes de Avatar Experimentales

Hay una serie de componentes experimentales para construir Avatares más expresivos. En este punto, recomendamos duplicarlos para hacer tus propias variantes, ya que pueden ser cambiados o eliminados más adelante.

20220817-230858-87dG-Unity_PLjQEjemplo de Rig de Avatar con modelo de cuello básico y constraints de extremidades

  • Random Player Colors Como ejemplo de personalización de avatar, puedes añadir un componente PlayerColor a tus renderers. Este color aleatorio se sincroniza entre jugadores.

  • Eye RotationAvatarEyeLook_Rotation rota GameObjects (ojos) para seguir a otros avatares y a un target aleatorio. Este componente se sincroniza entre jugadores.

  • Eye BlinkingAvatarBlink_Simple oculta GameObjects (ojos) aleatoriamente cada pocos segundos, emulando un parpadeo.

    imageEjemplo de jerarquía de Prefab de Avatar

  • Offset ConstraintOffsetConstraint permite desplazar un objeto en relación con otro en el espacio del Avatar. Esto permite, por ejemplo, que un Cuerpo siga a la Cabeza pero mantenga la rotación nivelada. También permite construir modelos de cuello simples.

  • Limb ConstraintBasicIKConstraint es un constraint muy minimalista que toma dos transforms y un hint. Esto es útil para construir cadenas de brazos o piernas simples. Como la rotación no está implementada correctamente actualmente, los brazos y las piernas pueden necesitar ser rotacionalmente simétricos para "verse bien". ¡Se llama "Basic" por una razón!

Superposiciones de contenido HTML en AR

Si quieres mostrar contenido html diferente dependiendo de si el cliente está usando un navegador regular o usando AR o VR, puedes usar un conjunto de clases html. Esto se controla a través de clases de elementos HTML. Por ejemplo, para que el contenido aparezca en escritorio y en AR, añade un <div class="desktop ar"> ... </div> dentro de la etiqueta <needle-engine>:

<needle-engine>
    <div class="desktop ar" style="pointer-events:none;">
        <div class="positioning-container">
          <p>tu contenido para AR y escritorio va aquí</p>
          <p class="only-in-ar">Esto solo será visible en AR</p>
        <div>
    </div>
</needle-engine>

Las Superposiciones de Contenido se implementan usando la característica opcional dom-overlay, que generalmente es compatible con dispositivos AR basados en pantalla (teléfonos, tabletas).

Usa la clase .ar-session-active para mostrar/ocultar contenido específico mientras estás en AR. La :xr-overlay pseudo class no debería usarse en este momento porque su uso rompe el WebXR Viewer de Mozilla.

.only-in-ar {
  display: none;
}

.ar-session-active .only-in-ar {
  display:initial;
}

Vale la pena señalar que el elemento overlay siempre se mostrará a pantalla completa mientras se esté en XR, independientemente del estilo aplicado. Si quieres alinear elementos de forma diferente, debes crear un container dentro del elemento class="ar".

Realidad Aumentada y WebXR en iOS

Las experiencias de Realidad Aumentada en iOS son algo limitadas, debido a que Apple actualmente no soporta WebXR en dispositivos iOS.

Las Everywhere Actions de Needle Engine están diseñadas para llenar esa brecha, trayendo capacidades interactivas automáticas a dispositivos iOS para escenas compuestas por componentes específicos. Soportan un subconjunto de la funcionalidad disponible en WebXR, por ejemplo spatial audio, image tracking, animaciones, y más. Consulta la documentación para más información.

Soporte limitado de código personalizado en QuickLook

Apple tiene fuertes limitaciones sobre qué tipo de contenido puede usarse en QuickLook. Por lo tanto, los componentes de script personalizados no pueden convertirse automáticamente para su uso en AR en iOS. Puedes añadir soporte para algunos tipos de código personalizado usando nuestra API de Everywhere Actions.

Instrumento Musical – Soporte WebXR y QuickLook

Aquí hay un ejemplo de un instrumento musical que usa Everywhere Actions y por lo tanto funciona en navegadores y en AR en dispositivos iOS. Utiliza spatial audio, animación e interacciones de toque.

Everywhere Actions y otras opciones para AR en iOS

También hay otras opciones para guiar a los usuarios de iOS hacia experiencias AR interactivas aún más capaces:

  1. Exportar contenido sobre la marcha como archivos USDZ. Estos archivos pueden mostrarse en dispositivos iOS en AR. Cuando se exportan desde escenas con Everywhere Actions, la interactividad es la misma, más que suficiente para configuradores de productos, experiencias narrativas y similares. Un ejemplo es Castle Builder donde las creaciones (no la sesión en vivo) pueden verse en AR.

Encryption in Space utiliza este enfoque. Los jugadores pueden colocar texto colaborativamente en la escena en sus pantallas y luego ver los resultados en AR en iOS. En Android, también pueden interactuar directamente en WebXR. — #madewithneedle por Katja Rempel 💚

  1. Guiar a los usuarios hacia navegadores compatibles con WebXR en iOS. Dependiendo de tu audiencia objetivo, puedes guiar a los usuarios en iOS hacia, por ejemplo, el WebXR Viewer de Mozilla para experimentar AR en iOS.

  2. Usar acceso a la cámara y algoritmos personalizados en dispositivos iOS. Se puede solicitar acceso a la imagen de la cámara y ejecutar algoritmos personalizados para determinar la pose del dispositivo. Aunque actualmente no proporcionamos componentes integrados para esto, aquí hay algunas referencias a bibliotecas y frameworks que queremos probar en el futuro:

    • AR.js (código abierto)
      • Integración experimental de AR.js por FireDragonGameStudio
    • Mind AR (código abierto)
    • 8th Wall (comercial)

Image Tracking

Needle Engine soporta WebXR Image Tracking (Live Demo) en Android y QuickLook Image Tracking en iOS.

Puedes encontrar documentación adicional en la sección Everywhere Actions.

WebXR Image Tracking todavía está en fase de "borrador" y no está generalmente disponible

Hasta ahora, los proveedores de navegadores no han podido ponerse de acuerdo sobre la API final de image tracking para WebXR. Mientras la especificación esté en fase de "borrador" (Marker Tracking Explainer), tú y los usuarios de tu app necesitaréis seguir estos pasos para habilitar WebXR ImageTracking en dispositivos Android:

  1. Visita chrome://flags en tu navegador Chrome de Android
  2. Encuentra y habilita la opción WebXR Incubations

Sin esa especificación, aún se puede solicitar acceso a la imagen de la cámara y ejecutar algoritmos personalizados para determinar la pose del dispositivo. La desventaja es que los usuarios tendrán que aceptar permisos adicionales como el acceso a la cámara, y el tracking no será tan preciso como con las capacidades nativas del dispositivo.

Aquí tienes algunas bibliotecas para añadir image tracking basado en el acceso a la cámara y algoritmos de visión por computadora locales:

  • Integración experimental de AR.js con Needle Engine por FireDragonGameStudio
  • AR.js (código abierto)
  • Mind AR (código abierto)

Referencias

WebXR Device APIcaniuse: WebXRApple's Preliminary USD Behaviours

Página traducida automáticamente con IA

Suggest changes
Actualizado el:: 22/4/25, 8:44
Next
Redes