Se necesitaron muchas iteraciones y pruebas rápidas al comienzo del proceso para hacer que la casa fuera divertida y espeluznante, fácil de explorar y algo en lo que te quieres perder.Te mostraremos cómo pensamos a través del espacio y lo construimos usando paquetes para hacer la actualización de sillas individuales y habitaciones completas más rápida hacia el finalizar.

Comience con un diseño de 2D
Dado que la casa es tanto la mayoría de la zona jugable como un personaje entero en sí mismo, queríamos dar mucha importancia a cómo asegurarnos de que siguiera siendo tanto real como divertida.Empezamos con la idea de que la casa debería contener varias bromas visuales y auditivas, sabiduría y habitaciones de puzles corruptas, y queríamos que los jugadores se acercaran inicialmente a la casa con poco conocimiento de lo que estaba pasando, aprendiendo lo que le pasó a la casa y a la familia que vivía allí mientras jugaban.
Para equilibrar todos estos elementos importantes, comenzamos a imaginar el entorno 3D con un diseño de 2D! Comenzando con averiguar los ritmos generales de la historia , o momentos clave, queríamos que el jugador experiencia, dibujamos un diseño del espacio, y pensamos en cómo guiaríamos al jugador donde queríamos que estuvieran mientras manteníamos un entorno que se sentía más grande que la vida.

Una vez que tuvimos nuestro borrador temprano del diseño general, usamos terreno para dibujar rápidamente las colinas circundantes, el lago, la carretera y la entrada hasta la casa.No nos molestamos con la calidad visual de la demostración en este punto, sino que nos enfocamos en cuánto tiempo se tardó en llegar a la casa y lo que tomaría dar al jugador un vistazo de la casa y el evento en el cielo.

Al utilizar tanto piezas simples junto con recursos de la tienda de creadores , pudimos agregar rápidamente contenido que nos ayudaría a componer el entorno, ambiente, incluyendo:
- Hacer que la carretera se doble para que los jugadores no puedan ver todo el camino hasta el final.
- Añadir árboles con áreas más densas donde queríamos dejar claro que el jugador no podía acceso, junto con áreas más delgadas en las que queríamos animarlos a explorar.
- Subir el camino de entrada de la casa para que cuando los jugadores se acerquen, tengan que escalada. Esto le dio a la casa una presencia más intimidante.
- Posicionar el evento gigante detrás de la tormenta en el cielo para que los jugadores puedan ver partes, pero no toda la cosa, hasta que se acerquen a la propia casa.
- Colocar y averiguar la forma general de la casa con la que finalmente nos quedamos.
Ninguna cantidad de experiencia garantiza que tus primeras ideas sean las mejores.Es por eso que obtuvimos activos en Studio rápidamente y usamos piezas simples y activos de la Tienda de creadores para llenar el entorno con activos temporales.Esto nos permitió no tener que hacer todo por adelantado, y podríamos comenzar a probar dentro de los primeros días.

Mientras que queríamos eventualmente reemplazar los activos temporales con los nuestros, lo único que nos importaba al principio era establecer las bases y jugar la experiencia para asegurarnos de que el entorno fuera divertido de moverse y no fuera demasiado grande o demasiado "disparo recto" para que los jugadores se animaran a explorar.

Planifica cada habitación
El exterior solo se pensó para ser un sabor de la historia general para sumergir al jugador y hacerlos familiares con el mundo en el que jugaban.El personaje principal era la propia casa, y queríamos que los jugadores pasaran la mayor parte de su juego dentro de ella fontanería para secretos y encontrar sorpresas en cada habitación.Para hacer esto, necesitábamos averiguar qué habitaciones debería incluir la casa, cuando queríamos que los jugadores se tropiezen con ellas, y dónde deberían existir dentro de la casa.Dibujamos un diseño de 2D de la casa, y el equipo rebotó ideas para cosas geniales que podrían suceder.No se ignoraron las ideas en este punto.

Utilizamos cajas 2D de cada habitación para averiguar cómo queríamos organizarlas entre sí.Cada habitación debería ser una oportunidad para hacer algo, y lanzamos muchas ideas, incluidos los principales usos de cada habitación, qué sorpresas espeluznantes podríamos usar para sorprender al jugador y los puzles potenciales que podrían enfrentar.


Cada habitación tuvo que trabajar juntamente, y queríamos contar la historia lentamente y progresivamente.Sabíamos que no podíamos controlar a dónde fue primero alguien, así que planificamos que algunos de los puzles más difíciles estuvieran más lejos de la puerta del frente y más difíciles de encontrar.Esto significó agregar algunos pisos a la casa, incluidos un ático y un sótano por razones tanto de juego como temáticas.Puzle final en un sótano que parece malvado y aterrador? ¡Apúntanos!


