1. tutorial unity3d introducción

18
Centro de Estudios de Ingeniería de Software LABORATORY OPENSOURCE SOLUTION Taller de Programación De Videojuegos Taller Nº1: “Tutorial Unity 3D” Introducción al GUI Terrain, Light and Sky David Biava Mauricio Westermeyer Bastián Barrientos Víctor Aravena [email protected] Contenidos Introducción al GUI de Unity3D Contenido Introducción al GUI de Unity 3D ...................................................................................... 2 Terrain ........................................................................................................................................ 7 Light and Sky ......................................................................................................................... 17

Upload: victor-aravena

Post on 05-Dec-2014

1.346 views

Category:

Documents


1 download

DESCRIPTION

 

TRANSCRIPT

Page 1: 1.  tutorial unity3d introducción

Centro de Estudios de Ingeniería de Software

LABORATORY OPENSOURCE SOLUTION

Taller de Programación De Videojuegos

Taller Nº1: “Tutorial Unity 3D” Introducción al GUI

Terrain, Light and Sky David Biava

Mauricio Westermeyer Bastián Barrientos

Víctor Aravena [email protected]

Contenidos

Introducción al GUI de Unity3D

Contenido Introducción al GUI de Unity 3D ...................................................................................... 2

Terrain ........................................................................................................................................ 7

Light and Sky ......................................................................................................................... 17

Page 2: 1.  tutorial unity3d introducción

Centro de Estudios de Ingeniería de Software

LABORATORY OPENSOURCE SOLUTION

Introducción al GUI de Unity 3D

La interfaz de Unity 3D es bastante intuitiva y configurable. Para

comenzar, se recomienda usar la configuración “2 by 3”, aunque se

sugiere que se utilice la que parezca más cómoda.

Seleccionamos en la parte superior derecha la opción Default y

optamos por la opción “2 by 3”. En cualquier caso, el layout de

Unity3D es totalmente configurable. A continuación explicamos cada

uno de las partes en la que está dividido el layout:

Page 3: 1.  tutorial unity3d introducción

Centro de Estudios de Ingeniería de Software

LABORATORY OPENSOURCE SOLUTION

1 Scene View: Es la vista de Escena, esta es la vista en la que se

trabajará visualmente en el videojuego.

2 Game View: Es la vista del Juego. Muestra como se verá el

videojuego si se ejecutara con los elementos del Scene View.

3 Hierachy View: Es la vista de Jerarquías, muestra los elementos

que pertenecen a la escena completa, para poder seleccionarlos o

trabajar en aspectos comunes entre ellos.

4 Project View: Es la vista de Proyecto. Visualiza el proyecto en sí y

los recursos (Assets) que tuviese, como pueden ser texturas,

elementos, scripts, sonidos, etc.

5 Inspector View: La vista de Inspector, muestra las características

específicas de cada elemento seleccionado. Si no hay nada

seleccionado, no mostrará nada. Permite trabajar las cualidades de

los objetos de la escena.

Comenzando un proyecto

Para iniciar, es recomendable reiniciar Unity 3D, esto es, cerrar el

programa y volverlo a abrir. Luego debe seleccionar File>New

Project. Al crear un nuevo proyecto, aparecer muchos paquetes que

vienen por defecto en Unity. Para este ejemplo básico, solo

seleccionaremos Character Controller.

Una vez cargado el Proyecto Nuevo, el único objeto que se podrá ver

en la vista de Jerarquías es “Main Camera”, que es la cámara

Principal. Si queremos ver donde se encuentra en nuestro juego,

hacemos doble click sobre Main Camera en la vista de Jerarquías, lo

cual hará que se centre en ella.

Main Camera es un elemento que tiene la particularidad de mostrar

los elementos que serán visibles en el juego, como si viéramos todo

desde una cámara de video.

Page 4: 1.  tutorial unity3d introducción

Centro de Estudios de Ingeniería de Software

