Jorge Vallejo Blog

Blog del creativo, ilustrador y profesor de videojuegos Jorge Vallejo

Unity movimiento con Coseno

El uso de Mathf para implementar funciones matemáticas es muy sencillo, y permite hacer muchas cosas curiosas con muy pocas lineas de código.

Uso de Mathf.Cos para la creación de movimiento, ya que la fluctuación del coseno es -1 y 1

En el Update
pos_x += velocidad;
pos_y += velocidad;
transform.position = new Vector2(pos_x, Mathf.Cos(pos_y));

Unity creación de menús por código

Cuando uno se inicia en la programación es una buena practica entender lo más esencial, es por ese motivo que en clase empiezo explicando la creación de menús por código con la función OnGUI, en vez de ir directamente a la creación de menús con Canvas en Unity.

Unas pocas lineas de código son suficientes para poder crear un menú básico , que forme parte de un prototipo inicial y que más adelante se pueda cambiar.

El uso de Arrays para contener los nombres de textos y botones, hace que el proceso de construcción se vuelva todavía mas optimizado.

Remodelación 3D de Cocina con Unity y Blender

Cocina en Unity

En Blender hice unos modelos sencillos basados en un concepto que la empresa de cocinas nos dio, el mayor reto es decidir entre las múltiples posibilidades que la combinación de colores de muebles, encimera y suelo ofrece, para lo cual al hacer el sistema con Unity puede implementar una selección de materiales y hacer cambios muy rápidos.

Por otro lado para el suelo, miramos diferentes azulejos, que luego hay que tratar en photoshop u otro programa de retoque grafico para hacerlos repetibles tanto horizontal como verticalmente, ya que si la textura está preparada podremos utilizar fácilmente la propiedad tiling del material, la cual nos permite controlar la repetición de la textura.

Ad debug output

The ad is displayed on the page

current post: Remodelación 3D de Cocina con Unity y Blender, ID: 2560

Ad: Anuncio2 (2573)

Display Conditions
general conditions
Adwp_the_query
is_main_query11
page01
numpages01
is_archive1
is_search1
is_home11
is_4041
is_attachment1
is_singular1
is_front_page11
is_feed1




Find solutions in the manual

Diseño y remodelación de baño 3d con Unity

Partiendo de una fotografia del antes y con las medidas exactas he levantado en 3d el baño , añadiendo detalles que lo hacen más creíble.

Para crear la habitación en 3d utilice blender , existe un addon interesante archimesh que nos ayudara a resolver facilmente algunas cuestiones , como la colocación de ventanas y puertas.

Despues el modelo lo podemos importar directamente en unity como .blend para hacer las modificaciones sobre ese archivo, hay que tener en cuenta q una vez importado si añadimos elementos en el .blend estos no apareceran directamente en la escena de unity sino que tendremos que volver a meterla en la escena, por eso es preferible importar el modelo cuando este lo mas acabado posible.

Galería de Youtube

Añadir y quitar elementos de una lista en Unity

Siempre digo que los List son como Arrays o Matrices vitanimadas, ya que tienen implementados sus propios metodos lo que facilitar la labor a la hora de manejarlas.

En c# y Unity para poder utilizar los List tendremos que tener la librería

using System.Collections.Generic;

Depues podemos declarar nuestra lista del tipo que queramos , normalmente usaremos listas con tipos mas complejos que una variable, numero o cadena, es decir, usaremos listas sobre todo con objetos definidos por una clase.

Imaginemos que queremos llevar un registro de los enemigos que hay en el juego,

Tendremos una clase Enemigo

Declaramos nuestro List

public List<Enemigo> enemigos=new List<Enemigo>();

Ahora queremos almacenar un nuevo enemigo, pero no queremos almacenarlo si esta repetido, es decir, solo almacenaremos un enemigo que no este ya en la lista, con arrays seria un proceso mas lento, habria que recorrer el array para saber si esta ya o no, crear una copia del array con una dimensión mayor y volcar de un array a otro.

Con listas es mucho más sencillo, podemos crearnos una función que es publica y que no delvuelve ningun valor void llamada RegitraEnemigo, la cual recibe un parametro de tipo Enemigo llamado e

Lo primero que hace es comprobar si la lista ya contiene a ese enemigo con enemigos.Contais(e) una funcion propia de las listas que devuelve un bool es decir, verdadero o falso, si devuelve false, entonces e no esta en la lista enemigos por lo que lo podemos añadir con enemigos.Add(e) que mete ese enemigo en la lista

public void RegistraEnemigo(Enemigo e){

if (enemigos.Contains (e) == false) {
enemigos.Add (e);
}
}

Por el contrario si lo que queremos es borrar un enemigo que ya esta en la lista , lo que haremos sera comprobar previamente que esta en la lista y después borrarlo.

public void  QuitarEnemigo(Enemigo e){

if (enemigos.Contains (e)) {
enemigos.Remove (e);
}
}

Hay que aclarar que un eliminado de un objeto de un List no lo borrara de la jerarquía , lo que hacemos es borrar la referencia que estaba guardada en la lista para borrarlo de la jerarquía habría que usar Destroy(gameObject);

Recreando iVisual , Escuela de nuevas tecnologías de Valladolid en Unity

Primero se tomaron fotos de referencia.

Después, se recrea la geometría base utilizando Probuilder, el cual nos permite modelar dentro de Unity, colocamos un FPS Controller para movernos por el escenario, en esta fase es fundamental corregir escalas, probar q el personaje se mueve con soltura sin estar demasiado “apretado”, también se colocan cubos simples con los objetos base, que seran convertidos en Prefabs para ser sustituidos después.

Colocamos materiales con texturas, Probuilder va creando las UVs por lo que simplemente seleccionado caras podemos asignar los materiales. También colocamos los primeros modelos.

En este proyecto las luces se apagan y encienden en tiempo de juego, por lo que las pusimos mixed, hay q tener en cuenta que al añadir el postprocesing todo se volverá algo más oscuro.

Las bombillas llevan un material de emisión que se puede desactivar por código, Material.DisableKeyword(“_EMISSION”);

Finalmente añadimos los efectos de postproducción con Postprocesing v2, en esta versión podemos controlar diferentes postprocesing mediante volumen de forma que podemos tener un postprocesing en el pasillo y otro distinto en una habitación.

El efecto Bloom pertime que los materiales emisión se vean más suavizados y con un halo.

La corrección de color, colocamos todo el color en ACES el modo más fílmico y ajustamos la exposición, contraste etc.

Con Screenspace añadimos reflejos en el suelo en aquellos materiales que tienen algo de reflexión.

También metimos reflexion probes para controlar los reflejos del Ironman , los cuadros y las manillas de las puertas.