Está en la página 1de 9

INGENIERIA DE SOFTWARE

Asignatura: Sistemas Multimediales


Nrc: 2297
Docente: Ing. Marcelo Alvarez
Integrantes:
Muñoz Ricardo
Navas Jhonatan
Toaquiza Oscar

Desarrollo de un terreno virtual en Unity

1
LATACUNGA-NOVIEMBRE-2018
I. TEMA

Desarrollo de un terreno virtual en Unity


II. INTRODUCCIÓN

El presente documento detalla la elaboración de terreno virtual en el motor de videojuegos Unity, el cual será
utilizado como base para crear un juego lineal tipo laberinto.

Para crear el terreno se utilizará las herramientas propias del motor Unity, es uno de los motores de videojuegos
multiplataforma más utilizados para el desarrollo de juegos, ya que tiene incorporado varias herramientas de
desarrollo lo que facilita la implementación de efectos, además utiliza lenguaje C# lo cual ayuda a crear scrips para
cada objeto, dicho objeto puede tener varias funcionalidades de acuerdo a la programación implementada.

El sistema del Terrain de Unity le permite a usted agregar vastos paisajes a sus juegos. En el tiempo de ejecución, la
renderización de terreno es altamente optimizada para una eficiencia de renderización mientras que, en el editor,
una selección de herramientas está disponible para crear terrenos de manera fácil y rápida.

Adicionalmente se implementará un personaje que puede interactuar con el terreno y al menos un objeto del mismo
el cual será un archivo externo.

Debemos tomar en cuenta que al momento de desarrollar el terreno se utilizó la creatividad integra de los autores
en base a la Universidad de las Fuerzas Armadas ESPE campus Belisario Quevedo.

III. OBJETIVOS
a) Objetivo General

Desarrollar un terreno virtual en base a la Universidad de las fuerzas Armadas Espe campus Belisario Quevedo con
ayuda de las herramientas de Unity.

b) Objetivos Específicos

 Analizar el tipo de entorno, materiales, y recursos necesarios para el desarrollo.


 Modelar el terreno y las edificaciones del entorno virtual.
 Obtener el personaje para que interactúe con el entorno.
 Programar los movimientos y colisiones con el entorno

IV. MARCO TEORICO


a) Unity

Unity es un motor de videojuego multiplataforma creado por Unity Technologies. Unity está disponible como
plataforma de desarrollo para Microsoft Windows, OS X, Linux. La plataforma de desarrollo tiene soporte de
compilación con diferentes tipos de plataformas (Véase la sección Plataformas objetivo). A partir de su versión 5.4.0
ya no soporta el desarrollo de contenido para navegador a través de su plugin web, en su lugar se utiliza WebGL. Unity
tiene dos versiones: Unity Professional (pro) y Unity Personal.1

b) Acciones y herramientas en Unity


Cámaras

1
«Unity 4 Details». Forum.unity3d.com. Consultado el 7 de noviembre de 2012.
2
Una escena en Unity se crea mediante el posicionamiento y movimiento de objetos en un espacio tridimensional.
Puesto que la pantalla del espectador es bidimensional, se necesita alguna forma de capturar una vista y “aplanarla”
para mostrarla. Esto se logra utilizando Cameras (Cámaras).

Una cámara es un objeto que define una vista en una escena. La posición dl objeto define el punto de vista, mientras
que sus ejes Z e Y definen la dirección de la vista y la parte superior de la pantalla respectivamente. El Camera
component también define el tamaño y la forma de la región que recae dentro de la vista. Con estos parámetros
establecidos, la cámara puede mostrar lo que “ve” actualmente en la pantalla. Si el objeto de cámara se mueve y rota,
la vista mostrada también se moverá y rotará en consecuencia.

Materiales, Shaders & Texturas

l renderizado en Unity se hace con Materials, Shaders y Textures.

Hay una relación cercana entre Materiales, Shaders y las Texturas en Unity.

Materials son definiciones acerca de cómo la superficie debería ser renderizada, incluyendo referencias a texturas
utilizadas, información del tiling (suelo de baldosas), tines de color y más. La opción disponible para un material
depende en qué shader del material está utilizando.

Shaders son scripts pequeños que contienen los cálculos de matemáticas y algoritmos para calcular el color de cada
pixel renderizado, basándose en el input de iluminación y la configuración del Material.

Textures son imágenes bitmap. Un material contiene referencias a texturas, para que el shader del Material puede
utilizar las texturas mientras calcula el color de la superficie de un objeto. Adicionalmente a el color básico (albedo)
de la superficie de un objeto, las texturas pueden representar otros aspectos de la superficie de un material tal como
su reflectividad o rugosidad.