LABORATORY OPENSOURCE SOLUTION

Añadiendo Objetos

Vamos a añadir algunos objetos para que podamos verlos en el

juego.

En el menú: Game Object>Create Other>Plane. Esta acción crea un

plano bidimensional, en el cual nos podremos mover.

De la misma manera, podemos añadir otros objetos. Game

Object>Create Other>Cube.

Y también añadiremos un tercer elemento, una luz. Game

Object>Create Other>Point Light.

Todos estos objetos aparecen por defecto en una misma posición, con

valores por default (tamaño, rotación, etc.). Ahora intentaremos

personalizar estos objetos.

La vista de escena es algo complicada de manejar en un principio,

pero tras algunas pruebas se puede aprender a manejar con cierta

facilidad. Por otro lado, existen algunos controles que pueden ayudar

a alivianar el manejo de vistas y modificación de objetos.

Rotar: Click derecho y arrastrar

Desplazamiento: Click central (ruedita de mouse) y arrastrar.

También sirven las flechas direccionales.

Zoom: Rueda del ratón, aunque es muy recomendable hacerlo por

desplazamientos. El uso excesivo de zoom puede terminar el

acercamientos o alejamientos, o muy rápidos, o muy lentos.

Para modificar los objetos dentro de la escena, existen tres controles

que se ubican en la parte superior de la vista de escena, y son los

siguientes:

Page 5: 1.  tutorial unity3d introducción

Centro de Estudios de Ingeniería de Software

LABORATORY OPENSOURCE SOLUTION

El primer control (la mano) está seleccionado por defecto, y es para

poder manejar la vista – de la cual ya hemos explicado

anteriormente.

El segundo control es la cruceta de flechas, y corresponde a la

modificación de posición de un objeto.

Si seleccionamos cualquier objeto, nuestro cubo, por ejemplo, desde

la vista de escena o la vista de jerarquías, y luego seleccionamos este

control, aparecerán los controles en 3D, con 3 flechas para x, y, z.

Prueba a mover el cubo de posición, sacarlos del plano y volverlo a

colocar.

El tercer control se encarga de la rotación del objeto. De la misma

manera que el anterior, pruebe a mover el cubo, rotarlo, etc.

El cuarto control es el que se ocupa de la dimensión del objeto, u

escala del mismo. Seleccione este control si tiene seleccionado el

cubo, y pude alargarlo, aplastarlo, entre otros.

Intente poner este cubo en la base del plano, dejarlo perfectamente

parado y convertirlo en un pilar.

Como se puede apreciar, al momento de mover el cubo, se dió cuenta

de la existencia de una luz. Esa luz es la que se creó en un principio,

y como se explicó anteriormente, compartía la misma posición que el

cubo, de ahí a que no se pudiera ver en un principio.

Pruebe a mover la luz hacia arriba del cubo original (nuestro nuevo

pilar).

El plano también se puede re-escalar, pero no en su componente Y.

Por lo tanto, seleccione el plano y ponga 10 a los valores en X y Z en

la Vista de Inspector.

Vamos a añadir un último elemento para poder observar mejor el

juego. En la vista de Proyectos, subpestaña assets>Standard

Assets>CharacterController, podemos ver los controladores para

personajes. Usaremos uno básico de Unity que nos permitirá tener

una vista de primera persona, como si fuese un fps.

Page 6: 1.  tutorial unity3d introducción

Centro de Estudios de Ingeniería de Software

LABORATORY OPENSOURCE SOLUTION

Arrastre el elemento First Person Controller hacia la vista de Escena,

en la posición que estime conveniente. Asegúrese que el personaje

quede totalmente encima del plano – con el controlador de posición.

De no ser así, el objeto podría caer hacia el infinito.

Si se hace bien, observará que la Escena de juego ha cambiado,

puesto que nuestra cámara principal ha sido reemplazada por nuestra

cámara de primera persona. La cámara principal puede ser eliminada.

