septiembre 2020

30/9/20

Unity tutorial: introduccion a Unity, interfaz de usuario para newbies: 101


 

Imagen de: https://docs.unity3d.com/Manual/UsingTheEditor.html


(A) La barra de herramientas:

Proporciona acceso a las funciones de trabajo más esenciales. 

En la parte izquierda, contiene las herramientas básicas para manipular la vista de escena y el GameObject dentro de ella.

En el centro, están los controles de reproducción, pausa y pasos.

A la derecha,  tienes el  acceso a Unity Collaborate, Unity Cloud Services y a tu cuenta de Unity, seguido de un menú de visibilidad de capa y, finalmente, el menú de diseño del editor (que proporciona algunos diseños alternativos para las ventanas del editor y le permite guardar su propios diseños personalizados).


(B) La ventana de jerarquía:

 Es una representación de texto jerárquica de cada GameObject en la escena. Cada elemento de la escena tiene una entrada en la jerarquía, por lo que las dos ventanas están intrínsecamente vinculadas. La jerarquía revela la estructura de cómo los GameObjects se unen entre sí.




(C) La vista de juego :

Simula cómo se verá el juego renderizado final a través de sus cámaras de escena.

 Al hacer clic en el botón Reproducir, comienza la simulación.



(D) La vista de escena :

 Te permite navegar y editar visualmente su escena. La vista de escena

 puede mostrar una perspectiva 3D o 2D, según el tipo de proyecto en el que esté trabajando.



(E) La ventana del inspector :

Te permite ver y editar todas las propiedades de los GameObject seleccionados actualmente. Debido a que los diferentes tipos de GameObjects poseen conjuntos distintos de propiedades, el diseño y el contenido del Inspector cambia cada vez que selecciona un GameObject diferente.

Además de poder agregar nuevos componentes por medio del botón que se ubica al final este es el medio por el cual estableceremos las configuraciones de cada uno de los elementos que se encuentran en la jerarquía.



(F) La ventana Proyecto:

 Muestra la biblioteca de Assets que están disponibles para usar en el Proyecto. 

Cuando importas Assets al proyecto, aparecen aquí.

estos puede ser modelos 3D, efectos de sonido, scripts, texturas, entre otros tipos especiales.


Estas son de las ventanas mas importantes dentro de Unity existen otras ventanas no tan secundarias pero que solo comenzaras a utilizar cuando vayas a editar objetos mas especializados como animaciones,  arboles de estado, sprites, editar audios o programar un shader o diseñar un efecto especial.














si has leído hasta acá, y aprendiste sobre la interfaz de Unity,  te agradezco,  visítanos en nuestras redes y comparte.








Unity tutorial: Delegados y eventos, una forma inalambrica de comunicar componentes (lógica desacoplada)


 

Introducción

En muchas ocasiones la comunicación entre clases y componentes dentro de un videojuego hecho con Unity, es vital para poder desencadenar eventos en el momento adecuado y enriquecer las experiencias así como optimizar el funcionamiento del interactivo. 

En esta ocasión y para efectos de este tutorial hare uso de un caso especifico donde el uso de esta herramienta de programación le permitirá a los componentes a interactuar y realizar sus acciones en el momento en el que se necesita.


Caso de uso

[VR TAXI Stories]:

En el juego del taxi, es necesario notificar a los pasajeros cuando el vehículo ha llegado por ellos y para esto existen múltiples formas como vinculando clases en el inspector y generando instancias, para desacoplar esta lógica y poder reutilizar el componente de notificación hemos hecho uso de EVENT y DELEGATE


Solución

Esta solución constara de 2 partes una clase que implemente estos tipos y  una clase que se suscriba y este al pendiente de estos eventos cuando ocurran.



Para ello hemos creado la clase, la cual contendrá la lógica para notificar cuando ocurren los eventos.


esta lógica de notificación incluye un método con un nombre similar al de las variables Event y Delegate, este método se encarga de validad si existe alguien suscrito por medio de un simple condicional IF y si esto es así dispara el evento.


En este caso una parte del  signature del método especial,  define como parámetro una variable booleana


[recordando que el signature de un método esta dado por: nivel de acceso, el valor de retorno y cualquier parámetro].


por diseño hemos incluido únicamente un evento relacionado con el taxi en esta ocasión para notificar cuando el taxi ha llegado a su ubicación.

