¿Qué estás buscando?
Case studies

Cómo un equipo de seis personas adaptó LEGO® Builder's Journey a Apple Vision Pro en sólo tres meses

Mar 13, 2024
Viaje del constructor LEGO® por Light Brick Studio
Para tu comodidad, tradujimos esta página mediante traducción automática. No podemos garantizar la precisión ni la confiabilidad del contenido traducido. Si tienes alguna duda sobre la precisión del contenido traducido, consulta la versión oficial en inglés de la página web.

Empezando por Apple Arcade, LEGO Builder's Journey, de Light Brick Studio, un juego de puzles inmersivo y multiplataforma, no ha dejado de ganar adeptos. Esto es lo que el equipo aprendió cuando abrazó la nueva era de la computación espacial y llevó el título a Apple Vision Pro.

EL RETO:
Superar los obstáculos de renderizado y optimización para adaptarlo a Apple Vision Pro en tres meses
PERSONAL DEL PROYECTO:
20, con un equipo de 6 encargados del puerto Apple Vision Pro
PLATAFORMAS:
Apple Arcade, PC, Xbox One, Xbox X|S, PlayStation®4, PlayStation®5, Nintendo Switch™, Apple Vision Pro
UBICACIÓN:
Copenhague, Dinamarca

¿Cómo consigue un estudio nuevo en el campo de la realidad mixta adaptarse a la capacidad de inmersión de Apple Vision Pro y, al mismo tiempo, mantenerse fiel a la experiencia de juego en otras plataformas?

Dado que los ladrillos LEGO® son productos físicos reales, Light Brick Studio era consciente de los retos que suponía crear una experiencia en la que los jugadores interactuaran con los elementos de juego de la sala. Para el lanzamiento del juego en Apple Vision Pro, el tiempo también era una limitación. Mientras que el equipo había ejecutado otras adaptaciones de plataformas con interfaces 2D en uno o dos meses, el plazo de tres meses se quedaba corto para esta nueva entrada en la computación espacial.

Navegar por una nueva dimensión

"Una vez que conoces los límites de la plataforma para el juego y su diseño de jugabilidad, puedes crear prácticamente cualquier tipo de experiencia que desees", explica Mikkel Fredborg, responsable técnico de Light Brick Studios.

Para el equipo, llevar un juego a visionOS "fue sobre todo un reto técnico de conseguir que funcionara sin problemas y luego aprovechar toda la experiencia". Ello supuso realizar múltiples modificaciones técnicas, incluido un rediseño completo de la interfaz de usuario (IU) para colocar en la sala elementos de la IU que antes eran planos. El equipo también tuvo que actualizar sus herramientas y métodos de renderizado para garantizar la calidad visual y la inmersión del producto final. Equilibrar los sistemas Unity y RealityKit en paralelo añadió más obstáculos a la optimización del rendimiento.

"Hemos hecho muchas adaptaciones diferentes, y ésta ha sido la más compleja porque Apple Vision Pro es muy diferente de las demás plataformas", explica Karsten Lund, director general de Light Brick Studio. "La expectativa era ver hasta dónde podíamos llevar la experiencia, y funcionó muy bien".

Los resultados

  • Construyó los 80 niveles del título y 60.353 ladrillos LEGO para Apple Vision Pro en menos de 100 días.
  • Ahorro de semanas de retraso en el desarrollo gracias al apoyo del equipo PolySpatial de Unity.
  • Se han mantenido intactas todas las áreas de juego, con optimizaciones específicas de rendimiento pero sin cambios en el flujo general del juego.
  • Implementación de una transición suave con un estilo de realidad mixta abierta que se vuelve más inmersiva a medida que el jugador progresa.

Nintendo Switch es una marca registrada de Nintendo.

Gif de los elementos de juego de LEGO Builder's Journey en acción
Viaje del constructor LEGO por Light Brick Studio

Rediseño de la interfaz de usuario y de la jugabilidad

LEGO Builder's Journey tiene una interfaz de usuario mínima, con un máximo de 20 botones para acciones como cargar partidas guardadas y reiniciar un nivel, por lo que rehacerla fue un esfuerzo menor de lo que sería para muchos juegos. Hicieron el rediseño de la interfaz de usuario en Unity, tomando GameObjects y adjuntándoles colliders para conseguir que la entrada funcionara correctamente mientras imitaban el lenguaje de diseño de visionOS.