El juego puede ser ejecutado preliminarmente haciendo click en el

botón play que se encuentra en la parte superior central.

Para hacer una pausa, puede utilizar el segundo botón. Para detener

la ejecución puede presionar el botón play nuevamente.

Una cosa interesante que tiene Unity es la duplicación de objetos.

Para una demostración, cree un segundo cubo, cambiándole el

nombre por el que desee con el click derecho y haciendo click en

Rename, en la vista de Jerarquías.

Los cubos por defecto no poseen cualidades de gravedad o

interacción física avanzadas. Para solucionar esto, a nuestro nuevo

cubo, seleccionado, le agregaremos esta cualidad.

Component>Physicis>Rigid Body.

Si colocamos este cubo en el aire, y ejecutamos el juego, veremos

cómo cae. Esto es, al cubo ha adquirido gravedad.

Puedes duplicar el cubo seleccionándolo en la vista de Jerarquías y

presionando ctrl+d, aunque en un principio no ser verá, porque

comparte la misma posición que el cubo original. Puede arreglar esto

fácilmente simplemente moviendo el cubo de posición.

Page 7: 1.  tutorial unity3d introducción

Centro de Estudios de Ingeniería de Software

LABORATORY OPENSOURCE SOLUTION

Puede agregar más cubos, ponerlos en estructuras y ver como se

desmoronan.

Terrain

Vamos a comenzar desde 0, para crear un terreno básico. No es

necesario crear un Nuevo Proyecto, pero sí una nueva escena.

File>New Scene

Creando el terreno

Selecciona la pestaña superior Terrain y haz click en Create Terrain.

Esto creará un terreno simple. Para cambiar el tamaño y algunas

cosas básicas del terreno, se puede seleccionar Terrain>Set

Resolution. Los valores por defecto están bien, pero no hay nada de

malo en variar algunos valores, en especial:

Page 8: 1.  tutorial unity3d introducción

Centro de Estudios de Ingeniería de Software

LABORATORY OPENSOURCE SOLUTION

Terrain Width: Anchura del terreno, en metros.

Terrain Heigth: La altura máxima del terreno cuando haya que

modificarlo.

Terain Length: Longitud del terreno, en metros también.

Apretando Set Resolution aplicará los cambios.

Unity crea los terrenos y estos son partes de un escenario con más

detalles como ríos, lagos, etc. Sin embargo, acabamos de ajustar la

altitud máxima, y el terreno está aplanado a una altura de 0 mts, lo

que quiere decir que podremos hacer montañas, cerros y elevaciones,

pero no hoyos o cuencas.

Es posible crear estos elementos, como un lago, si es que nos

interesa. El procedimiento es:

Terrain>Flatten Heigthmap.

Poner un valor en metros, para la altura base en la que el terreno

estará “elevado” de los 0 metros, como por ejemplo, 100 metros, si

es que dejamosla altura en 600 metros. Esto quiere decir que

podremos hacer montañas de hasta 500 metros, y cuencas de 100

metros.

Page 9: 1.  tutorial unity3d introducción

Centro de Estudios de Ingeniería de Software

LABORATORY OPENSOURCE SOLUTION

Si fue hecho correctamente, se apreciará que el terreno se ha

elevado.

Cargando Recursos para el terreno

Procederemos a cargar elementos para nuestra escena. Aunque Unity

posee un paquete básico de recursos, es bastante simple, y para

obtener mejores resultados se pueden importar desde otras páginas:

1 Acceder a http://trinit.es/unity/packages

2 Hacer click en el archivo TerrainAssets.unitypackage, con lo que la

descarga comenzará. Se recomienda guardar el archivo en un lugar

conocido.

3 En Unity – una vez esté descargado el archivo- hacer click derecho

en la vista de proyecto, seleccionar Import Package>Custom

Package.

4 Busca el archivo que se acaba de descargar

