Tag Archives: character

NavMesh OverWorld Map System para Unity 3D

This page now has a cute English translation, Welcome anglosaxon friends! Here we don´t discriminate no one, but since I don´t know any other languages, consider yourself lucky I know yours besides Spanish, LOL!

Para hacer funcionar el NavMesh OverWorld Map System, se requieren 4 componentes principales: Un Main Camera (camera), un Overworld Map (map), los Overworld Goals (goals) y el NavMesh Path, y finalmente, el NavMesh Agent o Playable Character (character).

La Camera está acompañada por un “look at objective”, el cual servirá como el punto de atención para el Character. Es el punto al que siempre deberá ver, ubicado justo al centro entre el Map y la Camera.

Los Goals estarán conformados del listado de objetivos a los cuales el Character deberá poder acceder durante el recorrido por el Path. Estos Goals serán el punto de acceso a niveles desbloqueados, tesoros ocultos, enemigos escondidos o lo que el juego demande. Se pueden colocar cuantos Goals se requieran, siempre teniendo cuidado de hacerlos consecutivos y que toquen en todo momento el Path.

Además, el Path necesita estar conformado por un modelo realizado en algún programa externo. Como puede verse en la imagen, es una figura 3d, yo la creé usando Blender, pero bien puede realizarse en cualquier otro programa 3d (3DS Max, Maya, etc). Debe poseer un grosor justo para que el character pueda caber en cada recoveco y giro de esquina que posea. Se puede fácilmente sustituir el ejemplo que posee el Asset y colocar el propio camino personalizado.

Para realizar el Map, sólo se requierá una imagen 2d, nada complejo, aunque también es posible que el mismo Path sirva como Map, añadiéndole un diseño para su aplicación en entornos 3d. En mi Asset, se emplea una imagen plana como fondo y se oculta la visualización (Mesh Renderer desactivado) del path, simplemente para simplificar el sistema.

El Character se compone de los Sprites izquierdo y derecho que compondrán al personaje que se estará desplazando libremente por la pantalla, puede ser el diseño que se requiera. En mi caso, empleé un Sprite Renderer para usar una imagen 2d, pero así mismo puede usarse un modelo 3d, dependiendo de la complejidad que se maneje en el juego.

Cuando se cambie el modelo para el Path, es importante notar que se requerirá volver a generar el NavMesh, el cual se realiza por medio del Window Navigation.

Una vez abierto, se necesitará seleccionar el GameObject con el modelo que se usará para hacer el Path, en este caso mi NavMesh Path. Se deberá establecer los parámetros del NavMesh Agent, como su Radius, Height, Slope, Step Height, todos ellos útiles para permitir una adecuada navegación del Character por el Path. Cuando se termine, bastará con oprimir el botón Bake, e instantáneamente se creará un área azul en todo el modelo del Path, debe cuidarse que el área azul sea completa y pase por cada rincón, si en algún momento corta y se descontinúa, será necesario reducir el Agent Radius o aumentar el grosor del modelo, de lo contrario, no se podrá crear el NavMesh Agent y no se completará la creación del NavMesh System.

Por último, es necesario crear el NavMesh Agent, colocando en el GameObject seleccionado el componente debido. Se deben establecer los parámetros que se establecieron en el Path, o viceversa.

Este mismo objeto poseerá los Scripts que vienen con el Asset Nav Mesh Move To y Eyes On Player, colocando en el lugar debido los GameObject que pertenecen ahí, en las casillas para Goal x se pondrá el goal seleccionado y si se requieren más o menos, se tendrá que modificar el Script para ello. En las casillas para Sprite Right y Left se pondrán los GameObjects que compongan el modelo del Character mirando hacia la dirección deseada, pudiendo hacer los cambios pertinentes que se requieran, como añadir más Characters, que sea modelo 3d, etc.

Finalmente, se puede Oprimir Play y ver qué pasa…
Diversión!!

No olvides ver el live Demo y link para descargar el Asset…

Live Demo NavMesh OverWorld Map System

*****************************

Si necesitas un Asset personalizado con todo y tutorial, pídelo aquí…

Asset Requests