Un material especifica un shader en ser utilizado, y el shader utilizado determina qué opciones están disponibles en el
material. Un shader especifica una o más variables de textura que espera utilizar, y el inspector del Material de Unity
le permite a usted asignar sus propios assets de textura a estas variables de textura.

Para la mayoría del renderizado normal - entendiendo por tales personajes, escenario, entorno, objetos sólidos y
transparentes, superficies suaves y duras etc., el Standard Shader por lo usual es la mejor decisión. Este es un shader
altamente personalizado el cual es capaz de renderizar muchos tipos de superficie en una manera bastante real.

Hay otras situaciones dónde un diferente shader integrado, o incluso un shader escrito personalizado podría ser
apropiado - tal como líquidos, follaje, vidrio de refracción, efectos de partícula, caricaturesco, ilustrativo u otros
efectos artísticos, u otros efectos especiales como visión nocturna, visión de calor, o visión de rayos x, etc.

El Motor del Terreno


El sistema del Terrain de Unity le permite a usted agregar vastos paisajes a sus juegos. En el tiempo de ejecución, la
renderización de terreno es altamente optimizada para una eficiencia de renderización mientras que, en el editor,
una selección de herramientas está disponible para crear terrenos de manera fácil y rápida. Esta sección explica las
varias opciones disponibles para terrenos y cómo hacer uso de estos.

Editor de Árboles
Unity proporciona una herramienta llamada Tree Editor que permite a usted diseñar árboles directamente dentro del
editor. Esto es muy útil cuando usted quiere crear bosques y una selva detallada con diferentes tipos de árboles y
variaciones.
Desde Unity 5, usted puede utilizar SpeedTree Modeler de IDV, Inc. para crear árboles con efectos visuales avanzados
como una transición suave LOD, un billboarding rápido y una animación de viento natural.

3
Sistema de Partículas
En un juego 3D, la mayoría de los personajes, accesorios y elementos de escenario son representados como meshes,
mientras que un juego 2D utiliza sprites para estos propósitos. Los Meshes y Sprites son la manera ideal de representar
objetos “sólidos” con una figura bien definida. Hay otras entidades en los juegos, no obstante, estas son fluidas e
intangibles en la naturaleza y, por consiguiente, son difícil de representar utilizando Meshes o Sprites. Para efectos
como líquidos en movimiento, humo, nubes, llamas y hechizos mágicos, hay un enfoque diferente a los gráficos
conocidos como particle systems que pueden ser utilizados para capturar la fluidez inherente y la energía.

Texturas

Una textura es solamente una imagen bitmap estándar que es aplicada sobre la superficie del mesh. Usted puede
pensar de una imagen de textura como si fuera impresa sobre una lámina de goma que se estira y es clavada al mesh
en posiciones apropiadas. El posicionamiento de la textura es hecho con un software de modelado 3D que es usado
para crear el mesh.

Las texturas son aplicadas a objetos usando Materials. Los Materiales usan programas especializados de gráficas
llamados Shaders para renderizar una textura en la superficie del mesh. Los Shaders pueden implementar efectos de
iluminación y coloreado para simular superficies brillantes o desiguales entre otras cosas. Ellos pueden también hacer
uso de dos o más texturas a la vez, combinándolas para una flexibilidad aún mayor.

Una vez tu textura haya sido importada, debes asignarla a un Material. El material puede entonces ser aplicado a un
mesh, Particle System o GUI Texture. Usando los Import Settings, también se puede convertir a un Cubemap o
Normalmap para diferentes tipos de aplicaciones en el juego.

Sondas de reflexión
Las películas y animaciones CG suelen presentar reflexiones muy realistas, que son importantes para dar una sensación
de "conexión" entre los objetos de la escena. Sin embargo, la precisión de estas reflexiones conlleva un alto costo en
tiempo de procesador y, si bien esto no es un problema para las películas, limita severamente el uso de objetos
reflectantes en juegos en tiempo real.

Tradicionalmente, los juegos han usado una técnica llamada mapeo de reflexión para simular los reflejos de los objetos
mientras se mantiene la sobrecarga de procesamiento a un nivel aceptable. Esta técnica supone que todos los objetos
reflectantes en la escena pueden "ver" (y, por lo tanto, reflejar) exactamente el mismo entorno. Esto funciona bastante
bien para el personaje principal del juego (un coche brillante, por ejemplo) si está en un espacio abierto, pero no es
convincente cuando el personaje pasa a un entorno diferente; parece extraño si un automóvil conduce a un túnel,
pero el cielo todavía se ve visiblemente reflejado en sus ventanas.