5 Cuando termine la barra de lectura, aparecerá una ventana de

confirmación, seleccionando Import en la esquina inferior derecha y

esperar a que se carguen los recursos.

Una vez hecho esto los recursos estarán disponibles para ser usados

en nuestro proyecto.

Page 10: 1.  tutorial unity3d introducción

Centro de Estudios de Ingeniería de Software

LABORATORY OPENSOURCE SOLUTION

Modificar el Terreno

Se procederá a trabajar en los accidentes geográficos como

montañas, cuencas, mesetas, etc.

Se recuerda siempre que la interfaz de Unity es totalmente

modificable y configurable a nuestro gusto. Por ello, procederemos a

realizar un cambio de Layout para poder tener un mejor campo visual

a la hora de trabajar en terrenos.

Primero se necesita tener el layout seleccionado en “2 by3”, o

cualquiera con el que se esté más cómodo.

Haz doble click en terreno – en la vista de Jerarquías para centrarlo.

Luego de esto, cierra las pestañas de vista de Juego, Jerarquía y

Proyecto. Para hacer esto, click en el Icono de la parte superior

derecha de cada vista y seleccionando Close Tab.

Y finalmente, vamos a guardar nuestra configuración de vistas, en

Window>Layout>Save Layout, y dándole el nombre que más nos

guste, en este caso, Terreno. Si lo hicimos bien, a la hora de

seleccionar Layouts tendremos nuestro nuevo Layout personalizado.

Cuando queramos trabajar en el terreno, podremos seleccionar

“Terreno”, y cuando queramos trabajar con elementos del proyecto,

ordenar jerarquías y otras cosas, seleccionaremos “2 by 3” o

cualquiera sea el de nuestra preferencia.

Page 11: 1.  tutorial unity3d introducción

Centro de Estudios de Ingeniería de Software

LABORATORY OPENSOURCE SOLUTION

Editando el Terreno

Estamos preparados para poner las manos en el terreno. La manera

de hacerlo es poner la mira en la Vista de Inspector, y ver que sea

visible el componente Terrain (Script)

Existen 7 botones, y los 7 tienen funcionalidades distintas.

1 Botón subir y bajar

Nos proporciona la capacidad de crear elevaciones o hundimientos al

hacer click sobre el terreno.

Brushes es el tipo de pincel con el que se hará la deformación. Evite

usar aquellos muy circulares, o con formas que no sean muy

comunes en la naturaleza, para darle más realismo.

El parámetro Brush Size indica el perímetro del pincel, en metros.

Page 12: 1.  tutorial unity3d introducción

Centro de Estudios de Ingeniería de Software

LABORATORY OPENSOURCE SOLUTION

El parámetro Opacity determina la velocidad con la que se eleva un

terreno al hacer click. Para evitar pérdida de control al trabajar, evite

valores por sobre el 50%.

Para realizar perforaciones o hundimientos, en vez de alzamientos o

elevaciones, presiona la tecla shift mientras hace click. Tenga en

mente que hemos establecido una profundidad mínima – 100 metros

– y una altura máxima – 600 metros.

Dedique unos minutos a realizar un paisaje donde haya montañas,

cuencas, y otros accidentes geográficos. Para deshacer algún cambio,

es posible usar ctrl+z.

Este es un ejemplo de cómo podría verse su terreno.

2 Botón de aplanar

Page 13: 1.  tutorial unity3d introducción

Centro de Estudios de Ingeniería de Software

LABORATORY OPENSOURCE SOLUTION

El principal inconveniente del anterior botón es que crea los

elementos con demasiada altura o profundidad, ya que es a mano

alzada y resulta excesivo. El botón aplanar es de gran utilidad porque

crea las elevaciones o hundimientos con la altitud máxima que

elijamos (es decir, podemos crear una meseta de exactamente 400

metros máximo, aunque el máximo del terreno sea 500). Esto puede

verse en la imagen anterior donde las cimas están planas.

