Mapas 3D personalizados con GO Map, el ejemplo de Alto Turia
Los mapas ya no tienen dos dimensiones, los mapas son cada vez más realistas y representan un mundo complejo en tres dimensiones (3D). En los juegos geolocalizados que desarrollamos es esencial crear un entorno que permita al usuario reconocer el entorno cercano, pero también que esté adaptado y personalizado a cada experiencia.
GO Map es un SDK de mapa dinámico para crear juegos basados en la ubicación con la unidad 3D. Muchos reconocen su aspecto gráfico porque es la herramienta utilizada por Pokémon Go para su mundo 3D a través de Unity. Quizás por eso muchos usuarios identifican nuestras aplicaciones de Play&go experience con este juego, ya que usamos la misma herramienta.
La ventaja de GO Map es que cada configuración y control gráfico se puede personalizar directamente y no se requiere codificación. El paquete contiene varias escenas de demostración que cubren muchos de los estilos posibles de GO Map: mapa plano clásico, edificios reales, terrenos, satélites, mapas híbridos, puntos de interés, etc.
Tras más de veinte apps desarrolladas con GO Map, hemos obtenido un aprendizaje de esta herramienta y queremos compartir algunos aspectos que justifican que lo usemos por sus grandes posibilidades de personalización.
En la versión 3.0 del plugin hemos encontrado una serie de características de personalización que podrían ser útiles tanto para las experiencias Play&go como para otros proyectos.
- Elevación del terreno: Una de las características que hemos utilizado en la aplicación de Alto Turia es la elevación del terreno. Estas adaptan el mapa plano para representar cambios de elevación que pueden personalizarse para mejorar el aspecto visual y mejorar el rendimiento, modificando la resolución de estos tiles o añadiendo un multiplicador de elevación. Esta opción de personalización parece que solo tiene sentido en zonas rurales u otras zonas donde los cambios de altura en el terreno sean bruscos o muy característicos. Un problema que hemos encontrado al utilizarlo es que la información de los tiles no se obtiene de la misma manera cuando se activa esta opción, y se ha dado el caso de que algunos tiles no tienen información de altura. Por lo tanto, se “pintan a altura 0″ por lo que encontramos cuadrados en el mapa que parecen fosos. Si después de analizar el entorno donde tiene lugar la experiencia, decidimos activar esta funcionalidad tendremos que marcar la opción «Use elevation» en el objeto con el script «GO Map» de la escena y adaptar los scripts de posicionamiento para que usen altura.
- Variedad de materiales: Varios objetos pintados por el plugin que sean del mismo tipo pueden pintarse de forma diferente para evitar un entorno monótono. Cada uno de estos objetos que pintamos tiene la característica Materials Size que nos permite introducir el número de variaciones gráficas que queremos para este objeto, si introducimos un valor X nos aparecerá un listado de X materiales que se utilizarán de forma aleatoria para pintar estos objetos. Por ejemplo, podemos crear los objetos de tipo edificio, lo que nos creará una lista de 3 materiales que nosotros tendremos que seleccionar y se usarán para pintar los edificios de forma aleatoria con uno de estos elementos.
- Subtipos de objetos: además de personalizar algo tan genérico como pueden ser los edificios, podemos seleccionar un subtipo dentro de cada uno de los tipos que hay en las opciones del plugin. Por ejemplo, dentro del tipo edificios, podemos seleccionar el subtipo escuela o biblioteca y crear una lista de materiales personalizados para este subtipo.
- Mapping de texturas sobre polígonos: en las pruebas que hemos realizado al pintar una textura sobre, por ejemplo, un edificio, al no tener los UVs de estos se nos da varias opciones sobre cómo mapear la textura. La opción que parece proporcionar mejores resultados es repetir la textura sobre los costados del edificio y activar la opción «Has roof» y añadir una textura más para el techo ya que normalmente la textura usada para las paredes no tiene mucho sentido en el tejado del edificio.
- Edificios de tamaño real: otra opción que nos da el plugin es usar la elevación real de los edificios, esto ayuda a reconocer el entorno pero tiene algunos inconvenientes. El primero es que no se dispone de la información de altura de todos los edificios, porque algunos parecen enanos comparados con otros, un ajuste para esto sería combinar las características «Force Min Height» y «Polygon Height» para establecer una altura mínima de todos los edificios (primera característica) y una altura concreta para según qué tipo de edificios (segunda característica). Otro inconveniente es que al haber edificios muy altos la visibilidad en el mapa 3D puede verse reducida, una forma de adaptarlo sería dando algo de transparencia a los edificios pero esto podría afectar al rendimiento de la aplicación.
- GO Environment Pro: este script nos permite instanciar objetos de forma aleatoria por algunas zonas del mapa, lo hemos usado en la app Alto Turia para la creación de árboles en bosques y parques. Permite seleccionar varios modelos que se instancian de forma aleatoria sobre la zona seleccionada y la densidad con la que estos aparecerán. Este mismo script también nos da la opción de pintar objetos «flotantes» como globos o nubes.
- Nombres de las calles: el plugin permite pintar sobre el suelo el nombre de las calles, puede ser muy útil para alguien que necesite orientarse pero cuando hay calles muy pequeñas o un cruce donde confluyen varias calles el aspecto visual es mejorable. Se puede personalizar la fuente, el color, y el shader a utilizar para estos textos.
- POIs: también nos da la posibilidad de instanciar modelos en puntos de interés del mapa, como por ejemplo bares, estadios o playas. Estos objetos 3D disponen de una función que se lanzará en el momento en el que el POI se cargue, pero si no realizamos ningún cambio sobre el plugin, no serán interactuables y convendrá diferenciarlos bien de nuestros POIs para evitar confusiones o una mala experiencia del usuario.
El ejemplo de la App Alto Turia
El Alto Turia es un territorio del interior de la Comunidad Valenciana, situado al noroeste de la provincia de Valencia, integrado por los municipios de Aras de los Olmos, Benagéber, Chelva, Titaguas y Tuéjar, habitado por cerca de 5.000 personas. El Consejo Internacional de Coordinación del programa el Hombre y la Biosfera (MAB), ha otorgado este 19 de junio en la sede de la UNESCO en París la declaración de Reserva de la Biosfera a este territorio, constituyéndose como la primera Reserva de la Biosfera de la Comunitat Valenciana.
Este entorno se caracteriza por una impresionante riqueza natural, determinada por el paso del río Turia que cruza todo su territorio. El Turia o río Blanco es el nexo de unión entre los diferentes pueblos, reúne tramos bien conservados, estrechos rocosos y extensos bosques, con paisajes de gran belleza y diversidad de flora y fauna. Sus riberas han servido de asiento a molinos, huertas y viviendas.
El paisaje se caracteriza por su hermosura cambiante según la época del año, en otoño el Alto Turia es una combinación de ocres y verdes que embellecen el paisaje, en primavera, con los árboles en flor, se extiende una pincelada de luz por los campos de secano; en invierno se tiende un amplio manto blanco que la nieve lleva consigo y en verano los atardeceres se cierran con el color del fuego.
El Alto Turia ofrece escenarios ideales para la práctica de actividades al aire libre: senderismo, cicloturismo, excursiones a caballo, actividades acuáticas, canoa y rafting, pesca deportiva.
La aplicación Alto Turia Turismo aplica técnicas de geolocalización, gamificación y realidad aumentada para guiar al visitante por esta zona de interior de la Provincia de València, con el objetivo de dinamizar la actividad turística en los municipios de Aras de los Olmos, Benagéber, Chelva, Titaguas y Tuéjar.
En la app se geolocalizan diversos recursos turísticos para que el turista pueda elegir lo que le apetece hacer en cada momento:
– Respirar (parques y parajes)
– Conocer (Patrimonio cultural y científico)
– Aprender (Museos)
– Pasear (Urbano)
– Caminar (Rutas y Senderos)
– Descansar (Áreas recreativas y fuentes)
– Informarse (Oficinas de Turismo)
Esta es la primera aplicación que hicimos de un entorno rural, en el que la representación de la forma del terreno era esencial. Para ello usamos el mapa de terreno de Mapbox en el mapa 2D, que da esa sensación de tres dimensiones y de un mapa topográfico con la orografía.
Tal y como hemos comentado, aprovechamos la funcionalidad de elevación del terreno para mejorar el aspecto visual y mejorar el rendimiento, diferenciando las zonas de paisaje de agua y de montaña, por ejemplo. Además, usamos el script GO Environment Pro para distanciar objetos de forma aleatoria por algunas zonas del mapa, creando árboles en bosques y parques.
En definitiva, GO Map nos ha permitido usar un mapa realista de una zona de interior y adaptar y personalizar algunos aspectos, generando una aplicación móvil única para un entorno único.
Si estás interesado en conocer nuestras soluciones, contacta con nosotros y adaptaremos la mejor solución para que los usuarios reconozcan el entorno de juego y lo disfruten.