El equipo también tuvo que tener en cuenta la flexibilidad de los movimientos corporales. Excepto la interfaz de usuario, todo en el juego está construido con ladrillos LEGO en una herramienta llamada LEGO Digital Designer. El equipo siempre ha intentado simular el espacio 3D en una superficie 2D, pero con Apple Vision Pro tuvieron que tener en cuenta que un jugador podía moverse por cualquier sitio. Para dar cabida a una experiencia completa de 360 grados, el equipo reelaboró modelos existentes diseñados para ser vistos sólo desde ángulos específicos para asegurarse de que no hubiera ningún agujero en la geometría del modelo. Para reducir las llamadas a dibujo, también se combinaron varias mallas en un único GameObjects.

Fredborg afirma: "Pudimos tener en cuenta que un jugador puede dar toda la vuelta y hacer una optimización completa del modelo en 360 grados. Nos deshicimos de toda la geometría que había dentro de los ladrillos cuando los importamos al juego, así que eliminamos todos los detalles interiores, ya que nunca se ven. Pudimos tomar las herramientas automatizadas que tenemos y ajustarlas para que funcionaran con la experiencia de simulación completa".

Captura en el editor del equipo de Light Brick Studio configurando la interfaz de usuario y los eventos del componente PolySpatial VolumeCamera.
Captura en el editor del equipo de Light Brick Studio configurando la interfaz de usuario y los eventos del componente PolySpatial VolumeCamera.

Gestión de la colocación en modo Limitado

Desde el principio, el equipo decidió diseñar en modo Bounded, en el que tenían que operar dentro de un volumen definido. Si intentaban trabajar fuera de ese volumen, los elementos se recortaban y pasaban desapercibidos. Decidieron aceptar las limitaciones del modo Bounded, en el que no hay información sobre la posición/orientación de la cabeza, los ojos o las manos del jugador a menos que se realice una interacción. Una vez que el jugador realiza un gesto de pellizco, el juego sabe dónde está la mano y con qué objeto se está interactuando. Cuando se acaba el pellizco, también se acaba la información. En ese sentido, es similar a una pantalla táctil, en la que sólo se sabe lo que hace el jugador mientras toca la pantalla.

"No sabíamos lo que la gente estaba mirando, lo que supuso un gran cambio, sobre todo porque nuestro sistema de juego requiere que los jugadores miren un ladrillo para seleccionarlo", explica Fredborg. "Una vez que superamos todos estos límites, funcionó muy bien y se integra perfectamente en el sistema. Al final ha sido muy agradable trabajar así, ya que todo se orienta en la misma dirección de experiencia de usuario".

Echando una mano a los sombreadores MaterialX

En las primeras versiones de LEGO Builder's Journey, el equipo utilizó una versión personalizada de Unity 's Lightweight Render Pipeline (LWRP) y luego se pasó a High Definition Render Pipeline(HDRP) para las versiones de Xbox y PlayStation. Para Apple Vision Pro, primero tuvieron que convertir todo para que se basara en Universal Render Pipeline(URP) y Shader Graph, y luego transferirlo a RealityKit de Apple.

Para ello, convirtieron los sombreadores creados en Shader Graph en sombreadores MaterialX que podían cargar en RealityKit. Pero el equipo se topó con obstáculos y descubrió que los resultados no estaban bien optimizados y necesitaban más trabajo del previsto.

Habían previsto una optimización manual, pero se dieron cuenta de que necesitaban automatizar el proceso para ampliarlo. Realizaban parches manuales en los shaders, encontraban código duplicado y sustituían esa sección del código para asegurarse de que sólo se ejecutara una vez. "Fue un reto conseguir que las cosas funcionaran sin problemas", admite Fredborg, "pero creo que el equipo de PolySpatial está haciendo un gran trabajo para avanzar en la optimización de las cosas".

Elementos de juego de los distintos niveles de LEGO Builder's Journey
Viaje del constructor LEGO por Light Brick Studio

Encontrar la mejor luz