Tiene las mismas características que el botón anterior, con la

salvedad que agrega un nuevo parámetro, Heigth. Este determina la

altura máxima de la brocha que se está utilizando.

3 Botón de suavizado

Este botón es especialmente útil cuando, al trabajar con elevaciones

y hundimientos, se crean triángulos o “picos”. Este botón puede unir

estos elementos y crear la sensación de unión y suavidad, haciendo

que se vea más real. Sirve mucho al crear subidas y bajadas de

montañas, mesetas, etc.

Así se ve un terreno antes del botón suavizar

Y así se ve después:

Page 14: 1.  tutorial unity3d introducción

Centro de Estudios de Ingeniería de Software

LABORATORY OPENSOURCE SOLUTION

4 Botón de texturizado

En este momento se han terminado las ediciones de geometría, y

hemos trabajado en un terreno “en blanco” para reducir la

complejidad. Ya es hora de añadirle elementos gráficos.

La novedad es la inclusión del botón “Edit Textures”, al hacer click

sobre el podremos añadir, editar o eliminar texturas.

Aparecerá una pequeña ventana donde podremos elegir la textura

base donde trabajaremos. Cuidado, que el primero siempre es la

base, todo el terreno toma ese color.

Una vez elegido (haciendo click en el pequeño disco que se encuentra

a la derecha), se hace click en add y esta se añadirá en la vista de

Inspector. Se pueden editar o añadir más texturas en el botón “Edit

Textures”, pero siempre recordando que el primer espacio es el base.

Seleccionando Brushes, junto con diferentes texturas, tamaños y

opacidades logrará que el terreno se “pinte” de diferentes texturas.

Terrenos arenosos deberían ir en playas, áridos para caminos,

rocosos para montañas, blancos para nieve, etc.

Page 15: 1.  tutorial unity3d introducción

Centro de Estudios de Ingeniería de Software

LABORATORY OPENSOURCE SOLUTION

Con trabajo y dedicación se pueden lograr que las texturas se

“fundan” y logren acabados realistas como el de la imagen de abajo.

5 Botón de árboles

El botón de arboles se asemeja mucho al de texturas. La diferencia es

que existen más parámetros los cuales sirven para determinar

aspectos a usar cuando se “pinten”.

De la misma manera, existe el botón “Edit Trees”, el cual puede usar

recursos para unirlos a la escena.

Brush Size determina el diámetro del pincel, en metros.

Tree Density es la cantidad de árboles por unidades de 100 metros,

este valor se parece mucho al opacity.

Color variation determina la variación de colores (al azar) entre un

árbol y otro, para que no todos se vean iguales. Tree Heigth y Tree

Width poseen una estructura similar, ambas con Variation.

Al usar el pincel se irán añadiendo más árboles al escenario. Intente

crear bosques y sectores con pocos árboles, y sectores con árboles de

distintos tipos. En este caso, no existe un “árbol base” como si

ocurría con las texturas.

6 Botón de Vegetación

Page 16: 1.  tutorial unity3d introducción

Centro de Estudios de Ingeniería de Software

LABORATORY OPENSOURCE SOLUTION

Este botón es muy similar al de árboles, ya que este puede añadir

pasto, hierba y flores. Procede de una manera muy parecida,

añadiendo distintos tipos de vegetación, con algunos parámetros

especiales.

Al añadirlo, llaman la atención los parámetros Healthy y Dry color, los

cuales son colores que toman cuando están saludables o secos. Se

pueden modificar.

Importante: Es necesario notar que el pasto es el elemento que

consume más memoria dentro de nuestro escenario. Usar este

elemento con moderación.

7 Botón de Configuración

Este último botón configura los aspectos generales del terreno y su

performance.

La proyección de sombras (Cast Shadows) indica si las elevaciones

realizadas proyectan sombra unas sobre otras, por defecto están

seleccionadas, pero pueden anularse para mejorar el rendimiento.