Para ello hemos hecho uso de un componente muy conocido Trigger, el cual servirá en esta ocasión para validar que efectivamente el vehículo ha llegado a la posición correcta para recoger al pasajero.



Lógica de la mecánica hasta este punto:

Llega el vehículo al lugar->
         Entra al collider/Trigger -> 
        Valida que ha llegado(con un booleano)->
        Notificador dispara el evento-> 
Componentes suscritos al evento son notificados.


Clase suscriptora:

Para ello hemos creado una clase Passenger la cual es la definicion de lo que nuestro pasajero puede hacer ...


La forma en la que esta clase se suscribirá a los eventos será utilizando el operador += y la forma en la que esta se des-suscribirá de los eventos será con el operador -= estas dos operaciones son supe importantes para que funcionen correctamente los eventos.

y para que esto funcione haremos uso de dos métodos importantes OnEnable y OnDisable,  para que básicamente sirven para preguntar cuando un objeto esta disponible y activo.


ahora es muy importante notar

 QUIEN DEBE SUSCRIBIRSE?

Bueno pues recordemos que el signature del método especial que creamos, recibía un booleano, y que el delegado que creamos también tenia esta forma...

 por lo que la pregunta de quien debe suscribirse, encuentra su respuesta en. . .

Un método que posea la misma forma es decir devuelva un tipo vacío y reciba como parámetro un booleano específicamente para este caso.










Si has leído hasta acá y este tutorial te ha servido para entender el uso de eventos y delegados déjanos tus comentarios en nuestras redes sociales y comparte.









25/9/20

Unity Tutorial: Como crear un minimapa utilizando RenderTextures


 


Como crear un minimapa? ...



En esta ocasion y mas a modo de tutorial que como parte del Dev log, les traigo este tutorial de como hacer cosas dentro de Unity, el cual te permitira desde como crear un minimapa hasta como crear como en mi caso un sistema de GPS para navegar dentro del juego...

Comenzamos


Que necesitaremos?



Para este sistema vas a necesitar básicamente la imagen representativa de tu mapa en mi caso utilice una toma aérea que luego edite en un programa de edición para estilizarlo un poco, ya que esta no será mi imagen final, pero para efectos de este tutorial basta para que te des una idea.

Imagen aerea del mapa del juego.

Posteriormente dentro de unity necesitaras crear un canvas

el cual por configuracion se debe encontrar en World space como lo indica la siguiente imagen.


 Una vez que hayas configurado tu UI en este caso el canvas con todos sus elementos necesarios además de posicionarlo en el espacio 3D como finalmente quieres que se vea, en mi caso lucirá así ...


(*Lo he sacado de su posición para que mostrarles.)

Vamos a crear una segunda cámara la cual funcionara como la parte encargada de recuperar y proyectarnos en el UI la sección que corresponderá al mini mapa...


    
 Dicha cámara deberá estar apuntando hacia abajo por lo tanto habrá que girarla 90° te comparto mi configuración


Aunado a esto he creado un script que te compartiré mas abajo para que la cámara siga al personaje en este caso es un vehículo  ...



Como habrás notado en la configuración de la cámara en la imagen superior, este contiene un Target Texture el cual crearemos haciendo lo siguiente...



En mi caso esta es mi configuración del RenderTexture ... puedes jugar con los valores y ver tu resultado


Vaya pues añade este RenderTexture a la cámara (la segunda cámara que hemos creado).

Bien ahora viene la magia en mi caso yo he creado un plano que coincide con el tamaño de mi mapa de escenario.


Por lo que he necesitado crear 2 materiales 1 que será utilizado para colocar el mapa en dicho plano



y en mi segundo material, he colocado nuevamente el render texture


Esto significa que lo que esta viendo la cámara que hemos colocado a 90° por encima del plano  será lo que por medio del render textura se proyecte en nuestra UI que les mostrare básicamente como la he configurado para que esto suceda...

Dentro del canvas cuento con un panel al cual le he agregado un material el cual contiene  contiene el renderTexture, recuerda el que creaste anteriormente y esto basicamente hace la magia de proyectar un mapa de GPS o en tu caso un MINIMAPA para tu juego...




Gracias por llegas hasta aquí.



























23/9/20

DevLog : VR TAXI STORIES


 

Introducción.