Construir un diseño 3D
Todos los planes y las ideas tempranas en el mundo no hacen una experiencia divertida, ¡así que era hora de empezar a hacer la idea 3D! El diseño exterior estaba bloqueado y hicimos espacio para que la casa se expandiera o contrajera.Las iteraciones más tempranas se hicieron en otra aplicación 3D donde podíamos hacer cajas y formas simples para comenzar a convertir esa imagen 2D en un espacio jugable.Puede encontrar que construir las versiones tempranas en Studio y usar piezas simples es su método favorito.No hay manera incorrecta, ¡siempre y cuando obtengas tus ideas en 3D y las juegues rápidamente!



Nada se vuelve más fácil a medida que el trabajo se vuelve más complejo, por lo que fue importante para nosotros experimentar a menudo y descubrir la estructura del entorno que queríamos crear.Las iteraciones más tempranas de la casa eran tan simples como las imágenes que ves arriba, y las formas simples nos permitieron ser tan flexibles como sea posible y realizar cambios rápidamente en los tamaños de las habitaciones mientras jugábamos la demostración.La escala también fue importante al principio, por lo que siempre construimos con un avatar tanto en nuestra aplicación 3D como dentro de Studio para que pudiéramos saber cuán grande debe ser una puerta o cuán altos deben ser los pasos.


Pasamos por muchas iteraciones pequeñas y grandes para llegar a lo que tenemos en la demostración final.Compara los borradores tempranos anteriores con una versión mucho más tardía del vestíbulo, y verás que muchas de las decisiones originales que tomamos después de jugar a través de la casa pudieron quedarse!

Muebles y atrezos
Necesitábamos muchos muebles y accesorios para llenar una casa de este tamaño, así que antes de empezar a empacar cualquier contenido en una caja gris, hicimos un documento para rastrear todo lo que pudiéramos usar que complementara el tipo de habitación que era y los puzles en los que estábamos en proceso de crear.Al poner todos nuestros pensamientos en un solo lugar, podríamos organizar, priorizar y ver dónde podríamos reutilizar el contenido en diferentes habitaciones.Aunque esto fue una cantidad razonable de planificación por adelantado, nos salvó de hacer contenido insuficiente o demasiados artículos innecesarios.

Esta lista nos dio una buena comprensión de lo que necesitaba tener prioridad al empacar el contenido y llenarlo en toda la casa.Al agregar contenido de alta prioridad temprano, podríamos ver fácilmente cuándo los activos eran repetitivos, tenían proporciones incorrectas o cuándo necesitarían una segunda variación o un cambio de textura cuando estaban en ciertas habitaciones.Alguno del contenido que bloqueamos al principio terminó no siendo importante para la experiencia y se eliminó, pero no perdimos mucho trabajo en el proceso ya que solo fueron bloqueos rápidos.Para todos los muebles y accesorios que mantuvimos, los hicimos en paquetes en su fase de bloqueo, y esto facilitó que reemplazáramos todo en la casa con sus versiones finales.


Debido a la cantidad abrumadora de recursos necesarios para esta demostración, reutilizar texturas tanto como pudiéramos fue extremadamente importante para mantener dentro de nuestro presupuesto de memoria.Muchos de los muebles comparten las mismas tiras o hojas recubiertas para madera, metal, piedra, vidrio y tela, y utilizamos texturas transparentes donde pudimos.Por ejemplo, usamos una textura transparente para los tejidos para que pudiéramos tener variaciones de color sin tener que crear una segunda textura de Albedo.Para obtener más información sobre cómo reutilizar las texturas, vea Planificación, reutilización y presupuestos.




Fotogrametría
Sabíamos que necesitábamos mucho más contenido del que teníamos tiempo para crear nosotros mismos, así que decidimos acelerar el proceso de creación de contenido de alta calidad en una hoja de textura 1:1 utilizando la fotogrametría obtenida de la Creative Commons (CC0). Fotogrametría es el proceso de capturar cientos de imágenes de objetos desde todos los ángulos para crear modelos de alta calidad con proporciones precisas, y los modelos de Creative Commons son principalmente modelos gratuitos que son típicamente educativos en naturaleza que puedes usar y/o compartir legalmente.Estos modelos pueden variar desde activos modelados a mano hasta activos hechos de fotogrametría, y trabajar con ellos en este proceso nos permitió omitir el paso laborioso de crear un aplicación de modeladode alta resolución detallado.
La historia de fondo que creamos para la familia los describe como "colectores excéntricos" que se adentran en lo oculto.Han reunido artefactos de todo el mundo, y queríamos que la casa estuviera llena de cosas para reflejar esa historia.Pudimos obtener los datos de escaneo de contenido del museo CC0 para modelos como antigüedades , estatuas y taxidermia , luego comenzar el trabajo de mapeo UV, retopologización y textura requerido para optimizarlos para Studio.


