Fundamentos de Unitycursosmspve.azurewebsites.net/contenido/FundamentosUnity.pdfdocumentos y activos...

22
Esta obra de Moises Chirinos está bajo una Licencia CreativeCommons Atribución-CompartirIgual 4.0 Internacional. Fundamentos de Unity Esta sección la dedicare únicamente a conceptos de Unity, posteriormente se explicara la interfaz sobre la marcha. Conceptos Básicos Vamos por partes, cada uno de los siguientes conceptos esta referenciado exclusivamente a Unity olvídense de cualquier conocimiento de otra carrera, en particular aquellos que vengan de programación orientada a objetos. Proyecto El proyecto contiene todos los elementos del juego, es decir cada uno de los documentos y activos del juego (Assets, es decir modelos en 3D y texturas 2D, música y otros.) tienden a ser únicos e independientes, de forma que un proyecto no debería en la mejor de las circunstancias relacionarse con otro. Escena (Scenes) La escena es la que nos permite navegar por el ambiente del juego. Una escena es equivalente a un nivel. Y contiene todos los elementos que interactúan en el. Aparte contiene o permite realizar operaciones básicas con los elementos. Rotar, escalar, posicionar y seleccionar. Navegación La navegación nos permite explorar el nivel a través de diferentes escenas, e incluso ver el juego desde el punto de vista del usuario. Viewports Es la sección de la pantalla por la cual se muestra lo que la cámara ve. Técnicamente es un rectángulo en 2D que se usa para proyectar una escena en 3D. Podemos considerar que en un juego de pantalla completa que el viewport es toda la pantalla. Aunque se pueden definir muchos.

Transcript of Fundamentos de Unitycursosmspve.azurewebsites.net/contenido/FundamentosUnity.pdfdocumentos y activos...

Page 1: Fundamentos de Unitycursosmspve.azurewebsites.net/contenido/FundamentosUnity.pdfdocumentos y activos del juego (Assets, es decir modelos en 3D y texturas 2D, música y otros.) tienden

Esta obra de Moises Chirinos está bajo una Licencia CreativeCommons Atribución-CompartirIgual 4.0 Internacional.

Fundamentos de Unity

Esta sección la dedicare únicamente a conceptos de Unity, posteriormente se explicara la

interfaz sobre la marcha.

Conceptos Básicos

Vamos por partes, cada uno de los siguientes conceptos esta referenciado

exclusivamente a Unity olvídense de cualquier conocimiento de otra carrera, en

particular aquellos que vengan de programación orientada a objetos.

Proyecto

El proyecto contiene todos los elementos del juego, es decir cada uno de los

documentos y activos del juego (Assets, es decir modelos en 3D y texturas 2D,

música y otros.) tienden a ser únicos e independientes, de forma que un proyecto no

debería en la mejor de las circunstancias relacionarse con otro.

Escena (Scenes)

La escena es la que nos permite navegar por el ambiente del juego. Una

escena es equivalente a un nivel. Y contiene todos los elementos que interactúan en

el. Aparte contiene o permite realizar operaciones básicas con los elementos. Rotar,

escalar, posicionar y seleccionar.

Navegación La navegación nos permite explorar el nivel a través de diferentes escenas, e

incluso ver el juego desde el punto de vista del usuario.

Viewports Es la sección de la pantalla por la cual se muestra lo que la cámara ve.

Técnicamente es un rectángulo en 2D que se usa para proyectar una escena en 3D.

Podemos considerar que en un juego de pantalla completa que el viewport es toda la

pantalla. Aunque se pueden definir muchos.

Page 2: Fundamentos de Unitycursosmspve.azurewebsites.net/contenido/FundamentosUnity.pdfdocumentos y activos del juego (Assets, es decir modelos en 3D y texturas 2D, música y otros.) tienden

Esta obra de Moises Chirinos está bajo una Licencia CreativeCommons Atribución-CompartirIgual 4.0 Internacional.

Activos (Assets)

Un Activo (voy a mantener la nomenclatura del curso en español, sin

embargo siempre colocare el nombre en ingles para que en el momento que usen

otros tutoriales tenga idea de que es cada cosa) es cualquier elemento externo, ya

sea una textura 2D o sprite, o un modelo en 3D, o un archivo de sonido. El cual se

va a utilizar y ejercer acciones sobre el juego.

GameManager Es un patrón usado normalmente al crear videojuegos, que nos permite a los

desarrolladores y/o usuarios utilizar todo el contenido fuera del juego y todo el

contenido del juego, de forma controlada.

GameObjects En unity es el objeto básico que hereda de la Clase objeto. Cada elemento