En esta cuarentena he decidido iniciar este proyecto utilizando el motor de videojuegos Unity y mi visor de Oculus Go, este proyecto comenzó con la visión de hacer un juego de carreras y probar que es funcional tener un Oculus Go corriendo gráficos de cierta manera similares a los de PS One por lo que me di a la tarea de hacer las pertinentes investigaciones... derivado de ello resulto en este proyecto que espero sea de su agrado y así como yo al leer esta entrada puedan aprender cosas interesantes y útiles de Unity, modelado 3d, un poco de animación, Rigging y programación.


Planteamiento del desarrollo del juego:


Logo tentativo.
Logo.


 VR Taxi Stories.


 Es un juego, de espectador en el que una serie de historias se entrelazan durante un evento fortuito que sucede en la ciudad de San Romero Valley en donde la vida de un grupo de personas se ve envuelta en misterio, intriga drama y mucho humor negro.

En Taxi Stories eres el chófer de un taxi de la compañía ComfortTaxi, durante los viajes atestiguaras múltiples conversaciones entre los lugareños, mientras este los conduce por la ciudad o se encuentra estacionado en algún punto de la calle.

Durante el juego es posible que escuches pistas o elementos que te ayuden a entender la vida entrelazada y problemática de estos curiosos personajes.

Taxi Stories ofrece una experiencia de manejo en VR utilizando el mando de Xbox o algún mando que pueda conectarse, este juego esta diseñado para Oculus Go.

Taxi Stories tiene como particular elemento poder escuchar las diferentes historias de estos curiosos personajes, con la finalidad de desentrañar el fallecimiento misterioso del benefactor de la ciudad.



 MODO DE JUEGO (EJEMPLO:)


La inteligencia del juego se encargara de secuenciar la llegada de cada uno de los personajes, por lo que llevarlos a su destino será tu misión…

p.ejm.

Aborda el taxi, Aura Bella, una chica linda de cabello negro largo, piernas torneadas y altura envidiable, con el rímel corrido y sollozando.

Opciones :

voz del conductor 

            A) --adonde la llevo

            B) --esperar a que ella hable.

            C) --pregunta si esta bien?

Dependiendo la elección

            el taxista dice :

                    Dialogo_1

            La chica responde.

                    Dialogo₁


PERSONAJES:

para complementar esta historia se crearan varias fichas de personaje esto para facilitar la redacción de la historia

pero quienes son estos personajes?

Nuestra historia principal se centra al rededor de Thadeus Remington el benefactor del pueblo quien es el magnate y genio de la construcción que ha traído prosperidad al valle, y aunque su acenso y carrera no han sido fácil, y un grupo de personajes al rededor de el han generado con los años una serie de rencillas y diferencias que saldrán a la luz con la muerte misteriosa de nuestro personaje principal.


Personajes
En el diseño principal Thadeous es caucásico pero he decidido cambiarlo por un personaje mas Afroamericano.

Una vez llenada las fichas de personajes, pues procedo a crear esta historia ya que se conocen las motivaciones y trasfondo de cada personaje es un poco mas sencillo sin minimizar esta tarea ya que aun hay que hacerla interesante... 
Cabe mencionar que escribir un guion no es tarea fácil o sencilla ya que del tema conocía poco... para ello les recomiendo leer a "Syd Field" con su libro "Screenplay: the foundations of screenwriting".

Habiendo entendido y elegido la estructura de 3 actos para esta historia pues procederé a crearla de a poco. misma que iré posteando en entradas futuras.

Otra de las cosas que impactara el como se redacte esta historia es la animación de los personajes, tengo recursos limitados con mis habilidades como animador pero eso no me va a detener.


Cosas novedosas a implementar

Manos VR con gestos
Una de las cosas a implementar dentro del juego es el hecho de tener manos con gestos,  aunque por las limitaciones del visor no corresponderán con las del jugador  (tal vez en una actualización hacia el oculus Quest quedara implementadas a full),  pero estas podrán reaccionar a la posición de la cabeza, ya por ejemplo al voltear a ver hacia el espejo o hacia el estéreo y presionar el botón de acción correspondiente estas manos podrán cambiar la estación de radio o ajustar el espejo, asi como cambiar las velocidades del vehículo e interactuar con la palanca y el volante.



Conclusión parte 1

Estas han sido algunas de las cosas que se incluyen dentro del juego, y un poco del proceso de concept llevado a cabo en la siguiente entrada quiero hablarles de como se concibió la ciudad y las zonas importantes de esta para llevar a cabo las historias.

si has leído hasta aquí te agradezco tu tiempo y te pido me regales un like en el la fan page de Realform Studio.