Mapa UV es el proceso de modelado 3D de desembalaje de la malla de un aplicación de modelado3D y proyección de una imagen 2D sobre ella.“U” y “V” representan los ejes de la textura 2D porque “X”, “Y” y “Z” representan los ejes del aplicación de modelado3D.Los UVs tienden a ser automatizados en el momento de la escaneo, y tienden a ser mal hechos con fines de desarrollo de juegos.Por ejemplo, los UVs para ciertos modelos de fotogrametría pueden parecer un grupo de aviones individuales, pero esto no es el más eficiente para una experiencia móvil cuando los creadores están limitados a 10,000 vértices.A veces tendríamos suerte con los datos del escaneo, pero la mayor parte del tiempo teníamos que actualizar o rehacer completamente estas coordenadas de textura de dos dimensiones con fines de la experiencia.

Además, la mayoría de las mallas de los modelos solo incluirían la textura difusa con información de iluminación horneada en la textura cuando el modelo se escaneó inicialmente.Si bien esto podría ser útil para usar como base para la textura de reflectancia del malla, aún requeriría una limpieza manual donde teníamos que pintar la luz y la sombra.Si una malla tenía una iluminación direccional fuerte, podría parecer extraña donde la iluminación del mundo no coincidir.Por esta razón, tuvimos que recrear la mayoría de las texturas PBR para los modelos que usamos del contenido del museo CC0.


Renderizado basado en física (Renderizado basado en la física (PBR)) es la noción de usar sombreado y iluminación realistas al simular y representar más precisamente los materiales y la iluminación en el mundo real.Fue importante para nosotros al crear texturas PBR para que no tengan ninguna o muy poca información de iluminación horneada en la textura Albedo porque el motor de Studio calcula esto desde la Iluminación basada en imágenes (IBL), además de usar los valores de superficie Normales, Rugosidad y Metalidad de la textura para representar correctamente los materiales del mundo real.En comparación, una textura difusa puede tener algunos o todos los detalles de estos mapas individuales horneados en una textura, lo que es útil cuando pueda necesitar la textura difusa para llevar esos detalles por sí sola sin la ayuda de IBL o de otras texturas PBR individuales.Cuando estés decidiendo si mantener una textura difusa o crear tus propias texturas PBR, considera tus propios límites de presupuesto de diseño o memoria para lo que tenga sentido para tu propia experiencia.
Los mallas de los datos de escaneo que usamos usualmente eran bastante buenos, pero algunos mallas necesitaban ser limpiados.Por ejemplo, algunas mallas tenían agujeros problemáticos que necesitaban ser llenados, bordes dentados que necesitaban ser aplanados o bordes delgados que necesitaban ser endurecidos.Para este proceso, usamos Zbrush para editar los datos de escaneo.


Este proceso no fue perfecto, pero al aclarar el aplicación de modeladode alta resolución, fue significativamente más fácil automatizar o manualmente redefinir la malla del aplicación de modelado. Reubicar es el proceso de modificar la distribución y la estructura de los bordes de un aplicación de modelado3D y, para nuestros propósitos, reubicar permite una mejor textura al hornear al crear una versión de menor resolución de un aplicación de modeladode alta resolución.Los modelos de resolución más baja son significativamente más fáciles de ejecución, especialmente en dispositivos móviles, y aún mantiene el detalle de alta resolución de la malla y las texturas.
Para reorganizar manualmente o automáticamente, puedes usar cualquier aplicación 3D de tu elección.Escogimos usar 3DS Max para retopologizar manualmente y Zbrush para retopologizar automáticamente usando la herramienta Zremesher o la herramienta de decimación.La herramienta Zremesher nos permitió automatizar la retopologización de una malla para mantener cuadros que requieren una cuenta de vértices más alta para mantener la forma, mientras que la herramienta Decimación nos permitió automatizar la retopologización usando triángulos con una cuenta de vértices más baja y aún pudo mantener la forma.




Independientemente de la ruta automática que pudiéramos elegir para nuestros modelos/mallas, es probable que necesitáramos hacer algo de limpieza ya que la retopologización automática depende en gran medida de la malla de alta resolución, cómo se construyó y su algoritmo.Tendíamos a elegir la ruta de decimación con una malla triangulada porque era más importante para nosotros tener una menor cantidad de vértices mientras manteníamos la forma original.