del juego es un Gameobject.

GameStateManager Otro concepto usado para transferir estados a través del juego. Al hablar de

estados me refiero a datos como la vida del jugador, puntación, enemigos restantes,

a través de diferentes escenarios y/o pantallas. Como Juego > Pausa > juego > menú

principal > Nivel

Transformaciones (transforms) Es una operación matemática que puede ser aplicada sobre los GameObjects

de forma que el objeto cambie su forma predeterminada. Estas operaciones son

utilizadas normalmente para modificar el tamaño. Matemáticamente estamos

hablando de transformaciones de matrices.

Page 3: Fundamentos de Unitycursosmspve.azurewebsites.net/contenido/FundamentosUnity.pdfdocumentos y activos del juego (Assets, es decir modelos en 3D y texturas 2D, música y otros.) tienden

Esta obra de Moises Chirinos está bajo una Licencia CreativeCommons Atribución-CompartirIgual 4.0 Internacional.

Rotación (Rotation)

Es una operación básica en el algebra de matrices que se aplica sobre un

gameobject, de forma tal que el elemento sea capaz de girar sobre un punto de

referencia (generalmente su propio eje)

Traslación (Traslations o positions) Es una operación matricial utilizada para mover un Gameobject en el

espacio.

Scriptable Object Es un gameobject especializado únicamente para guardar contenido.

Componentes (Components) Son las acciones que se agregan a los Gameobject, un Componente se puede

ver como un fragmento de código que agrega funcionalidad determinada a un

gameobject. Un componente no se crea, es agregado automáticamente al

gameobject.

Cámaras Una cámara, es un punto de visión para la escena. Es decir desde una cámara

podemos proporcionarle al jugador visión en un cuadro 2D que muestra la ejecución

de acciones en la escena.

Diferencias entre una cámara y un Viewport Existen sutiles diferencias pero las trabajaremos así. Viewport es el punto

donde se mostraran los eventos de la cámara al jugador en la pantalla. Pueden

existir cualquier cantidad de Viewports enlazados a una misma cámara, el jugador

vera la combinación de todos ellos. Sin embargo una cámara, es el filtro que nos

permite visualizar lo que sucede en el mundo 3D del videojuego, pueden existir

muchas cámaras en muchos ángulos, o la cámara puede tener movimiento libre.

Justo como en las series de televisión.

Page 4: Fundamentos de Unitycursosmspve.azurewebsites.net/contenido/FundamentosUnity.pdfdocumentos y activos del juego (Assets, es decir modelos en 3D y texturas 2D, música y otros.) tienden

Esta obra de Moises Chirinos está bajo una Licencia CreativeCommons Atribución-CompartirIgual 4.0 Internacional.

Texturas 2D

Son todos los activos que provienen de imágenes planas.

Figuras y Geometría (Meshes & Geometry) Los Meshes, o Mesh en ingles son modelos en 3D que toman parte del

juego, cada componente de un modelo, puede ser considerado un Mesh, a estos se

les aplica geometría de matrices Traslación, Rotación, Transformación, para realizar

diferentes acciones en el juego.

Scripting Es el proceso de generar código de comportamiento de los GameObjects.

Creación del Proyecto - Practica 1

Esta práctica la usaremos para acercarnos a la interfaz de Unity, de forma

que empezaremos con el desarrollo de nuestro juego. En este curso se va a

desarrollar el juego que definieron en las especificaciones del juego. Forma tal que

puedan ver la experiencia de desarrollo en vivo en sincronía con ustedes.

El paso 1 es crear el proyecto. Si no han abierto unity, al hacerlo aparecerá este

cuadro, si ya crearon un proyecto de prueba. presionen File -> New Project.

Nombre

Tipo Proyecto

Page 5: Fundamentos de Unitycursosmspve.azurewebsites.net/contenido/FundamentosUnity.pdfdocumentos y activos del juego (Assets, es decir modelos en 3D y texturas 2D, música y otros.) tienden

Esta obra de Moises Chirinos está bajo una Licencia CreativeCommons Atribución-CompartirIgual 4.0 Internacional.

Imagen elaborada por Moises Chirinos

En esta ventana emergente seleccionaran únicamente la ruta de instalación Junto

con el nombre del proyecto. Y en el cuadro desplegable abajo a la izquierda

colocaran 2D. No seleccionen ningún paquete, esto se hará mientras se desarrolla.

Imagen elaborada por Moises Chirinos

Seguido verán la interfaz de unity, como la de la foto arriba. Ahora pasare a