Unity mejora el mapeo de reflexión básico mediante el uso de sondas de reflexión, que permiten muestrear el entorno
visual en puntos estratégicos de la escena. Por lo general, debe colocarlos en todos los puntos donde la apariencia de
un objeto reflectante cambie notablemente (por ejemplo, túneles, áreas cerca de edificios y lugares donde cambia el
color del suelo). Cuando un objeto reflectante pasa cerca de una sonda, la reflexión muestreada por la sonda se puede
utilizar para el mapa de reflexión del objeto. Además, cuando varias sondas están cerca, la Unidad puede interpolar
entre ellas para permitir cambios graduales en los reflejos. Por lo tanto, el uso de sondas de reflexión puede crear
reflexiones bastante convincentes con una sobrecarga de procesamiento aceptable.

Audio
Un juego estaría incompleto sin algún tipo de audio, ya sea la música de fondo o efectos de sonido. El sistema de audio
de Unity es flexible y poderoso. Puede importar la mayoría de formatos estándares de audio y tiene características
sofisticadas para reproducir sonidos en un espacio 3D, opcionalmente con efectos como echo y filtración aplicadas.
Unity también puede grabar audio de cualquier micrófono disponible de la máquina del usuario para uso durante el
modo de juego o para almacenamiento y transmisión.
En la vida real, los sonidos son emitidos por objetos y escuchados por listeners. La manera en la que el sonido es
percibido depende de una cantidad de factores. Un listener puede decir en qué dirección un sonido viene y también
puede tener algún sentido de su distancia por su intensidad y calidad. Una fuente de audio que se mueve rápidamente
4
(como una bomba que cae o un carro de policia que pasa) va a cambiar en el tono en la medida que se mueva debido
al Efecto Doppler. Además, los alrededores van a afectar la manera en que el sonido se refleja, entonces una voz
dentro de una cueva va a tener un hecho, pero, la misma voz en el campo abierto no lo tendrá.
Para simular los efectos de la posición, Unity requiere que los sonidos sean originados de Audio Sources adjuntos a los
objetos. Los sonidos emitidos luego son recogidos por un Audio Listener adjuntado a otro objeto, en la mayoría es la
cámara principal. Unity puede simular los efectos de la distancia y la posición de una fuente del objeto listener y
reproducirlos al usuario de acuerdo a esto. La velocidad relativa de los objetos fuente(source) y listener puede también
ser utilizada para simular el Efecto Doppler para agregar realismo.

Unity no puede calcular los echos solo con la geometría de la escena, pero usted puede simularlos al agregar Audio
Filters a los objetos. Por ejemplo, usted puede aplicar el Echo Filter a un sonido que supuestamente viene dentro de
una cueva. En situaciones dónde los objetos pueden moverse adentro y afuera de un lugar con un fuerte echo, usted
puede agregar un Reverb Zone a la escena. Por ejemplo, su juego puede involucrar carros que se mueven a través de
un túnel. Si usted coloca un reverb zone dentro del túnel, el sonido de los motores de los carros va a comenzar hacer
echo justo cuando entran y el echo morirá cuando ellos salgan al otro lado del túnel.
Unity puede importar archivos audio en formatos AIFF, WAV, MP3 y Ogg de la misma manera que otros assets,
simplemente arrastrando los archivos al panel del Proyecto. Importar un archivo audio crea un Audio Clip que puede
ser arrastrado a un Audio Source o usado por un script. La página del Audio Clip tiene más detalles acerca las opciones
de importación disponible para archivos audio.

Para la música, Unity también soporta tracker modules, que utiliza muestras cortas de audio como “instrumentos”
que están arreglados para reproducir melodías. Los trackers modules pueden ser importados de archivos .xm, .mod,
.it, y .s3m pero son utilizados de la misma manera que clips de audio ordinarios.2

V. DESARROLLO DE LA ACTIVIDAD

Para elaborar esta práctica deberá tener listos todos los elementos necesarios para realizar las actividades propuestas,
se refiere a elementos al material que se va a utilizar, estos pueden ser: modelos, audios, entre otros. Además de
realzar ciertos pasos necesarios para crear el proyecto que se desea implementar.

1. Elaboración del terreno


1.1. Dirigir el mouse hacia la barra de herramientas.
1.2. Escoger la opción GameObject > 3D Object > Terrain
1.3. Didir hacia el inspector en donde se mostrará herramientas que permitieran agregar características al
terreno
1.4. Colocar una textura en el terreno generado, a través de la pestaña Create > Material y añadir la
característica Móvil > Bumped Diffuse.