Debido al breve plazo de entrega del juego, tuvieron que encontrar soluciones sobre la marcha. "Tuvimos que encontrar soluciones para aumentar el realismo del juego y seguir soportando las luces y sombras en tiempo real ", explica Fredborg. "Ese fue uno de los mayores cambios".

Al principio, tomaron la iluminación basada en imágenes del Apple Vision Pro, con el objetivo de añadirla correctamente en los materiales que querían incluir, como el plástico y diferentes variaciones. Tuvieron que abordar elementos difíciles de resolver, como las huellas dactilares y los arañazos en los ladrillos.

Como el juego se desarrolló inicialmente para los primeros iPhones, tiene una iluminación muy sencilla. El equipo utilizó una textura de volumen (una textura 3D con oclusión ambiental incorporada) para poder tomar muestras de cualquier parte de la escena. Tomaban muestras de puntos y analizaban cuánta oclusión ambiental se producía. Como las texturas 3D no son compatibles con Apple Vision Pro, tuvieron que convertir la textura del volumen en texturas 2D y realizar un muestreo manual a partir de ellas. En la actualidad, este proceso está automatizado en PolySpatial, pero no estaba disponible cuando se creó el equipo de Light Brick Studio.

Toma del equipo de Light Brick Studio preparando una de las escenas nocturnas.
Toma del equipo de Light Brick Studio preparando una de las escenas nocturnas.

El equipo empezó utilizando el sombreado de ladrillos de plástico y este sistema de muestreo de texturas volumétricas. Luego incorporaron Realtime Lights y, como la textura del volumen envolvía la escena, necesitaron modificar la iluminación exterior. Cuando empezaron el desarrollo, no era posible sobrescribir la iluminación basada en imágenes, por lo que tuvieron que muestrear un mapa cúbico diferente y luego desvanecer la luz de la iluminación basada en imágenes de RealityKit.

"Lo que estábamos haciendo no era realmente posible, pero encontramos una solución bajando la suavidad del ladrillo y subiendo distintos valores antes de enviarlo a la iluminación de RealityKit", explica Fredborg. "Los desarrolladores lo tendrán más fácil, ya que ahora es posible sobrescribir la iluminación basada en imágenes en PolySpatial y RealityKit".

Elementos de juego de los distintos niveles de LEGO Builder's Journey
Viaje del constructor LEGO por Light Brick Studio

Crear una sombra suave

El equipo de Light Brick Studio también tuvo que encontrar una solución para las sombras. Aunque se pueden añadir sombras a ciertos elementos en Apple Vision Pro, no es algo estándar. Para ello, el equipo renderizó la sombra en Unity como un mapa de altura o profundidad, lo envió a RealityKit y lo remuestreó allí. Renderizaron la escena como un mapa de sombras en el backend de Metal en Unity, y luego lo pasaron a la parte de renderizado de RealityKit.

"Lo que se puede empujar a través del renderizado es limitado si aún se necesita alcanzar los 90 fotogramas por segundo. Hicimos un mapa de sombras muy pequeño, de 64 x 64 píxeles, y luego combinamos los niveles del mipmap en los canales RGBA de una sola textura, que luego se puede muestrear con una sola muestra en RealityKit para producir algo que parece una sombra suave", explica Fredborg. "Así, cuando el ladrillo está muy cerca de la superficie, las sombras son bastante nítidas, pero cuando está arriba, la sombra es más suave. Lo hicimos con una muestra de textura".

Una experiencia inmersiva jugando al LEGO Builder's Journey en casa
Viaje del constructor LEGO por Light Brick Studio

Para las Luces en Tiempo Real de Unity, usaron el Nodo de Iluminación Poliespacial en Shader Graph, que se expandió en múltiples nodos Shader Graph una vez que fue convertido a RealityKit.

"En el caso de RealityKit, la única forma de modificar los sombreadores es a través de una interfaz similar a Shader Graph", explica Fredborg. Por parte de Unity, el equipo descubrió que era posible crear una función de código personalizado en Shader Graph y, siempre que siguiera ciertas reglas específicas, se podía convertir posteriormente a un gráfico de nodos MaterialX. "Esto nos ayudó mucho", continúa, "de lo contrario iba a ser un monstruo de espaguetis dentro de otro monstruo de espaguetis en Shader Graphs".