explicar cada sección, (Esta apariencia es totalmente personalizable, yo para el

curso usare la de defecto de forma tal que no tengan problema en encontrar las

herramientas)

Page 6: Fundamentos de Unitycursosmspve.azurewebsites.net/contenido/FundamentosUnity.pdfdocumentos y activos del juego (Assets, es decir modelos en 3D y texturas 2D, música y otros.) tienden

Esta obra de Moises Chirinos está bajo una Licencia CreativeCommons Atribución-CompartirIgual 4.0 Internacional.

Imagen Elaborada por Moises Chirinos

Escena | Juego (Game)

Inspector

Explorador de Proyecto | Consola

Jerarquia

ToolBar

Menu

Page 7: Fundamentos de Unitycursosmspve.azurewebsites.net/contenido/FundamentosUnity.pdfdocumentos y activos del juego (Assets, es decir modelos en 3D y texturas 2D, música y otros.) tienden

Esta obra de Moises Chirinos está bajo una Licencia CreativeCommons Atribución-CompartirIgual 4.0 Internacional.

Escena (Scene)

Es donde se crearan los niveles, es el explorador de nuestro mundo, donde

podemos revisar los elementos en diferentes perspectivas

Imagen elaborada por Moises Chirinos

1) Forma de visualizar la escena, según su configuración los GameObjects se

mostraran en esta vista de diferentes formas.

2) Formato de Color utilizado

3) Tipo de perspectiva, Activar Sonido, Activar Iluminación, Activar Efectos

4) Gizmos son opciones especiales para la carga y visualización de la escena.

5) Angulo de visión de la Cámara.

Nos permite hacer una visión del juego en sus dientes resoluciones y estados.

Reproducirá la experiencia del jugador de la forma más acertada posible.

1 2 4

5

3

Page 8: Fundamentos de Unitycursosmspve.azurewebsites.net/contenido/FundamentosUnity.pdfdocumentos y activos del juego (Assets, es decir modelos en 3D y texturas 2D, música y otros.) tienden

Esta obra de Moises Chirinos está bajo una Licencia CreativeCommons Atribución-CompartirIgual 4.0 Internacional.

Imagen elaborada por Moises Chirinos

Perspectiva Ortogonal en 2D

Imagen elaborada por Moises Chirinos

Menú de Gizmos

Page 9: Fundamentos de Unitycursosmspve.azurewebsites.net/contenido/FundamentosUnity.pdfdocumentos y activos del juego (Assets, es decir modelos en 3D y texturas 2D, música y otros.) tienden

Esta obra de Moises Chirinos está bajo una Licencia CreativeCommons Atribución-CompartirIgual 4.0 Internacional.

Game

Imagen elaborada por Moises Chirinos

1) Tipo de Resolución

2) Tipo de pantalla

3) Estados del los FPS, Iluminación y otros del juego

4) Opciones para la visualización

La pantalla de juego nos permite ver el juego desde la perspectiva del

jugador, incluyendo los datos correspondientes al desarrollo.

Menu

Imagen elaborada por Moises Chirinos

Se encuentran todas las diferentes opciones de unity y su interfaz para el

trabajo

Toolbar

Imagen elaborada por Moises Chirinos

Se encuentras las opciones para manipular el nivel y otros

1

2 3

4

Page 10: Fundamentos de Unitycursosmspve.azurewebsites.net/contenido/FundamentosUnity.pdfdocumentos y activos del juego (Assets, es decir modelos en 3D y texturas 2D, música y otros.) tienden

Esta obra de Moises Chirinos está bajo una Licencia CreativeCommons Atribución-CompartirIgual 4.0 Internacional.

Hierarchy

Imagen elaborada por Moises Chirinos

Lista de los GameObjects colocados en la escena que se está utilizando.

Page 11: Fundamentos de Unitycursosmspve.azurewebsites.net/contenido/FundamentosUnity.pdfdocumentos y activos del juego (Assets, es decir modelos en 3D y texturas 2D, música y otros.) tienden

Esta obra de Moises Chirinos está bajo una Licencia CreativeCommons Atribución-CompartirIgual 4.0 Internacional.

Project

Donde se crean, organizan y se accede a los Activos (Assets) del juego.

Desde Elementos 3D, a texturas 2D y scripts .

Page 12: Fundamentos de Unitycursosmspve.azurewebsites.net/contenido/FundamentosUnity.pdfdocumentos y activos del juego (Assets, es decir modelos en 3D y texturas 2D, música y otros.) tienden

Esta obra de Moises Chirinos está bajo una Licencia CreativeCommons Atribución-CompartirIgual 4.0 Internacional.

Inspector