2
https://support.unity3d.com/hc/en-us/articles/360001230506
5
2. Inserción de arboles
Luego de haber descargado e importado este elemento se procederá a realizas estos pasos:
2.1. Buscar la ruta en donde se importó ese elemento, en nuestro caso es Assets > Darth_Artisa > Free _Treess
2.2. Escoger el elemento a añadir en la scena y seleccionar el sitio más adecuado a incrustar dicho elemento.

3. Inserción de autos
Luego de haber descargado e importado este elemento se procederá a realizas estos pasos:
3.1. Buscar la ruta en donde se importó ese elemento, en nuestro caso es Assets > TCZ Cars Free
3.2. Escoger el elemento a añadir en la scena y seleccionar el sitio más adecuado a incrustar dicho elemento.

4. Inserción de casas
Luego de haber descargado e importado este elemento se procederá a realizas estos pasos:
4.1. Buscar la ruta en donde se importó ese elemento, en nuestro caso es Assets > MedevialTownExteriors
4.2. Escoger el elemento a añadir en la scena y seleccionar el sitio más adecuado a incrustar dicho elemento.

6
5. Inserción Personajes
Luego de haber descargado e importado este elemento se procederá a realizas estos pasos:
5.1. Buscar la ruta en donde se importó ese elemento, en nuestro caso es Assets > Low Poly Animated Poeple
5.2. Escoger el elemento a añadir en la scena y seleccionar el sitio más adecuado a incrustar dicho elemento.

6. Creación de Edificios
6.1. Dirigir el mouse hacia la pestaña GameObject > 3D Object > Cube
6.2. Escoger el tamaño, posición y grado de rotación e insertar hasta tener los elementos deseados.
6.3. Asignar un material a dicha estructura.

7. Inserción de calles
7.1. Dirigir el mouse hacia la pestaña GameObject > 3D Object > Planos
7.2. Escoger el tamaño, posición y grado de rotación e insertar hasta tener los elementos deseados.
7.3. Asignar un material a dicha estructura.

7
8. Inserción de monedas y componentes
Luego de haber descargado e importado este elemento se procederá a realizas estos pasos:
8.1. Buscar la ruta en donde se importó ese elemento, en nuestro caso es Assets > Animated 2D Coins > Prefab
8.2. Escoger el elemento a añadir en la scena y seleccionar el sitio más adecuado a incrustar dicho elemento.
8.3. Dirigir el mouse hacia el Inspector > Add Component y agregar el componente capsule colider

9. Inserción de una cancha de futbol


9.1. Dirigir el mouse hacia la pestaña GameObject > 3D Object > Planos
9.2. Escoger el tamaño, posición y grado de rotación e insertar hasta tener los elementos deseados.
9.3. Asignar un material a dicha estructura.
9.4. Añadir el elemento arco encima de plano

10. Generación de scrip para personaje


10.1. Clickear el botón derecho del boto y escoger lo siguiente créate > C# Script
10.2. Abrir el script con el editor de código preferido
10.3. Programar sentencias de acuerdo a la funcionalidad del juego, en este caso contendrá: movimiento,
colisión, audio y score.
10.4. Asignar dicho script al personaje o elemento que desea.
10.5. Asignar al script tanto el texto como el audio.

8
VI. CONCLUSIONES

El entorno de desarrollo es una es una herramienta muy válida tanto para principiantes como para usuarios que no
disponen de muchos recursos para contratar a otras personas para el desarrollo de juegos, además de ser potente
dado que posee gran cantidad de pertrechos que facilita que el usuario se desenvuelva de una forma óptima en el
entorno de desarrollo.

Al momento de generar el script unity te permite trabajar a la par con visual studio, lo que facilita la programación,
debido a que visual studio es un entorno de desarrollo que trabaja con C# además de que permite utilizar los
componentes necesarios que necesita unity.

VII. RECOMENDACIONES

Se recomienda a usuarios nuevos que vayan a utilizar la herramienta unity que revisen la documentación que las
misma posee para que se desenvuelvan de una manera óptima al momento de desarrollar algún juego.

Ser paciente al programe funcionalidad aun script debido a que existen varios componentes desconocidos que solo
pertenecen a unity y por ende tomara una gran porción de tiempo dominar los mismos.

VIII. BIBLIOGRAFIA

«Unity 4 Details». Forum.unity3d.com. Consultado el 7 de noviembre de 2012.

https://support.unity3d.com/hc/en-us/articles/360001230506

También podría gustarte