Detail Distance indica la distancia en la que los detalles de vegetación

– como el pasto- comenzarán a ser visibles. Recuerde que el pasto

consume mucha memoria, así que este valor deberá ser usado con

moderación. Tree distance funciona de manera muy similar.

Billboard Distance indica la distancia en que los árboles serán visibles

en baja calidad a la distancia. Aunque se vean de lejos, están en 2d

hasta que se acerquen lo suficiente para renderizarse en 3D.

Todo este trabajo de terreno incluye una gran cantidad de tiempo,

dependiendo de la calidad del terreno, por lo que guardaremos

nuestro trabajo.

Siguiendo los pasos de la primera parte de este tutorial –

Introducción a la GUI- Añadiremos un First Person Controller, que se

encuentra en Assets >Character Controllers y arrastrándolo al lugar

que prefiera. De este modo, podemos volver al modo “2 by 3” y jugar

nuestro videojuego.

Page 17: 1.  tutorial unity3d introducción

Centro de Estudios de Ingeniería de Software

LABORATORY OPENSOURCE SOLUTION

Light and Sky

El siguiente paso es añadir luz y el cielo a nuestro juego. Si se mira al

cielo, solo verá la luz genérica de Unity, y el cielo de color azul – que

es el background genérico, si no lo hemos modificado.

Luz

Para tener nuestra propia fuente de luz, como un Sol, por ejemplo, se

debe seguir la siguiente secuencia

GameObject>Create Other>Directional Light

Tendremos un nuevo objeto de tipo Directional Light en nuestra Vista

de Jerarquías, aparecerá visualmente en la vista de Escena y

podremos editar características en la vista de Inspector.

Pruebe a mover la fuente de luz (que corresponde a un Sol

imaginario) pero en su rotación, que será la que decida como los

rayos de Sol incidan.

Existen parámetros nuevos que pueden ser útiles.

Type: Spot, Directional, Point. Spot ilumina en un cono en frente de

él, como una luz de automóvil, en un cono e intensidad definidos.

Directional hace referencia a una luz que se encuentra en el infinito y

se aplica a todos los objetos, como un Sol. Point Ilumina en todas

direcciones, como una ampolleta, pero solo los objetos dentro de su

rango.

Depués de eso, exiten parámetros adicionales que modifican la

intensidad, rango, o color de la luz. Es interesante cambiar estos

parámetros y observar los cambios para familiarizarse con estos.

Cielo

Una vez con nuestro Sol iluminando todo, es hora de añadir un cielo.

Edit>Render Settings nos mostrará una serie de características que

se harán visibles a la hora de renderizar cada escena y cámara. Como

solo nos interesa el cielo, de momento, localize el parámetro “SkyBox

material” y haga click en el pequeño icono circular a su derecha.

Page 18: 1.  tutorial unity3d introducción

Centro de Estudios de Ingeniería de Software

LABORATORY OPENSOURCE SOLUTION

Esto nos abrirá una pequeña ventana donde podremos seleccionar el

cielo (o caja contenedora de nuestro escenario).

Nota: Si no aparecen cielos es porque probablemente no se hayan

importado desde un principio (solo añadimos controladores de

personaje). De ser así, haciendo click derecho en la vista de Proyecto,

para luego seleccionar Import Packages>SkyBoxes hará que

podamos tenerlos a disposición.

Guardando el trabajo

En estos momentos ya podemos guardar nuestras escenas y

proyectos. Genéricamente, Unity guarda el File>Save Scene o

File>Save Project, dependiendo de que queramos guardar.

Para poder crear un ejecutable y jugar el videojuego, se puede ir a

File>Build Settings, y en la vista de Inspector poder seleccionar el

parámetro Run in Background y habilitarlo, si no lo estuviese. Luego,

hacer click en Fil>Build para poder importar nuestro juego a una

localización conocida (recuerde seleccionar la plataforma).