Imagen elaborada por Moises Chirinos

Page 13: Fundamentos de Unitycursosmspve.azurewebsites.net/contenido/FundamentosUnity.pdfdocumentos y activos del juego (Assets, es decir modelos en 3D y texturas 2D, música y otros.) tienden

Esta obra de Moises Chirinos está bajo una Licencia CreativeCommons Atribución-CompartirIgual 4.0 Internacional.

Desde el inspector se puede configurar cada una de los Gameobject y/o

activos. Se pueden hacer transformaciones a los objetos, y ajustar

configuraciones entre otras actividades.

Consola

Imagen elaborada por Moises Chirinos

Bueno con esto ya crearon su primer proyecto. Ahora empecemos a utilizar

sus ventajas.

Mundo del Juego – Practica 2

Esta sección la utilizaremos para agregar y modificar el mundo del juego, en su

expresión mas básica. Y Algunos trucos que necesitaran a lo largo del desarrollo.

En esta sección NO se hablara de Scrolling, Layers, Scripts o Colisiones. Esto

es para futuras secciones particulares.

En el Project Explorer (Explorador de Proyectos) Presionamos clic derecho sobre

Assets ->Import New Asset. y Buscamos la textura 2D que deseamos colocar como

fondo de pantalla.

Page 14: Fundamentos de Unitycursosmspve.azurewebsites.net/contenido/FundamentosUnity.pdfdocumentos y activos del juego (Assets, es decir modelos en 3D y texturas 2D, música y otros.) tienden

Esta obra de Moises Chirinos está bajo una Licencia CreativeCommons Atribución-CompartirIgual 4.0 Internacional.

Imagen elaborada por Moises Chirinos

Imagen elaborada por Moises Chirinos

Page 15: Fundamentos de Unitycursosmspve.azurewebsites.net/contenido/FundamentosUnity.pdfdocumentos y activos del juego (Assets, es decir modelos en 3D y texturas 2D, música y otros.) tienden

Esta obra de Moises Chirinos está bajo una Licencia CreativeCommons Atribución-CompartirIgual 4.0 Internacional.

Imagen elaborada por Moises Chirinos

Y listo Unity nos importara el contenido a nuestro proyecto, y creara todas las

referencias para poder utilizarlo sin poder dañar la imagen original.

ya que tenemos el fondo agregado en nuestro Proyecto, es hora de agregarlo a la

escena. Es sumamente simple Arrastre el Paisaje hacia la Escena y listo.

Ahora con el fondo en su "lugar" Vamos a configurar la resolución para nuestro

juego. De la siguiente forma hacemos clic En la pestaña "Game" y revisamos las

resoluciones, si le damos al botón + podemos colocar una resolución especializada,

En Windows 8 las mas mínimas son

Estándar = 1024 x 768

Resolución de pantalla para Snap = 1366x768

Page 16: Fundamentos de Unitycursosmspve.azurewebsites.net/contenido/FundamentosUnity.pdfdocumentos y activos del juego (Assets, es decir modelos en 3D y texturas 2D, música y otros.) tienden

Esta obra de Moises Chirinos está bajo una Licencia CreativeCommons Atribución-CompartirIgual 4.0 Internacional.

Imagen elaborada por Moises Chirinos

Obtendremos lo siguiente al configurar la necesaria.

Imagen elaborada por Moises Chirinos

Page 17: Fundamentos de Unitycursosmspve.azurewebsites.net/contenido/FundamentosUnity.pdfdocumentos y activos del juego (Assets, es decir modelos en 3D y texturas 2D, música y otros.) tienden

Esta obra de Moises Chirinos está bajo una Licencia CreativeCommons Atribución-CompartirIgual 4.0 Internacional.

Muy bien ahora hay que configurar la cámara (para situar todo el espacio y

asegurarnos de la perspectiva correcta).

Vamos al Hierarchy seleccionamos Main Cámara. Y en el inspector verificamos que

tenga los siguientes datos

Imagen elaborada por Moises Chirinos

Como vemos aun hay un fondo azul rodeando a la imagen de fondo, de forma tal

que pasaremos a editarla para que se adapte al tamaño de la pantalla. Vamos otra

vez al Hierarchy pero esta vez seleccionamos la imagen de fondo. Y modificamos la

propiedad "Scale" hasta que se coloque

En el caso de este ejemplo será X = 1, Y = 2, Z = 0

La posición del fondo debería ser siempre X = 0, Y = 0, Z = 0

Page 18: Fundamentos de Unitycursosmspve.azurewebsites.net/contenido/FundamentosUnity.pdfdocumentos y activos del juego (Assets, es decir modelos en 3D y texturas 2D, música y otros.) tienden

