WRLD para Unity

wrld unity sdk

Ayer anunciaban que WrldMap lanzaba un SDK para poder ser utilizado con Unity, obviamente el alboroto fue grande porque presenta una serie de características muy interesantes para cualquier desarrollador de videojuegos que haya probado la versión móvil de Pokemon o el Ingress. La geolocalización es una baza muy potente a explotar en el mundo del videojuego, nos da la capacidad de mezclar el mundo real con nuestra aplicación, si se combina con realidad aumentada se hace todavía más goloso el pastel. Con WRLD se nos permite construir mapas 3D interactivos, sin necesidad de código, incluso mapas indoor renderizados a partir de mapas 2D, ideales para seguir eventos en tiempo real por ejemplo. Esto haciendo público el edificio que se renderice, si queremos que sea privado hay que pagar 1400$ anuales (para un edificio) o 2300$ cuando son más de uno.

Si no vamos a hacer mapas personalizados indoor hay que tener en cuenta también que el servicio es gratuito hasta los 1000 usuarios, en cuanto se superan los 1000 pero no se llega a los 10000 se pagan 50$ mensuales, más de 50000 son 500$ mensuales y si los superamos nos ruegan que nos pongamos en contacto con ellos para determinar cuánto se pagará.

En primer lugar, ¿ de donde saca los mapas ?

Según su web los mapeados los cogen de fuentes libres como OpenStreetMap, USGS, Natural Resources Canada, NASA, Natural Earth GeoNames and Ordnance Survey Open Data… al leer esto lo primero que me vino a la cabeza es que son fuentes que tienen solo zonas determinadas del mundo mapeadas y que veríamos a ver qué pasaría con España… a veces sería mejor que no pensase tanto, ahora me explicaré mejor.

Con estas premisas me he puesto a probar que nos están ofreciendo. Siguiendo los pasos que indican en la web lo primero que he hice fue descargar el asset para Unity, está gratuito en el asset store. Una vez instalado veremos en el proyecto que hay una carpeta llamada Demo, que son en las que me centré para ver el potencial del asset.

Primeros pasos con WRLD

A la vez tenía una ventana abierta del navegador con la web de WrldMap (WrldMap.com) donde procedía registrarme como usuario, cosa que es obligatoria si se pretende utilizar WrldMap. Una vez registrado se abre una sección para desarrolladores. Podemos ver nuestro Developer Token, una cadena alfanumérica que nos identifica, y podemos empezar a crear nuestras API Keys para los proyectos que hagamos, tenemos acceso a la API y ejemplos también para las distintas plataformas con las que trabaja.

instalando wrld para unity

La API Key la podemos crear desde ahí o bien llamando a esta página desde el proyecto de Unity, el resultado es el mismo.

uso en unity de wrld

Cuando tenemos instalado el asset puede saltarnos un aviso como el de la imágen de abajo, incrementamos la distancia para que las sombras sean visibles y seguimos.

advertencia asset unity 3d

Si abrimos en la carpeta Demo del proyecto veremos tres escenas y una carpeta llamada Collisions. Empecé por la primera escena, llamada BasicStarter, cuando se abre debemos irnos en la jerarquía al elemento WrldMap, veremos en el inspector una casilla llamada API Key, desde aquí podemos conseguir dicha API key (como he mencionado antes),o bien desde la copiamos desde la web si la hemos creado antes.

asset wrld para unity

En cualquier caso crearemos la API Key poniéndole un título en su casilla, entonces nos aparecerá justo debajo una cadena alfanumérica, la copiamos y pegamos en el inspector de Unity, automáticamente se abrirán una serie de opciones en el inspector.

inspector unity 3d

Listo, si le damos al play podremos ver el mapeado por streaming que nos devuelve WrldMap.

Experimentando un poco

Ahora podemos jugar con la latitud y la longitud, para situarnos donde deseemos, en nuestro caso probaremos a situarnos en la zona de la Alhambra de Granada, y nos llevamos la primera en la frente, porque esos mapas no están. Probamos con Madrid…casi pero no, tampoco está. Por probar otra ubicación escogemos la 5ª Avenida en Manhattan, que suponemos que estará y premio, con esas coordenadas no hay problema, automáticamente nos saca junto a Central Park, como habíamos marcado.

new york wrld unity

Podemos ver coloreados los principales museos de la zona, el Metropolitano y el museo Americano de Historia Natural. Podemos desplazarnos por el mapa que se va generando automáticamente.
Volvemos a probar con España, esta vez Barcelona (41.38111,172528) y ahora si tenemos éxito.

Barcelona unity 3d

Vamos a por otro

El segundo ejemplo es el llamado “CameraTransitionExample”, este es más vistoso, con edificios coloreados y una cámara aérea que nos hace un pequeño recorrido en bucle sobre un mapa de San Francisco. Aquí no interactuamos con el mapa, el ejemplo solo nos permite ver la animación.

animación con WRLD

En este ejemplo las coordenadas van en el script, por lo que da igual las que se pongan en el inspector. Si ojeamos el script que anima la cámara vemos que es bastante sencillo moverla, se resume a un par de líneas:

var transamericaPyramidSanFrancisco = LatLong.FromDegrees(37.7951572, -122.4028915);
api.CameraApi.AnimateTo(transamericaPyramidSanFrancisco,distanceFromInterest:1500,headingDegrees:90,pitchDegrees:45);

El tercer ejemplo que nos ponen bajo el título “SeparateStreamingAndRenderingExample” muestra una instantánea del mapa visto contra el horizonte.

vista lateral mapa WRLD

Trabajando con colisiones

Por último dentro de la carpeta Collisions encontramos quizás el ejemplo más interesante, donde además del mapa visto desde la cámara aérea podemos disparar bolas contra los edificios, la API de WrldMap permite detectar colisiones tanto en edificios, como en carreteras o el terreno, de forma independiente. Si lo probáis seguro que tiráis unas cuantas bolas.

colisiones con mapa del WRLD en unity 3D

Por otro lado dentro de nuestro perfil web podemos crear mapas personalizados, aunque claro, sobre mapeado que tengan, si buscáis Granada o Madrid hará sugerencias (usan yelp) pero el mapa no saldrá, aunque ponga los marcadores se verá de fondo el mar.

yelp granada

En resumen

Llegados a este punto debo comentar que el interés por usar este sistema se me cortó un poco, por la limitación de los mapeados principalmente. Otra cosa que noto es que el streaming de los mapas, aun utilizando una conexión rápida a internet y trabajando sobre un ordenador de sobremesa, no es muy fluida, teniendo que esperar para que se carguen las partes del mapa que se ven en pantalla a poco que se mueva. No he probado en ningún dispositivo móvil, pero sospecho que consumirá bastantes datos y no sé hasta qué punto estará optimizado a la hora del manejo, aunque aseguran que lo está. El tema del pago mensual al pasar los 1000 usuarios activos ni lo mencionaré.

Alfonso Jurado Mesa

Analista programador de profesión, coleccionista de comics y amante de los videojuegos. Socio fundador de Estudio Nemo y la asociación Granada Jam, profesor a veces, webmaster a ratos, redactor a otros. Mitad ingeniero, mitad hombre del renacimiento, mitad hombre orquesta, mitad gamer...tengo muchas mitades...

Más Posts - Website

Sigueme:
TwitterFacebookGoogle Plus