Después de completar el proceso de retopologización de la malla con nuevos UV, necesitábamos luego hornear y transferir el detalle y las texturas de alta resolución de la malla. Marmoset facilitó hacer este proceso al hornear mapas de malla y transferir cualquier textura original desde el modelo de alta resolución a la resolución baja, pero puede encontrar otros flujos de trabajo y métodos en otras aplicaciones 3D que funcionen mejor para usted.Independientemente del herramienta, asegúrese de que cualquier textura original en el modelo de alta resolución se asigne al modelo al hornear.





Después de finalizar nuestras texturas PBR de Albedo, Normal, Metal y Rugosidad en Pintor de sustancia , nuestros nuevos activos estaban listos para ser importados a Studio! Había algunas diferencias de calidad entre los datos de escaneo vs.los recursos reorganizados, pero al final fue un intercambio digno cuando el recurso solo tenía 1,000 vértices en lugar de 1,000,000.También mantuvo nuestro presupuesto de memoria intacto y permitió que la experiencia se ejecutara con más suavidad.




Utilizar paquetes
Paquetes son un sistema que te permite almacenar y usar una versión de un solo objeto o de un grupo de objetos, y cuando actualices esa versión, se actualizan todas las instancias de ese objeto o grupo a la vez.Por ejemplo, si creas un objeto de árbol y lo colocas dentro de tu experiencia cientos de ese objeto, solo necesitas actualizar el paquete para que los cientos de árboles se actualicen a tu nueva versión a la vez.Sabíamos desde el principio que tendríamos dos estados de la mayoría de las habitaciones de la casa, su estado normal y su estado corrupto, y necesitábamos mantener ambas copias de la casa y su contenido durante todo el proceso de iteración.Por esta razón, decidimos qué objetos necesitaban ser compartidos en cada estado de casa y los convertimos en paquetes.

Los paquetes nos permitieron modificar todo, desde el recorte de madera en paneles de pared hasta habitaciones completas, luego ambos estados de la habitación se actualizarían con nuestros cambios.También pudimos convertir objetos SurfaceAppearance a paquetes para que pudiéramos actualizar la apariencia de un material en todas partes a la vez durante toda la experiencia.El reutilizar materiales fue esencial para hacer que la demostración fuera lo más eficiente posible para los dispositivos a pesar de su complejidad clara.
Por ejemplo, las siguientes imágenes muestran un paquete de modelo armonioso con un grupo complejo de recursos hijos, incluido un paquete de apariencia de superficie de metal que usamos en varios lugares dentro de la demostración.Cada vez que actualizamos el paquete de apariencia de la superficie metálica, también podíamos realizar una actualización masiva que obligaría al paquete de modelo armilar a actualizar el paquete de apariencia de la superficie infantil también.



Para obtener más información sobre cómo convertir un objeto individual o un grupo de objetos como Models o Folders en un paquete, o cómo elegir un creador del paquete para acceso de edición, vea Paquetes.Escogimos designar al Grupo de Demostración de Vistech como el creador de todos nuestros paquetes porque permite que todos en nuestro grupo accedan y editen los paquetes cuando lo necesiten.¡También nos permitió compartir estos paquetes entre cada experiencia que poseía el grupo!

Configuramos los paquetes padre, como el armillario anterior o una habitación completa, para actualizar automáticamente para que los cambios al modelo o la carpeta se compartan automáticamente en todas las instancias de ese paquete sin que tengamos que verificar, comprobarmanualmente.Este proceso significó que pudimos crear cambios de forma suave para los estados normales y corruptos de cada habitación.Por ejemplo, las siguientes dos imágenes muestran el estado normal y corrupto del estudio que se creó a través del paquete mismo .Sólo unos pocos artículos fuera de sus paquetes difieren entre ellos, ¡incluso considerando que el estado corrupto es lateral!


En lugar de trabajar completamente en el mismo archivo de lugar que la experiencia, construimos un lugar de almacenamiento de recursos con todos nuestros componentes con enlaces de paquete.Cada vez que hiciéramos un cambio en un paquete en este lugar de almacenamiento, se actualizaría automáticamente y de inmediato en todos los lugares que usan ese paquete.Podríamos modificar objetos, agregar funciones y trabajar en detalles sin tener que navegar por el estado de ánimo y la iluminación de la experiencia principal que podría dificultar ver lo que estábamos haciendo.

Los paquetes nos permitieron más libertad para explorar diferentes ideas en 3D sin tener que hacer mucho trabajo adicional.Podríamos planificar, probar o incluso revertir a cualquier versión anterior de un activo si un experimento no funcionó en la práctica o rompió la experiencia.Hubo muchas veces en que se restauraron horas de trabajo al volver a una versión en los paquetes.Al finalizar, no pudimos haber logrado el nivel final de polaco en esta demostración sin paquetes.