Esta obra de Moises Chirinos está bajo una Licencia CreativeCommons Atribución-CompartirIgual 4.0 Internacional.

Imagen elaborada por Moises Chirinos

Sin embargo existe una opción mejor. Podemos cambiar el tamaño de visión de la

cámara. De forma tal que nuestra textura (que probablemente sea un mapa de bits)

no se distorsione.

Para cambiar el tamaño de la cámara la seleccionamos y en el inspector

modificamos el Size y el Ratio x Size.

Imagen elaborada por Moises Chirinos

Aspect Ratio X Size

Size

Page 19: Fundamentos de Unitycursosmspve.azurewebsites.net/contenido/FundamentosUnity.pdfdocumentos y activos del juego (Assets, es decir modelos en 3D y texturas 2D, música y otros.) tienden

Esta obra de Moises Chirinos está bajo una Licencia CreativeCommons Atribución-CompartirIgual 4.0 Internacional.

Por lo tanto, si la imagen posee un alto de 500. La mitad seria 250, cierto? el

problema es que cada imagen posee una propiedad llamada Pixel to Unit.

Seleccionen en Project a la imagen de Fondo Principal

Imagen elaborada por Moises Chirinos

Como verán en Pixels To Unit aparece 100. Esto quiere decir que cada 100 Pixeles

va a existir una unidad. Por lo tanto se cumple la siguiente proporción

Pixel To Units X Scale Width Calculation Width (Units)

100 1.0 500/100 * 1.0 5 units

100 0.5 500/100 * 0.5 2.5 units

100 2.0 500/100 * 2.0 10 units

50 1.0 500/ 50 * 1.0 10 units

50 0.5 500/ 50 * 0.5 5 units

50 2.0 500/50 * 2.0 20 units

En este caso la imagen es de 499 pixeles de altura. Por lo tanto colocaremos el Size

en 2.49

Page 20: Fundamentos de Unitycursosmspve.azurewebsites.net/contenido/FundamentosUnity.pdfdocumentos y activos del juego (Assets, es decir modelos en 3D y texturas 2D, música y otros.) tienden

Esta obra de Moises Chirinos está bajo una Licencia CreativeCommons Atribución-CompartirIgual 4.0 Internacional.

Imagen elaborada por Moises Chirinos

Noten que el cuadro de la cámara se reduce sobre el marco de la imagen (Esto es lo

que queremos)

Imagen elaborada por Moises Chirinos

Page 21: Fundamentos de Unitycursosmspve.azurewebsites.net/contenido/FundamentosUnity.pdfdocumentos y activos del juego (Assets, es decir modelos en 3D y texturas 2D, música y otros.) tienden

Esta obra de Moises Chirinos está bajo una Licencia CreativeCommons Atribución-CompartirIgual 4.0 Internacional.

Como mejorar la compresión de las imágenes Seleccionamos la Imagen de Background en el Project browser, nos vamos al

inspector y vemos sus import setting, pero esta vez notemos el preview pane. ¿Que

colocaremos? El Max Size y el format, en los import Settings.

Cada uno de los tabs en estos import nos permite controlar el comportamiento de la

imagen para los diferentes dispositivos. Y el preview Pane nos permite ver los

cambios (esta ventana se puede maximizar y minimizar).

Así que para cada uno de sus proyectos los dejo experimentar con las diferentes

imágenes.

Supongan el siguiente caso, que poseen una imagen de 2048 x 640. Pero siempre la

configuración por defecto es de 1024x320. Es decir la imagen fue recortada a la

mitad por unity y con ellos la alta definición de la misma (en dado caso)

Esto también sucede a la inversa, si la imagen es de 1024x320 y colocamos la

resolución en 2048. Unity transformara la imagen de forma tal que se pixelara. Lo

ideal para texturas de fondo, es conseguirlas de la resolución exacta para una

importación sin problemas de conversión.

Otra nota es que ciertos formatos de color solo funciona cuando la resolución de la

imagen es un múltiplo de 4.

Page 22: Fundamentos de Unitycursosmspve.azurewebsites.net/contenido/FundamentosUnity.pdfdocumentos y activos del juego (Assets, es decir modelos en 3D y texturas 2D, música y otros.) tienden

Esta obra de Moises Chirinos está bajo una Licencia CreativeCommons Atribución-CompartirIgual 4.0 Internacional.

Imagen elaborada por Moises Chirinos

Cada imagen según el formato definido, cambiara su tamaño y esto también se ve

en el cuadro de preview.