Elementos de juego de los distintos niveles de LEGO Builder's Journey
Viaje del constructor LEGO por Light Brick Studio

Optimización a 90 FPS

A medida que el equipo llevaba los efectos visuales a una nueva dimensión, se encontraron con algunos obstáculos para mantener el buen funcionamiento de la plataforma. El desarrollo se ejecutó como un sistema de dos partes, pasando todo de Unity a RealityKit, que tiene diferentes técnicas de renderizado. Esto significaba que Unity se encargaba de la lógica del juego, mientras que RealityKit se encargaba de renderizar los efectos visuales, y era necesaria una optimización para que funcionara sin problemas a 90 fotogramas por segundo para que fuera fluido. Uno de los principales retos era identificar si un cuello de botella provenía del lado de Unity o del lado de RealityKit, y al equipo le llevaría múltiples intentos encontrar la solución.

"Al principio, el paquete PolySpatial reflejaba en RealityKit todo lo que hacíamos en Unity, por lo que cada GameObject o transformación estaba allí, y en ese momento no podíamos desactivar capas específicas para que no se transfirieran o reflejaran. Reflejaba todo, desde el renderizado de la interfaz de usuario, el renderizado del lienzo y el sistema de partículas del animador", explica Fredborg. "Ahora, hay un filtro donde puedes configurarlo para que no rastree capas específicas, pero en ese momento, tuvimos que encontrar una manera de limpiar todo lo que no íbamos a ver en el lado RealityKit".

Un nivel en LEGO Builder's Journey de Light Brick Studio
Viaje del constructor LEGO por Light Brick Studio

El equipo necesitaba optimizar las jerarquías de GameObjects. En otras plataformas, los ladrillos son tres o más GameObjects vinculados, pero para visionOS, establecieron un máximo de dos GameObjects por ladrillo para limitar el ir y venir entre Unity y RealityKit. Funcionó muy bien y fue una gran victoria para el equipo.

La mejora de la animación stop motion también fue un aspecto destacado. El juego contiene cascadas animadas que intercambiaban mallas sobre ladrillos. Consistían en cientos de GameObjects diferentes, que eran bastante lentos. "Acabamos abordándolo de forma escalonada en lugar de hacerlo en cada fotograma para cada GameObject", dice Fredborg. "Esperábamos y lo hacíamos cada pocos fotogramas entre las distintas cascadas. Ayudó mucho".

Encontrar las mejores soluciones y socios

A lo largo de todo el proceso de creación del Apple Vision Pro, el equipo de Light Brick Studio tuvo que mantenerse ágil, resolver problemas con rapidez y repetir para hacer las cosas bien.

"Creo que hay que ponerse las gafas para entenderlo", dice Fredborg. "Recomendamos hacer varias construcciones y utilizar el dispositivo todo lo posible para centrarse en el tacto y el movimiento. Tienes el simulador que puedes ejecutar en el Mac para hacerte una idea de cómo funcionan las cosas, pero la entrada es diferente. Es una plataforma mucho más física".

Al final, el equipo quedó muy satisfecho con el resultado del juego, en parte gracias a la colaboración con un socio fuerte. "El equipo de PolySpatial fue muy receptivo tanto en Slack como en los foros de debate", prosigue. "Cuando nos bloqueábamos, nos respondían con soluciones rápidamente, lo que era realmente útil. Nos apoyaron mucho y querían hacer la mejor versión posible de PolySpatial".

Un nivel en LEGO Builder's Journey de Light Brick Studio
Viaje del constructor LEGO por Light Brick Studio
"Mientras Unity sea compatible con una plataforma, podemos hacer que funcione allí".
MIKKEL FREDBORG / LIGHT BRICK STUDIOTechnical Lead

Construye para Apple Vision Pro hoy con Unity 2022 LTS

Habla con nuestro equipo para saber cómo podemos ayudarte a aprovechar las potentes herramientas y flujos de trabajo de Unity para crear experiencias espaciales atractivas.

Explore el estudio de caso

Rellene este formulario para acceder a los últimos casos de éxito de clientes