77
UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE INGENIERÍA CIENCIAS FÍSICAS Y MATEMÁTICA CARRERA DE INGENIERÍA EN COMPUTACIÓN GRÁFICA “VIDEOJUEGO 3D QUE SIMULA LA CONDUCCIÓN DE UN VEHÍCULO A TRAVÉS DE UN CAMINO MONTAÑOSO DEL ECUADORTRABAJO DE GRADUACIÓN PREVIO A LA OBTENCIÓN DEL TÍTULO DE INGENIERO EN COMPUTACIÓN GRÁFICA AUTOR: Vinicio Gabriel García Arellano TUTOR: Fis. Gonzalo Bayardo Campuzano Nieto QUITO ECUADOR 2015

UNIVERSIDAD CENTRAL DEL ECUADOR … · 4.1.2 Height Maps con Programación C# ... Fuente: ... En el campo educativo o formativo. La animación en 3d nos muestra

Embed Size (px)

Citation preview

Page 1: UNIVERSIDAD CENTRAL DEL ECUADOR … · 4.1.2 Height Maps con Programación C# ... Fuente:  ... En el campo educativo o formativo. La animación en 3d nos muestra

UNIVERSIDAD CENTRAL DEL ECUADOR

FACULTAD DE INGENIERÍA CIENCIAS FÍSICAS Y MATEMÁTICA

CARRERA DE INGENIERÍA EN COMPUTACIÓN GRÁFICA

“VIDEOJUEGO 3D QUE SIMULA LA CONDUCCIÓN DE UN VEHÍCULO A

TRAVÉS DE UN CAMINO MONTAÑOSO DEL ECUADOR”

TRABAJO DE GRADUACIÓN PREVIO A LA OBTENCIÓN DEL TÍTULO DE

INGENIERO EN COMPUTACIÓN GRÁFICA

AUTOR: Vinicio Gabriel García Arellano

TUTOR: Fis. Gonzalo Bayardo Campuzano Nieto

QUITO – ECUADOR

2015

Page 2: UNIVERSIDAD CENTRAL DEL ECUADOR … · 4.1.2 Height Maps con Programación C# ... Fuente:  ... En el campo educativo o formativo. La animación en 3d nos muestra

Videojuego 3D simulando conducción de vehículo

ii

DEDICATORIA

A mi familia, amigos y mis profesores, por ser la guía en los momentos difíciles.

Page 3: UNIVERSIDAD CENTRAL DEL ECUADOR … · 4.1.2 Height Maps con Programación C# ... Fuente:  ... En el campo educativo o formativo. La animación en 3d nos muestra

Videojuego 3D simulando conducción de vehículo

iii

AUTORIZACIÓN DE LA AUTORÍA INTELECTUAL

Yo, GARCÍA ARELLANO VINICIO GABRIEL en calidad de autor del trabajo de

investigación o tesis: VIDEOJUEGO 3D QUE SIMULA LA CONDUCCIÓN DE UN

VEHÍCULO A TRAVÉS DE UN CAMINO MONTAÑOSO DEL ECUADOR, por la

presente autorizo a la UNIVERSIDAD CENTRAL DEL ECUADOR, hacer uso de

todos los contenidos que me pertenecen, o de parte de los que contiene esta obra, con

fines estrictamente académicos o de investigación.

Los derechos que como autor me corresponden, con excepción de la presente

autorización, seguirán vigentes a mi favor, de conformidad con lo establecido en los

artículos 5, 6, 8,19 y demás pertinentes de la ley de Propiedad Intelectual y su

Reglamento.

Quito, agosto del 2015

Vinicio Gabriel García Arrellano

1719147488

Page 4: UNIVERSIDAD CENTRAL DEL ECUADOR … · 4.1.2 Height Maps con Programación C# ... Fuente:  ... En el campo educativo o formativo. La animación en 3d nos muestra

Videojuego 3D simulando conducción de vehículo

iv

FACULTAD DE INGENIERÍA CIENCIAS FÍSICAS Y MATEMÁTICAS

CARRERA DE INGENIERÍA EN COMPUTACIÓN GRÁFICA

Quito DM., 3 de Agosto de 2015

Señor Ingeniero

Luis Felipe Borja B.

DIRECTOR DE CARRERA DE INGENIERÍA EN COMPUTACIÓN GRÁFICA

Presente.-

Señor Director:

Yo, Físico Gonzalo Bayardo Campuzano Nieto, Docente de la Carrera de Ingeniería en

Computación Gráfica, de la Facultad de Ingeniería Ciencias Físicas y Matemáticas de la

Universidad Central del Ecuador,

Certifico

Luego de las revisiones técnicas realizadas por mi persona, al proyecto de investigación

“VIDEOJUEGO 3D QUE SIMULA LA CONDUCCIÓN DE UN VEHÍCULO A

TRAVÉS DE UN CAMINO MONTAÑOSO DEL ECUADOR” llevado cabo por

parte del egresado de la Carrera de Ingeniería en Computación Gráfica, señor García

Arellano Vinicio Gabriel, con C. I.: 1719147488 ha concluido de manera exitosa,

consecuentemente el indicado egresado podrá continuar con los trámites de graduación

correspondientes de acuerdo a lo que estipule las normativas y disposiciones legales.

El documento elaborado superó el control antiplagio Urkund.

Por la atención que digne a la presente, reitero mi agradecimiento.

Atentamente,

Físico Gonzalo Bayardo Campuzano Nieto

CATEDRÁTICO DE LA CARRERA

DE INGENIERÍA EN COMPUTACIÓN GRÁFICA

Page 5: UNIVERSIDAD CENTRAL DEL ECUADOR … · 4.1.2 Height Maps con Programación C# ... Fuente:  ... En el campo educativo o formativo. La animación en 3d nos muestra

Videojuego 3D simulando conducción de vehículo

v

APROBACIÓN DE REVISORES

En calidad de revisores del Proyecto de Investigación: Videojuego 3D que Simula la

Conducción de un Vehículo a través de un Camino Montañoso del Ecuador,

presentado y desarrollado por Vinicio Gabriel García Arellano, previo a la obtención del

Título de Ingeniero en Computación Gráfica, consideramos, que el Proyecto reúne los

requisitos necesarios.

En la ciudad de Quito, a los……días del mes……………….de 2015.

Ing. Jaime Oswaldo Salvador Meneses Ing. Darwin Rodolfo Caina Aysabucha

PROFESOR REVISOR PROFESOR REVISOR

Page 6: UNIVERSIDAD CENTRAL DEL ECUADOR … · 4.1.2 Height Maps con Programación C# ... Fuente:  ... En el campo educativo o formativo. La animación en 3d nos muestra

Videojuego 3D simulando conducción de vehículo

vi

Page 7: UNIVERSIDAD CENTRAL DEL ECUADOR … · 4.1.2 Height Maps con Programación C# ... Fuente:  ... En el campo educativo o formativo. La animación en 3d nos muestra

Videojuego 3D simulando conducción de vehículo

vii

CONTENIDO

DEDICATORIA ............................................................................................................... ii

AUTORIZACIÓN DE LA AUTORÍA INTELECTUAL ............................................... iii

CERTIFICACIÓN ............................................................................................................ iv

APROBACIÓN DE REVISORES ..................................................................................... v

CONTENIDO ................................................................................................................. vii

RESUMEN ...................................................................................................................... xii

ABSTRACT ................................................................................................................... xiii

CAPITULO 1 ..................................................................................................................... 1

1.1. Planteamiento del problema ................................................................................ 1

1.1.1. Antecedentes ................................................................................................ 1

1.1.2. Justificación.................................................................................................. 1

1.1.3. Objetivo General: ......................................................................................... 2

1.1.4. Objetivos Específicos: .................................................................................. 2

1.1.5. Alcance:........................................................................................................ 2

1.2. Fundamentación Teórica ..................................................................................... 3

1.2.1. Conceptos Básicos ....................................................................................... 3

1.2.2. Leyes de Newton .......................................................................................... 7

1.2.3. Física de los autos ........................................................................................ 9

1.2.4. Modelado 3D .............................................................................................. 16

1.2.5. Animación 3D ............................................................................................ 16

CAPITULO 2 ................................................................................................................... 18

FLUJO DEL JUEGO “CONQUISTA” ............................................................................ 18

2.1 Técnica de Juego ............................................................................................... 18

Page 8: UNIVERSIDAD CENTRAL DEL ECUADOR … · 4.1.2 Height Maps con Programación C# ... Fuente:  ... En el campo educativo o formativo. La animación en 3d nos muestra

Videojuego 3D simulando conducción de vehículo

viii

2.2 Control de Flujo ................................................................................................. 18

2.3 Flujograma del Juego ........................................................................................ 22

2.4 Etapas o Áreas del Juego ................................................................................... 22

2.4.1 Sistema de Puntajes .................................................................................... 24

2.5 Interfaz del juego ............................................................................................... 24

2.6 Diseño Gráfico del Juego .................................................................................. 26

2.6.1 Logotipo “Conquista” .................................................................................... 26

2.6.2 Diseño de los Escenarios ........................................................................... 27

CAPÍTULO 3 ................................................................................................................... 31

DISEÑO E IMPLEMENTACIÓN DEL JUEGO ............................................................ 31

3.1 Unity 3D ............................................................................................................ 31

3.1.1 Descarga e Instalación de Unity 3D 4.6.1 .................................................. 31

3.1.2 Interfaz de Unity ........................................................................................ 32

CAPÍTULO 4 ................................................................................................................... 34

SIMULACIÓN DE LA CONDUCCIÓN DEL VEHÍCULO .......................................... 34

4.1 Topografía del Camino ...................................................................................... 34

4.1.1 Orografía del Carretera “De los Conquistadores” ........................................... 34

4.1.2 Height Maps con Programación C# ........................................................... 36

4.1.3 Modelo 3D del Height Map con Unity ...................................................... 39

4.2 Simulación Conducción del Auto en Unity ....................................................... 41

4.2.2 Modelado 3D del Prototipo ........................................................................ 41

4.2.3 Programación de la Física .......................................................................... 42

CAPÍTULO 5 ................................................................................................................... 46

ANÁLISIS ECONÓMICO .............................................................................................. 46

5.1 Análisis de Costo ............................................................................................... 46

Page 9: UNIVERSIDAD CENTRAL DEL ECUADOR … · 4.1.2 Height Maps con Programación C# ... Fuente:  ... En el campo educativo o formativo. La animación en 3d nos muestra

Videojuego 3D simulando conducción de vehículo

ix

5.1.1 Costo del Hardware: ................................................................................... 46

5.1.2 Costo de los Programas: ............................................................................. 46

5.1.3 Costo del proyecto en marcha .................................................................... 47

5.2 Costo total del Proyecto .................................................................................... 47

CAPITULO 6 ................................................................................................................... 48

CONCLUSIONES Y RECOMENDACIONES ............................................................... 48

GLOSARIO ..................................................................................................................... 49

BIBLIOGRAFÍA ............................................................................................................. 51

ANEXOS ......................................................................................................................... 53

LISTA DE TABLAS

Tabla 1: Coeficiente de rozamiento de algunas sustancias .............................................. 13

Tabla 2:Costo del Hardware............................................................................................. 46

Tabla 3:Costo de los programas ....................................................................................... 46

Tabla 4:Costo del proyecto en marcha ............................................................................. 47

Tabla 5: Costo total del proyecto ..................................................................................... 47

LISTA DE GRÁFICOS

Gráfico 1: Coordenadas Cartesianas en espacio bidimensional ......................................... 4

Gráfico 2: Coordenadas Cartesianas en espacio tridimensional ........................................ 4

Gráfico 3: Coordenadas Cilíndricas ................................................................................... 5

Gráfico 4: Coordenadas Esféricas ...................................................................................... 5

Gráfico 5: Coordenadas Geográficas ................................................................................. 6

Fuente: http://www.escolar.com/avanzado/geografia008.htm ........................................... 6

Page 10: UNIVERSIDAD CENTRAL DEL ECUADOR … · 4.1.2 Height Maps con Programación C# ... Fuente:  ... En el campo educativo o formativo. La animación en 3d nos muestra

Videojuego 3D simulando conducción de vehículo

x

Gráfico 6: Gráfico de la trayectoria de un objeto ............................................................... 7

Gráfico 7: Automóvil de Cugnot, modelo 1977. Imagen Wikipedia. ................................ 9

Gráfico 8: Automóvil de Henry Ford, modelo T. ............................................................ 10

Fuente: http://www.biografiasyvidas.com ....................................................................... 10

Gráfico 9: Gráfico de la fuerza gravitacional entre dos masas ........................................ 11

Gráfico 10: Grafico de la fuerza Fricción, actuando en oposición a una fuerza externa . 12

Gráfico 11: Gráfico de la fuerza de Fricción ................................................................... 12

Fuente: http://www.elfisicoloco.bloqspot.com ................................................................ 13

Gráfico 12: Gráfico de la Fuerza Elástica ........................................................................ 14

Gráfico 13: Gráfico de la Fuerza Centrípeta y Centrífuga en sistema Cartesiano ........... 15

Gráfico 14: Gráfico de la Fuerza Centrípeta y Centrífuga actuando sobre un vehículo .. 15

Fuente: http://www.cienciaexplicada.com ....................................................................... 15

Gráfico 15: Modelo 3D de ”monkey”, mascota de Blender ............................................ 16

Gráfico 16: Animacón 3D ............................................................................................... 17

Gráfico 17: Diagrama de Flujo del Desarrollo del Juego ................................................ 22

Gráfico 18: Imagen Satelital de la Av. De los Conquistadores (línea roja) ..................... 23

Gráfico 19: Imagen Satelital que muestra las 4 áreas ...................................................... 23

Gráfico 20: Diferentes texturas para el ambiente del juego. ............................................ 27

Gráfico 18: Orografía del Camino “Conquistadores” ...................................................... 35

Gráfico 19: Imagen Satelital del camino “”Conquistadores” .......................................... 35

Gráfico 20: Gráfico del perfil de elevación...................................................................... 36

Gráfico 21: Venta de Nuevo Proyecto en Visual 2010 .................................................... 37

Gráfico 22: Algoritmo del Height Map ............................................................................ 38

Gráfico 23: Imagen Bitmap del trayecto y sus coordenadas ............................................ 39

Gráfico 24: Interfaz Unity ................................................................................................ 40

Page 11: UNIVERSIDAD CENTRAL DEL ECUADOR … · 4.1.2 Height Maps con Programación C# ... Fuente:  ... En el campo educativo o formativo. La animación en 3d nos muestra

Videojuego 3D simulando conducción de vehículo

xi

Gráfico 25: Ventana Emergente de importación del Height Map.................................... 40

Gráfico 26: Modelo 3D del Height Map .......................................................................... 41

Gráfico 27: Opciones de menú GameObject ................................................................... 41

Gráfico 28: Imagen del prototipo3d y la organización de sus componentes ................... 42

Gráfico 29: Imagen del Box Collider (las líneas verdes) ................................................. 43

Gráfico 30: Imagen del Wheel Collider aplicado a las ruedas del vehículo .................... 43

Gráfico 31: Gráfico de la Ventana Inspector del Auto .................................................... 44

LISTA DE FIGURAS

Figura 1: Teclas direccionales del teclado y su función en el juego ................................ 18

Figura 2: Flujo de Juego interpretación 1 ........................................................................ 19

Figura 3: Flujo de Juego Interpretación 2 ........................................................................ 19

Figura 4: Flujo de Juego Interpretación 3 ........................................................................ 20

Figura 5: Flujo de Juego Interpretación 3 ........................................................................ 21

Figura 6: Pantalla final del juego ..................................................................................... 21

Figura 7: Estructura de la interfaz .................................................................................... 24

Figura 8: Logotipo del juego” Conquista” ....................................................................... 26

Figura 9: Código de colores del logo ............................................................................... 26

Figura 10: Pantalla inicial ................................................................................................ 28

Figura 11: Pantalla de carga ............................................................................................. 28

Figura 12: Pantalla de Ruta .............................................................................................. 29

Figura 13: Pantalla Fin del Camino ................................................................................. 29

Figura 14: Pantalla perdiste del juego .............................................................................. 30

Figura 15: Pantalla historia del camino Conquistadores .................................................. 30

Figura 16: Logo de Unity ................................................................................................ 31

Figura 17: Áreas de Unity ................................................................................................ 32

Page 12: UNIVERSIDAD CENTRAL DEL ECUADOR … · 4.1.2 Height Maps con Programación C# ... Fuente:  ... En el campo educativo o formativo. La animación en 3d nos muestra

Videojuego 3D simulando conducción de vehículo

xii

RESUMEN

VIDEOJUEGO 3D QUE SIMULA LA CONDUCCIÓN DE UN VEHÍCULO A TRAVÉS DE UN

CAMINO MONTAÑOSO DEL ECUADOR

El presente proyecto tiene como fin desarrollar un videojuego 3d que permita tener una expe riencia

cercana a la conducción a través de un camino montañoso. He escogido como camino en particular la Av.

De los Conquistadores.

El entorno gráfico, el escenario y su forma de juego están pensados para jóvenes y adultos para reforzar

conocimientos previos de manejo.

El capítulo primero comprende: la justificación, los objetivos a cumplirse del juego y además la

fundamentación teórica que constituye la base del proyecto; es decir principios físicos y matemáticos. El

capítulo dos nos habla de la conceptualización del juego: el diseño de los escenarios y niveles del juego.

El tercer capítulo se encarga de la instalación del motor gráfico y su interfaz. El capítulo cuatro estudia las

diferentes técnicas empleadas para el modelado 3d del camino y su entorno, además los métodos de

programación para la física y manejo del automóvil. El capítulo quinto habla sobre el estudio económico

del proyecto. El capítulo final muestra las conclusiones y recomendaciones del presente trabajo.

DESCRIPTORES: VIDEOJUEGO 3D / SIMULADOR DE CONDUCCIÓN / CONDUCCIÓN

VEHICULAR / CONDUCCION CAMINO MONTAÑOSO / RECORRIDO VIRTUAL / FISICA DE

AUTOS

Page 13: UNIVERSIDAD CENTRAL DEL ECUADOR … · 4.1.2 Height Maps con Programación C# ... Fuente:  ... En el campo educativo o formativo. La animación en 3d nos muestra

Videojuego 3D simulando conducción de vehículo

xiii

ABSTRACT

3D GAME THAT SIMULATES DRIVING A VEHICLE ON A MOUNTAIN ROAD IN

ECUADOR

This project aims to develop a 3D game that allows to have an experience close to driving through a

mountain road. I have chosen the particular path Av. De los Conquistadores.

The graphical environment, the stage and his play are designed for youth and adults to reinforce previous

knowledge management.

The first chapter includes: justification, objectives to be met in the game and also the theoretical

foundation that is the basis of the project; therefore physical and mathematical principles. Chapter two

talks about the conceptualization of the game: the design stages and levels of the game. The third chapter

is responsible for installation and interface graphics engine. Chapter four examines the different

techniques used for 3D modeling of the road and its environment, and programming methods for physics

and handling of the car. The fifth chapter discusses the economic study of the project. The final chapter

shows the conclusions and recommendations of this work.

DESCRIPTORS: 3D GAME / DRIVING SIMULATOR/ CAR DRIVING / DRIVE ON A MONTAIN

ROAD / VIRTUAL TOUR / CAR PHYSICS

Page 14: UNIVERSIDAD CENTRAL DEL ECUADOR … · 4.1.2 Height Maps con Programación C# ... Fuente:  ... En el campo educativo o formativo. La animación en 3d nos muestra

Videojuego 3D simulando conducción de vehículo

xiv

Quito DM., 11de Agosto de 2015

CERTIFICADO

Yo, Nathalie Peláez Olives con cédula de identidad 130877044-3 declaro que soy

competente para traducir de idioma español a inglés, y que el resumen presentado

anteriormente es una traducción correcta y legítima.

El interesado puede hacer uso de este documento, para trámites personales.

Atentamente,

Nathalie Peláez Olives

Page 15: UNIVERSIDAD CENTRAL DEL ECUADOR … · 4.1.2 Height Maps con Programación C# ... Fuente:  ... En el campo educativo o formativo. La animación en 3d nos muestra

Videojuego 3D simulando conducción de vehículo

xv

Page 16: UNIVERSIDAD CENTRAL DEL ECUADOR … · 4.1.2 Height Maps con Programación C# ... Fuente:  ... En el campo educativo o formativo. La animación en 3d nos muestra

Videojuego 3D simulando conducción de vehículo

1

CAPITULO 1

PLANTEAMIENTO DEL PROBLEMA Y MARCO TEÓRICO

1.1. Planteamiento del problema

Desarrollar un Videojuego 3d que simula la conducción de un vehículo a través de un

determinado camino montañoso del Ecuador.

1.1.1. Antecedentes

Hoy en día la animación en 3d es una de las técnicas más empleados en casi todos los

nichos de mercado. En el campo educativo o formativo. La animación en 3d nos muestra

una excelente aproximación de cómo reaccionan ciertos cuerpos al experimentar un

fenómeno físico. Por tanto los videojuegos en 3d cumplen la función de entretener

mientras aprenden. Debido a que emplean técnicas de modelación y animación en 3d,

además de recursos multimedia: sonidos, imágenes y video. Todo esto con el fin de

lograr una interacción más directa con el ser humano. Para crearlo es necesario un motor

gráfico, como es el caso del Software Unity 3d que contiene una serie de rutinas de

programación que armonizan todos los recursos y técnicas anteriores.

1.1.2. Justificación

En vista de que la Modelación y Animación 3D son una de las técnicas más empleadas y

con mayor auge en el campo educativo-formativo y de investigación, y dado que el

método de aprendizaje para jóvenes y adultos se basa en conocimientos previos

(videojuegos, conducción vehicular o leyes de tránsito para este caso), he creído

pertinente y necesario desarrollar un Videojuego 3D que permita trasmitirles

conocimiento de una manera entretenida, reflexiva y dinámica, empleando técnicas

actualizadas sin que esto, implique que tengan un costo elevado, ya que se pueden

implementar usando Software libre y elementos comunes en todo hogar como un

computador.

Page 17: UNIVERSIDAD CENTRAL DEL ECUADOR … · 4.1.2 Height Maps con Programación C# ... Fuente:  ... En el campo educativo o formativo. La animación en 3d nos muestra

Videojuego 3D simulando conducción de vehículo

2

Debido a que muchas carreteras de Quito presentan una orografía compleja, creo

pertinente y necesario desarrollar una herramienta (software) que permita simular al

usuario desde la tranquilidad de su hogar la conducción de un determinado vehículo por

tal carretera, al tiempo que promociona una parte turística del Ecuador: El camino de los

conquistadores: Quito-Cumbaya-Quito; esta será ruta la escogida.

La edad legal para conducir un vehículo en el Ecuador es partir de los 18 años, por tanto

se requiere que este videojuego además de captar su atención, su experiencia deberá ser

lo más cercana a conducir un vehículo.

La finalidad de este videojuego es tener un acercamiento a la experiencia de manejo, a la

vez que promociona a Ecuador como destino turístico.

1.1.3. Objetivo General:

Desarrollar e implementar Videojuego 3d que simula la conducción de un vehículo a

través de un determinado camino montañoso del Ecuador.

1.1.4. Objetivos Específicos:

Enfocar el diseño del videojuego a personas jóvenes y adultas, que sirva como como un

acercamiento a la experiencia de manejo.

Implementar un algoritmo que sea capaz de simular la física de un determinado

vehículo a través del trayecto ya mencionado e introducir este algoritmo para

manejar el videojuego.

Dar a conocer al mundo la ruta camino de los conquistadores como un atractivo

turístico.

Realizar un estudio económico financiero para medir la viabilidad de la

implementación del videojuego.

1.1.5. Alcance:

El presente proyecto está dirigido a desarrollar un videojuego educativo, enfocado a

jóvenes y adultos en edades entre los 18 años a 40 años, como apoyo en conocimientos

previos como: videojuegos y conducción vehicular, el cual estará determinado por una

Page 18: UNIVERSIDAD CENTRAL DEL ECUADOR … · 4.1.2 Height Maps con Programación C# ... Fuente:  ... En el campo educativo o formativo. La animación en 3d nos muestra

Videojuego 3D simulando conducción de vehículo

3

ruta predefinida, dos tipos de vehículos a escoger y marchas manuales con opción a

marchas automáticas, la dirección del vehículo será controlada por uno o varias teclas

del teclado y por algún tipo de mando; manejado por un usuario a la vez. Para su

funcionamiento requerirá de una instalación local previa.

La mecánica básica consiste en: una fase introductoria al juego el usuario deberá pasar

por una pista de prueba: centro histórico de Quito, empleando las teclas direcciones o

teclas del teclado: W, S, A, y D.

La siguiente etapa será aplicar lo aprendido en la pista de pruebas en la carretera

ambientada, Quito-Cumbaya-Quito; es importante mencionar que el estado de la

carretera será similar a la real.

El diseño, el sistema de puntaje y la historia mediante la cual se desarrollará el juego

serán definidos en el desarrollo del trabajo de tesis.

1.2. Fundamentación Teórica

En el desarrollo de este proyecto están aplicadas varias definiciones y técnicas, que

serán descritas de manera breve a continuación.

1.2.1. Conceptos Básicos

Sistema de Coordenadas

Un sistema de coordenadas se define como el conjunto de valores que permiten la

ubicación de un punto en el espacio, y cuyo origen es el lugar donde todas las

coordenadas del sistema valen cero.

En física un sistema de coordenadas para describir puntos en el espacio recibe el nombre

marco de referencia.

Sistema de Coordenadas Cartesianas

Las coordenadas cartesianas son coordenadas ortogonales en un espacio euclídeo

bidimensional o tridimensional. Cuyos valores de sus componentes son las proyecciones

ortogonales sobre ejes determinados.

Page 19: UNIVERSIDAD CENTRAL DEL ECUADOR … · 4.1.2 Height Maps con Programación C# ... Fuente:  ... En el campo educativo o formativo. La animación en 3d nos muestra

Videojuego 3D simulando conducción de vehículo

4

Gráfico 1: Coordenadas Cartesianas en espacio bidimensional

Gráfico 2: Coordenadas Cartesianas en espacio tridimensional

Sistema de Coordenadas Cilíndricas

Las coordenadas cilíndricas se usan para representar un punto en un espacio

tridimensional definen la posición de un objeto por una distancia ρ de un origen y dos

ángulos θ y φ.

Page 20: UNIVERSIDAD CENTRAL DEL ECUADOR … · 4.1.2 Height Maps con Programación C# ... Fuente:  ... En el campo educativo o formativo. La animación en 3d nos muestra

Videojuego 3D simulando conducción de vehículo

5

Gráfico 3: Coordenadas Cilíndricas

Sistema de Coordenadas Esféricas

Se usan en espacios euclídios tridimensionales. Este sistema de coordenadas esféricas

está formado por tres ejes mutuamente ortogonales que se cortan en el origen. La

primera coordenada es la distancia entre el origen y el punto, siendo las otras dos los

ángulos que es necesario girar para alcanzar la posición del punto.1

Gráfico 4: Coordenadas Esféricas

1 https://es.wikipedia.org/wiki/Sistema_de_coordenadas

Page 21: UNIVERSIDAD CENTRAL DEL ECUADOR … · 4.1.2 Height Maps con Programación C# ... Fuente:  ... En el campo educativo o formativo. La animación en 3d nos muestra

Videojuego 3D simulando conducción de vehículo

6

Coordenadas Geográficas

Se usan para definir la ubicación de un punto cualquiera sobre la superficie terrestre. El

sistema más frecuente de medición es a través de latitud, longitud. Siendo la latitud la

distancia que existe entre un punto y la línea ecuatorial y la componente longitud, la

distancia entre un punto y el meridiano de Greenwich.

Estos son los formatos más conocidos para expresar las coordenadas geográficas.

- DG (Grados: Minutos): ej. 78: 40.0 – 48: 10.0

- DMS (Grados: Minutos: Segundos): ej. 78: 40: 00 – 48: 10.00: 00

Gráfico 5: Coordenadas Geográficas

Fuente: http://www.escolar.com/avanzado/geografia008.htm

Escalares y Vectores

Las cantidades escales son aquellas que tienen magnitud, en cambio las cantidades

además de la magnitud poseen dirección y sentido.

Un vector permite describir las características de magnitud, dirección y sentido de un

determinado objeto. Por tanto al analizar la velocidad de punto desplazándose en el

espacio cartesiano tridimensional, se observa no solamente componentes direccionales x,

y, z del vector, sino también su posición y su trayectoria.

Page 22: UNIVERSIDAD CENTRAL DEL ECUADOR … · 4.1.2 Height Maps con Programación C# ... Fuente:  ... En el campo educativo o formativo. La animación en 3d nos muestra

Videojuego 3D simulando conducción de vehículo

7

Gráfico 6: Gráfico de la trayectoria de un objeto

Cálculo de la Magnitud de un Vector

En un sistema cartesiano bidimensional se calcula la magnitud del vector V.

𝑉 = √𝑉𝑥2 + 𝑉𝑦

2

1.2.2. Leyes de Newton

Breve Reseña

El estudio científico del movimiento se inicia desde que el matemático, astrónomo

Galileo Galilei (Pisa, 1564 - 1642) observara el cosmos; con la ayuda de su telescopio

pudo ver constelaciones, planetas, satélites, el movimiento de los planetas que describen

orbitas alrededor del sol, además de que este orbita alrededor de su propio eje.

A los 25 años fue nombrado profesor de matemáticas de la Universidad de Pisa. Como

profesor Galileo prosiguió la búsqueda de la verdad, analizando las teorías científicas de

Page 23: UNIVERSIDAD CENTRAL DEL ECUADOR … · 4.1.2 Height Maps con Programación C# ... Fuente:  ... En el campo educativo o formativo. La animación en 3d nos muestra

Videojuego 3D simulando conducción de vehículo

8

Aristóteles mediante la aplicación de las matemáticas y las observaciones

experimentales.2

La obra de Galileo sentó las bases científicas para las leyes de Newton. Las mismas que

están presentes en cada fenómeno físico; las tres leyes movimiento son las siguientes:

a) Primera Ley

Primera ley o ley de la inercia, dice que cada cuerpo conserva su estado de reposo o de

movimiento rectilíneo uniforme, a menos que se le aplique una fuerza que incida sobre

este cuerpo.

La capacidad que tiene un cuerpo de resistir u oponerse a un cambio en su movimiento

se llama inercia.

b) Segunda Ley

Segunda ley o ley fundamental de la dinámica. La fuerza aplicada al objeto es

proporcional a la aceleración que adquiere dicho objeto. La cantidad de aceleración

debida a una fuerza aplicada depende de la masa del objeto. La unidad de la fuerza esta

medida en Newton (𝑘𝑔 − 𝑚𝑎2). Es la fuerza aplicada a una masa de 1 kilogramo le

produce una aceleración de 1 𝑚/𝑠2.

c) Tercera Ley

Dicta lo siguiente, para cada acción existe una reacción. Un vector fuerza se divide en

componentes de dirección de acuerdo a lo que sea el marco de referencia que este

usando. Si el marco de referencia es cartesiano, la fuerza se divide en componentes en

direcciones x, y, z. 3\

2 http://www.profesorenlinea.cl/biografias/GalileiGalileo.htm

3 Palmer, Grant (2005). Physics for Game Programmers, capítulo 3: Basic Newtonian Mechanics, pag 24

Page 24: UNIVERSIDAD CENTRAL DEL ECUADOR … · 4.1.2 Height Maps con Programación C# ... Fuente:  ... En el campo educativo o formativo. La animación en 3d nos muestra

Videojuego 3D simulando conducción de vehículo

9

1.2.3. Física de los autos

Breve Historia de los autos

Fue en el año de 1769 cuando un ingeniero francés llamado Nicolas Cugnot construye el

primer vehículo con motor para trabajo; un tractor a vapor.

Como dato curioso en el año de 1771 su vehículo chocó contra una pared de ladrillo,

siendo el primer accidente automovilístico de la historia.4

A finales del siglo XIX un ingeniero alemán llamado construye el primer vehículo

impulsado por un motor de gasolina, por aquel tiempo eran muy costosos y, mayormente

eran destinados para la gente adinerada.

Gráfico 7: Automóvil de Cugnot, modelo 1977. Imagen Wikipedia.

A finales del siglo XIX un ingeniero alemán llamado Karl Benz construye el primer

vehículo impulsado por un motor de gasolina, por aquel tiempo eran muy costosos y,

mayormente eran destinados para la gente adinerada.

Para el año del 1913 el estadounidense Henry Ford construye el automóvil modelo T,

producido en masa a bajo coste, destinado al gran público. En su planta de ensamblaje

era montado en un tiempo record de 93 min. Tal productividad era la responsable de su

4 https://es.wikipedia.org/wiki/Nicolas-Joseph_Cugnot

Page 25: UNIVERSIDAD CENTRAL DEL ECUADOR … · 4.1.2 Height Maps con Programación C# ... Fuente:  ... En el campo educativo o formativo. La animación en 3d nos muestra

Videojuego 3D simulando conducción de vehículo

10

bajo costo, además la conducción del vehículo todo esto contribuyo a su éxito

apabullante sobre sus predecesores.

Como dato curioso la fábrica de Henry Ford fue pionera en la producción en masa.

Gráfico 8: Automóvil de Henry Ford, modelo T.

Fuente: http://www.biografiasyvidas.com

Vector Fuerza

La fuerza es una magnitud vectorial, por tanto tiene magnitud (o longitud), dirección (u

orientación) y sentido (que distingue el origen del extremo). Si el marco de referencia

donde se aplica un vector fuerza es un sistema cartesiano, entonces el vector se divide en

ejes x, y, z direcciones.

𝐹 = {

𝐹𝑥 = 𝑚𝑎𝑥

𝐹𝑦 = 𝑚𝑎𝑦

𝐹𝑧 = 𝑚𝑎𝑥𝑧

Es conveniente descomponer la fuerza en sus componentes direccionales para analizar

los efectos de la fuerza sobre un objeto.

La Magnitud de la fuerza es la raíz cuadrada de la suma de sus componentes x,y,z (en

este caso), elevados al cuadrado.

𝐹 = √𝐹𝑥2 + 𝐹𝑦

2 + 𝐹𝑧2

Page 26: UNIVERSIDAD CENTRAL DEL ECUADOR … · 4.1.2 Height Maps con Programación C# ... Fuente:  ... En el campo educativo o formativo. La animación en 3d nos muestra

Videojuego 3D simulando conducción de vehículo

11

Tipos de Fuerza

La fuerza es una magnitud vectorial que al actuar sobre un cuerpo dado, este

experimenta un cambio en su posición o estado.

Las fuerzas que se estudiaran son las siguientes: gravitacional, fricción, centrípeta y la

centrífuga.

Fuerza Gravitacional

La fuerza gravitacional que ejerce una partícula puntual con una masa 𝑚1 sobre otra con

masa 𝑚2 es directamente proporcional al producto de sus masas e inversamente

proporcional al cuadrado de la distancia que las separa.5 Son las fuerzas de interacción

entre dos cuerpos debido a sus masas.

Ecuación de la fuerza gravitacional:

𝐹𝐺 = 𝐺 𝑚1 𝑚2

𝑟2

G: Constante gravitacional 6.674 e-11 𝑁 − 𝑚2 𝑘𝑔2⁄

r: Distancia entre los centros de las masas.

Gráfico 9: Gráfico de la fuerza gravitacional entre dos masas

5 https://es.wikipedia.org/wiki/Gravedad

Page 27: UNIVERSIDAD CENTRAL DEL ECUADOR … · 4.1.2 Height Maps con Programación C# ... Fuente:  ... En el campo educativo o formativo. La animación en 3d nos muestra

Videojuego 3D simulando conducción de vehículo

12

Fuerza de Fricción

La fuerza de fricción o de rozamiento se produce como consecuencia de una interacción

entre dos cuerpos en contacto, cuando uno se mueve con respecto al otro, o intenta

hacerlo.6

Esta fuerza se presenta por las irregularidades de las superficies en contacto. La

dirección de la fuerza de fricción siempre será en la dirección opuesta a cualquier fuerza

externa.

Su expresión matemática es la siguiente:

𝐹𝐹 = 𝑢 𝐹𝑁

Gráfico 10: Grafico de la fuerza Fricción, actuando en oposición a una fuerza externa

Gráfico 11: Gráfico de la fuerza de Fricción

6 Vaccaro, Daniel (2007). Física, capítulo 3: Interacciones, Fuerza de Rozamiento, pag 137

Page 28: UNIVERSIDAD CENTRAL DEL ECUADOR … · 4.1.2 Height Maps con Programación C# ... Fuente:  ... En el campo educativo o formativo. La animación en 3d nos muestra

Videojuego 3D simulando conducción de vehículo

13

Tabla 1: Coeficiente de rozamiento de algunas sustancias

Fuente: http://www.elfisicoloco.bloqspot.com

Fuerza de Resorte

La ley de Hooke establece que el alargamiento longitudinal que experimenta un cuerpo

elástico es directamente proporcional

Cuando un cuerpo es responsable de una aplicar una fuerza que provoque un

estiramiento longitudinal sobre un resorte, entonces existe una Fuerza de Resorte. Es

proporcional a la deformación δ del resorte.

Su expresión matemática es la siguiente:

𝐹 = −𝑘 δ

Page 29: UNIVERSIDAD CENTRAL DEL ECUADOR … · 4.1.2 Height Maps con Programación C# ... Fuente:  ... En el campo educativo o formativo. La animación en 3d nos muestra

Videojuego 3D simulando conducción de vehículo

14

Donde k es su constante de elasticidad.

Gráfico 12: Gráfico de la Fuerza Elástica

Fuerzas Centrípeta y Centrífuga

Estas fuerzas están presentes en un movimiento rotacional, opuestas entre sí. La fuerza

centrípeta actúa siempre en forma perpendicular a la dirección del movimiento del

cuerpo y la fuerza centrífuga tiende a alejarse del centro.

Estas fuerzas como es de suponer se encuentran involucradas en la estabilidad de un

vehículo en marcha (especialmente al tomar una curva); si existe un equilibrio entre

ambas el auto tendrá estabilidad, por el contrario se rompiera el equilibrio el vehículo

estaría inestable y podría volcarse.

La expresión matemática de la fuerza centrípeta es la siguiente:

𝐹𝑐 = 𝑚𝑣2

𝑟

Page 30: UNIVERSIDAD CENTRAL DEL ECUADOR … · 4.1.2 Height Maps con Programación C# ... Fuente:  ... En el campo educativo o formativo. La animación en 3d nos muestra

Videojuego 3D simulando conducción de vehículo

15

Donde m es la masa del vehículo, v es su velocidad lineal y r el radio de la

circunferencia que describe la trayectoria.

De lo anterior deducimos que la expresión matemática de la fuerza centrífuga:

𝐹𝑐 = 𝑚𝑣2

𝑟

Gráfico 13: Gráfico de la Fuerza Centrípeta y Centrífuga en sistema Cartesiano

Gráfico 14: Gráfico de la Fuerza Centrípeta y Centrífuga actuando sobre un vehículo

Fuente: http://www.cienciaexplicada.com

Page 31: UNIVERSIDAD CENTRAL DEL ECUADOR … · 4.1.2 Height Maps con Programación C# ... Fuente:  ... En el campo educativo o formativo. La animación en 3d nos muestra

Videojuego 3D simulando conducción de vehículo

16

1.2.4. Modelado 3D

“En gráficos 3D por computadora, el modelado 3D es el proceso de desarrollar una

representación matemática de cualquier objeto tridimensional a través de un software

especializado. Al producto se le llama modelo 3D. Se puede visualizar como una imagen

bidimensional mediante un proceso llamado renderizado 3D o utilizar en una simulación

por computadora de fenómenos físicos. El modelo también se puede crear físicamente

usando dispositivos de impresión 3D.”7

Gráfico 15: Modelo 3D de ”monkey”, mascota de Blender

1.2.5. Animación 3D

La animación 3d consiste en describir o representar el cambio de un modelo 3d a lo

largo del tiempo. El computador y las diferentes herramientas (software) son los

encargados de crear las superficies, objetos, actores; es decir el ambiente o la escena.

7 https://es.wikipedia.org/wiki/Modelado_3D

Page 32: UNIVERSIDAD CENTRAL DEL ECUADOR … · 4.1.2 Height Maps con Programación C# ... Fuente:  ... En el campo educativo o formativo. La animación en 3d nos muestra

Videojuego 3D simulando conducción de vehículo

17

Unos de los software más conocidos son Autocad y Blender. Permite expresar (en tres

dimensiones) ideas y conceptos de manera gráfica por medio de imágenes en

movimiento para dar el efecto de continuidad y realismo en la escena.

Gráfico 16: Animacón 3D 8

8 www.optimizacion3d.info

Page 33: UNIVERSIDAD CENTRAL DEL ECUADOR … · 4.1.2 Height Maps con Programación C# ... Fuente:  ... En el campo educativo o formativo. La animación en 3d nos muestra

Videojuego 3D simulando conducción de vehículo

18

CAPITULO 2

FLUJO DEL JUEGO “CONQUISTA”

2.1 Técnica de Juego

El target del proyecto son jóvenes y adultos, por tanto el escenario donde se desarrolle

deberá tener una aproximación a la real; lo que busca a través del juego es tener una

experiencia cercana a la de conducción de un vehículo en una ruta montañosa

ecuatoriana y a la vez que promociona este camino como destino turístico.

Se ha elegido como técnica para direccionamiento y conducción del auto, las teclas

direcciones o teclas del teclado: W, S, A, y D. El jugador deberá mantener presionada la

tecla W para acelerar, la tecla S para frenar, la tecla A para girar hacia la izquierda, y la

tecla D para girar hacia la derecha.

Figura 1: Teclas direccionales del teclado y su función en el juego

2.2 Control de Flujo

A continuación se describe el flujo del juego:

a) La primera pantalla en aparecer será la página de bienvenida del juego.

Page 34: UNIVERSIDAD CENTRAL DEL ECUADOR … · 4.1.2 Height Maps con Programación C# ... Fuente:  ... En el campo educativo o formativo. La animación en 3d nos muestra

Videojuego 3D simulando conducción de vehículo

19

Figura 2: Flujo de Juego interpretación 1

b) La siguiente pantalla en aparecer será la de carga, transcurrido unos segundos

empezara el juego.

Figura 3: Flujo de Juego Interpretación 2

Page 35: UNIVERSIDAD CENTRAL DEL ECUADOR … · 4.1.2 Height Maps con Programación C# ... Fuente:  ... En el campo educativo o formativo. La animación en 3d nos muestra

Videojuego 3D simulando conducción de vehículo

20

c) Con la ayuda de las teclas direccionales se tendrá el control del encendido y

dirección del auto. Con la opción salir se podrá en cualquier instante poner fin al

juego.

Figura 4: Flujo de Juego Interpretación 3

d) Si el auto lleva dirección contraria al recorrido del juego, aparecerá una pantalla

emergente de ayuda, indicando la dirección correcta a seguir.

Page 36: UNIVERSIDAD CENTRAL DEL ECUADOR … · 4.1.2 Height Maps con Programación C# ... Fuente:  ... En el campo educativo o formativo. La animación en 3d nos muestra

Videojuego 3D simulando conducción de vehículo

21

Figura 5: Flujo de Juego Interpretación 3

a) Una vez que complete la ruta, se finaliza el juego.

Figura 6: Pantalla final del juego

Page 37: UNIVERSIDAD CENTRAL DEL ECUADOR … · 4.1.2 Height Maps con Programación C# ... Fuente:  ... En el campo educativo o formativo. La animación en 3d nos muestra

Videojuego 3D simulando conducción de vehículo

22

2.3 Flujograma del Juego

INICIO

Cargando el video juego

Desea empezar a

jugar

Teclas de Control

Salir

ContinuarDesarrollo de

los NivelesDesea

ContinuarComprobar la

dirección Corregir

Dirección

FIN

SI

NO

SI

NO

NO

Teclas Dirección

CompletarRecorrido

Completar RecorridoTeclas Dirección

SI

Pantalla Fin

NO

Gráfico 17: Diagrama de Flujo del Desarrollo del Juego

2.4 Etapas o Áreas del Juego

El camino De los Conquistadores se extiende desde la calle Lerida hasta la Av. Simón

Bolívar. Debido su gran extensión, se ha decidido dividirlo en un total de 4 áreas.

Para un óptimo desarrollo del videojuego este constara de 4 escenas correspondientes

para cada área.

Nivel 1: Comprende el tramo del trayecto correspondiente al Área1.

Nivel 2: Comprende el tramo del trayecto correspondiente al Área 2.

Nivel 3: Comprende el tramo del trayecto correspondiente al Área 3.

Page 38: UNIVERSIDAD CENTRAL DEL ECUADOR … · 4.1.2 Height Maps con Programación C# ... Fuente:  ... En el campo educativo o formativo. La animación en 3d nos muestra

Videojuego 3D simulando conducción de vehículo

23

Nivel 4: Comprende el tramo del trayecto correspondiente al Área 4.

Gráfico 18: Imagen Satelital de la Av. De los Conquistadores (línea roja)9

Gráfico 19: Imagen Satelital que muestra las 4 áreas

9 Google Earth

Page 39: UNIVERSIDAD CENTRAL DEL ECUADOR … · 4.1.2 Height Maps con Programación C# ... Fuente:  ... En el campo educativo o formativo. La animación en 3d nos muestra

Videojuego 3D simulando conducción de vehículo

24

2.4.1 Sistema de Puntajes

El sistema de puntuación o más bien el método que se ha empleado para evaluar al

jugador, es un método sencillo; para conquistar el camino Conquistadores se deberá

conducir desde el área1 pasando por las demás áreas hasta arribar al área final (área 4).

Luego se mostrará la historia, como se explicará más adelante.

Si la dirección del auto es equivocada, aparecerá en pantalla una ventana emergente que

ofrece la oportunidad de corregir la dirección, de negarse a ello, termina el juego con un

mensaje en pantalla: Perdiste.

2.5 Interfaz del juego

Al iniciar el juego se presentara la interfaz siguiendo el orden especificado por el

siguiente ilustración. 10

Figura 7: Estructura de la interfaz

Pantalla de Principal

10 https://wiki.openttd.org/Interfaz_del_juego/Es

Page 40: UNIVERSIDAD CENTRAL DEL ECUADOR … · 4.1.2 Height Maps con Programación C# ... Fuente:  ... En el campo educativo o formativo. La animación en 3d nos muestra

Videojuego 3D simulando conducción de vehículo

25

Es la entrada única del juego, donde aparece la página de inicio y luego la de carga del

programa.

Pantalla de Ayuda

Es una pantalla secundaria que aparece como opción en la página principal del juego.

Mostrará el funcionamiento básico del auto a través de las teclas de dirección del teclado

mencionadas anteriormente.

Pantalla de Pausa

La función de esta pantalla es pausar el juego, para posteriormente reanudarlo desde su

punto de interrupción,

Pantalla de Ruta a Completar

Aquí es donde se presenta el camino a recorrer.

Pantalla Fin del Camino

Al culminar cada nivel se muestra el mensaje Fin del Camino.

Pantalla Historia

Muestra una breve reseña del Camino Conquistadores, empleado desde la época

colonial.

Pantalla de Perdida

Se pone fin al juego con el mensaje perdiste por pantalla.

Page 41: UNIVERSIDAD CENTRAL DEL ECUADOR … · 4.1.2 Height Maps con Programación C# ... Fuente:  ... En el campo educativo o formativo. La animación en 3d nos muestra

Videojuego 3D simulando conducción de vehículo

26

2.6 Diseño Gráfico del Juego

2.6.1 Logotipo “Conquista”

Figura 8: Logotipo del juego” Conquista”

La idea del logotipo se basó en la silueta que tiene un vehículo visto con un ángulo

cenital. Y su isotipo tiene por nombre “Conquista”, posee una tipografía robusta de tipo

cursiva para expresar la idea de movimiento.

La cromática empleada para este logo, fue pensada en los colores más característicos en

una ruta montañosa ecuatoriana: los distintos tonos de la vegetación, los grises de la

carretera y de la neblina. El isotipo tiene un degradado plateado usado tradicionalmente

en la marca vehículo.

Figura 9: Código de colores del logo

Page 42: UNIVERSIDAD CENTRAL DEL ECUADOR … · 4.1.2 Height Maps con Programación C# ... Fuente:  ... En el campo educativo o formativo. La animación en 3d nos muestra

Videojuego 3D simulando conducción de vehículo

27

2.6.2 Diseño de los Escenarios

Para las pantallas de juego se emplearon las siguientes texturas para el terreno,

elevaciones y la carretera.

Gráfico 20: Diferentes texturas para el ambiente del juego.

Page 43: UNIVERSIDAD CENTRAL DEL ECUADOR … · 4.1.2 Height Maps con Programación C# ... Fuente:  ... En el campo educativo o formativo. La animación en 3d nos muestra

Videojuego 3D simulando conducción de vehículo

28

Diseño de Pantallas

Figura 10: Pantalla inicial

Figura 11: Pantalla de carga

Page 44: UNIVERSIDAD CENTRAL DEL ECUADOR … · 4.1.2 Height Maps con Programación C# ... Fuente:  ... En el campo educativo o formativo. La animación en 3d nos muestra

Videojuego 3D simulando conducción de vehículo

29

Figura 12: Pantalla de Ruta

Figura 13: Pantalla Fin del Camino

Page 45: UNIVERSIDAD CENTRAL DEL ECUADOR … · 4.1.2 Height Maps con Programación C# ... Fuente:  ... En el campo educativo o formativo. La animación en 3d nos muestra

Videojuego 3D simulando conducción de vehículo

30

Figura 14: Pantalla perdiste del juego

Figura 15: Pantalla historia del camino Conquistadores

Page 46: UNIVERSIDAD CENTRAL DEL ECUADOR … · 4.1.2 Height Maps con Programación C# ... Fuente:  ... En el campo educativo o formativo. La animación en 3d nos muestra

Videojuego 3D simulando conducción de vehículo

31

CAPÍTULO 3

DISEÑO E IMPLEMENTACIÓN DEL JUEGO

Este proyecto se desarrolló en Unity 3D, bajo la plataforma S.O Windows, compilado en

el lenguaje de C#.

Adicional a esto se trabajó con Google SkecthUp que trabaja junto Google Earth, y con

el modelador Blender.

Cabe mencionar que con Unity hemos editado las texturas y modelos 3D. El motor

también puede publicar juegos basados en web usando el plugin Unity web player.

3.1 Unity 3D

“Unity es un motor gráfico 3D para Pc y Mac que viene empaquetado como una

herramienta para crear juegos, aplicaciones interactivas, visualizaciones y animación en

3D en tiempo real. El editor de Unity es el centro de la línea de producción, ofreciendo

un completo editor visual para crear juegos. El contenido del juego es construido desde

el editor y el gameplay se programa usando el lenguaje de scripts.”11

Figura 16: Logo de Unity 12

3.1.1 Descarga e Instalación de Unity 3D 4.6.1

En primer lugar se debe descargar el instalador Unity de su página oficial, en el

siguiente enlace: https://unity3d.com/es/get-unity/download/archive. En tal sitio se

11 http://informatica.uv.es/iiguia/AIG/web_teoria/tema5.pdf 12 http://academiaandroid.com/motor-de-juegos-unity-3d/

Page 47: UNIVERSIDAD CENTRAL DEL ECUADOR … · 4.1.2 Height Maps con Programación C# ... Fuente:  ... En el campo educativo o formativo. La animación en 3d nos muestra

Videojuego 3D simulando conducción de vehículo

32

deberá descargar el instalador en su versión 4.6.1 correspondiente para su sistema

operativo.

Para la instalación de Unity en su computador se siguen estos pasos:

- Guardar el instalador en un lugar específico.

- Clic derecho sobre archivo de extensión .exe , opción ejecutar como

administrador.

- Aparecerá la página de bienvenida, presionar siguiente.

- Aceptan el contrato de licencia, presionar el botón siguiente.

- Luego seleccionar la ubicación donde se instalará unity, por defecto lo dejamos

en el disco D. Presionamos instalar.

- Finalmente presionamos Finalizar.

3.1.2 Interfaz de Unity

Existe 5 áreas fundamentales en la interfaz de unity, las mismas se ilustran en la imagen

siguiente:

Figura 17: Áreas de Unity

Page 48: UNIVERSIDAD CENTRAL DEL ECUADOR … · 4.1.2 Height Maps con Programación C# ... Fuente:  ... En el campo educativo o formativo. La animación en 3d nos muestra

Videojuego 3D simulando conducción de vehículo

33

- Vista de Escena:

Ventana 1 corresponde al área de construcción de Unity; aquí es donde levanta la

escena del juego.

- Vista de Escena:

La ventana 2 corresponde a la visualización del juego en ejecución.

- Vista de Jerarquía:

Ventana 3 que lista los elementos de la escena y su organización dentro de la

misma.

- Vista de Proyecto:

Ventana 4. Es la librería del proyecto; puedes importar o crear modelos 3d,

texturas imágenes, animaciones, y scripts.

- Vista de Inspector:

Ventana 5 que detalla las propiedades o características de los objetos.

Page 49: UNIVERSIDAD CENTRAL DEL ECUADOR … · 4.1.2 Height Maps con Programación C# ... Fuente:  ... En el campo educativo o formativo. La animación en 3d nos muestra

Videojuego 3D simulando conducción de vehículo

34

CAPÍTULO 4

SIMULACIÓN DE LA CONDUCCIÓN DEL VEHÍCULO

4.1 Topografía del Camino

4.1.1 Orografía del Carretera “De los Conquistadores”

Para determinar la orografía de la carretera se realizaron diferentes pruebas de campo; el

trayecto fue realizado a pie con esto se consiguió mayor cantidad en el número de

muestras y un reconcomiendo de la urbe y su entorno. Fueron en total 129 puntos de

interés.

Haciendo uso de tecnología de posicionamiento Global (GPS) se obtuvo: datos precisos

de las coordenadas UTM (longitud, latitud y elevación) del camino, y las imágenes

fotográficas del entorno. Nuestros puntos fueron considerados bajo el criterio de puntos

de interés que tendría una curva; es decir puntos en los cuales la concavidad de la curva

varía. Fueron un total de 129 puntos aproximadamente.

Es importante mencionar que las coordenadas longitud, latitud se las relacionó a un

plano x,y, siendo el eje y la latitud y el eje x la longitud.

El siguiente gráfico se obtuvo al graficar los 129 puntos de interés en el programa Excel,

donde muestra la Orografía de la vía Conquistadores.

Page 50: UNIVERSIDAD CENTRAL DEL ECUADOR … · 4.1.2 Height Maps con Programación C# ... Fuente:  ... En el campo educativo o formativo. La animación en 3d nos muestra

Videojuego 3D simulando conducción de vehículo

35

Gráfico 18: Orografía del Camino “Conquistadores”

Gráfico 19: Imagen Satelital del camino “”Conquistadores”13

13 Google Earth

Page 51: UNIVERSIDAD CENTRAL DEL ECUADOR … · 4.1.2 Height Maps con Programación C# ... Fuente:  ... En el campo educativo o formativo. La animación en 3d nos muestra

Videojuego 3D simulando conducción de vehículo

36

Al comparar el gráfico obtenida a base de la muestra de los puntos de interés con la

imagen obtenida del Google Earth, se concluye la calidad método detallado

anteriormente.

Para conocer el perfil de elevación del terreno se obtiene a partir del siguiente gráfico.

Donde se graficaron las coordenadas de longitud (eje x) y altitud (eje y). La unidad de

medida es la métrica.

Gráfico 20: Gráfico del perfil de elevación

Al analizar el comportamiento de la curva se observa un descenso constante del camino.

Todo esto se corrobora con la experiencia de campo mencionada anteriormente.

4.1.2 Height Maps con Programación C#

El height map es básicamente una imagen con ángulo cenital en escala de grises de un

terreno, y bajo el criterio de intensidad de color se establece la altura de cada área que la

compone; donde el color blanco es su altura máxima y el color negro su altura mínima.

El método empleado para realizar el modelo 3D del camino fue a través de los siguientes

pasos:

Page 52: UNIVERSIDAD CENTRAL DEL ECUADOR … · 4.1.2 Height Maps con Programación C# ... Fuente:  ... En el campo educativo o formativo. La animación en 3d nos muestra

Videojuego 3D simulando conducción de vehículo

37

- Transformación de las coordenadas UTM en coordenadas x, y, z; en donde la latitud

equivale a la coordenada x, la longitud equivale a la coordenada y, y finalmente el

dato de altitud corresponde a la elevación del terreno.

- Obtención del height map . Se empleó el lenguaje programación C# para la gráfica

de los 129 puntos, y con la ayuda de la pluma con color degradado se logró graficar

la ruta.

En el entorno de Microsoft Visual Studio 2010, emplearemos el lenguaje de

programación C# para crear el height map de nuestro camino. Los pasos se detallarán a

continuación:

- Para crear un nuevo proyecto escogemos de las plantillas de Visual C#, la opción

de Console Application.

Gráfico 21: Venta de Nuevo Proyecto en Visual 2010

- Nombrar el proyecto y escoger el directorio donde guardarlo, por defecto la ruta

es C:\Users\Vinicio\Documents\Visual Studio 2010\Projects .

Page 53: UNIVERSIDAD CENTRAL DEL ECUADOR … · 4.1.2 Height Maps con Programación C# ... Fuente:  ... En el campo educativo o formativo. La animación en 3d nos muestra

Videojuego 3D simulando conducción de vehículo

38

Ahora incluimos las librerías: System.Drawing.Drawing2D y System.Io en la cabecera

del proyecto.

“El espacio de nombres System.Io contiene tipos que permiten leer y escribir

archivos y flujos de datos, así como tipos que proporcionan compatibilidad

básica con los archivos y directorios.

El espacio de nombres System.Drawing.Drawing2D proporciona funciones de

gráficos vectoriales y bidimensionales avanzadas”14

using System.Windows.Forms;

using System.Drawing.Drawing2D;

Algoritmo del Height Map

A continuación se detalla los procesos matemáticos necesarios para la obtención de la

imagen de tipo bmp.

INICIO

ImportacIón de los Puntos de interés

Lectura de los DatosMétodo.

Constructor

Implementación de la Clase LinearGradient

Brush

Carga de los 127 puntos en el

Método Llenar Datos

Dibujo de la curva y sus coordenadas

Mét. AsignaciónPosición ---- x,y,coordenadas

Color ----- AltitudFIN

Gráfico 22: Algoritmo del Height Map

14 https://msdn.microsoft.com/es-es/library/system.drawing.drawing2d(v=vs.110).aspx

Page 54: UNIVERSIDAD CENTRAL DEL ECUADOR … · 4.1.2 Height Maps con Programación C# ... Fuente:  ... En el campo educativo o formativo. La animación en 3d nos muestra

Videojuego 3D simulando conducción de vehículo

39

Como resultado de este programa se obtiene un bitmap, que deberá ser convertida al

formato Raw.

Gráfico 23: Imagen Bitmap del trayecto y sus coordenadas

4.1.3 Modelo 3D del Height Map con Unity

A continuación se detallan los pasos a seguir para lograr el modelo 3D del camino

“Conquistadores”.

- Una vez creado un nuevo proyecto en Unity es necesario crear un o terreno en

incorporar la luz ambiental, para esto seleccionamos del menú GameObject, 3D

Objects la opción Terrain.

Page 55: UNIVERSIDAD CENTRAL DEL ECUADOR … · 4.1.2 Height Maps con Programación C# ... Fuente:  ... En el campo educativo o formativo. La animación en 3d nos muestra

Videojuego 3D simulando conducción de vehículo

40

Gráfico 24: Interfaz Unity

- En la vista de jerarquía seleccionamos el objeto terrain, en la vista de sus

propiedades presionar el botón import Raw, aparecerá una ventana emergente

donde tendremos que localizar la imagen obtenida en la sección.

- Lo siguiente será ajustar las dimensiones del Height map, tanto sus dimensiones

como su altura.

Gráfico 25: Ventana Emergente de importación del Height Map

Page 56: UNIVERSIDAD CENTRAL DEL ECUADOR … · 4.1.2 Height Maps con Programación C# ... Fuente:  ... En el campo educativo o formativo. La animación en 3d nos muestra

Videojuego 3D simulando conducción de vehículo

41

- Finalmente se obtiene el modelo 3D.

Gráfico 26: Modelo 3D del Height Map

4.2 Simulación Conducción del Auto en Unity

4.2.2 Modelado 3D del Prototipo

Unity maneja un sistema de coordenadas tridimensional, siendo la x y la z competencia

de la planimetría, y la y la altimetría. 15

En el menú de la interfaz se halla la opción de GameObject, esta provee de primitivas

2D y 3D, para la construcción de escenarios, objetos o personajes.

Gráfico 27: Opciones de menú GameObject

15 https://es.wikipedia.org/wiki/Topograf%C3%ADa

Page 57: UNIVERSIDAD CENTRAL DEL ECUADOR … · 4.1.2 Height Maps con Programación C# ... Fuente:  ... En el campo educativo o formativo. La animación en 3d nos muestra

Videojuego 3D simulando conducción de vehículo

42

Para el modelado del protipo se emplearon los objetos 3D como: un cubo, y cuatro

cilindros.

- Cuerpo del auto: cubo.

- Llantas: cilindros.

Las llantas como cualquier componente adicional del prototipo deberán estar

organizados en el interior del cuerpo del auto. La imagen siguiente ilustra la

organización de sus elementos.

Gráfico 28: Imagen del prototipo3d y la organización de sus componentes

4.2.3 Programación de la Física

Rigid Body

Es un componente de física que da gravedad a los objetos. Para añadir el rigidbody es

necesario seleccionar el objeto, luego del menú component seleccionar la opción Physic

3D y escoger el componente Rigid Body.

Page 58: UNIVERSIDAD CENTRAL DEL ECUADOR … · 4.1.2 Height Maps con Programación C# ... Fuente:  ... En el campo educativo o formativo. La animación en 3d nos muestra

Videojuego 3D simulando conducción de vehículo

43

Box Collider

Es un componente de física que permite que los objetos no caigan al vacío y que otros

elementos de la escena no lo traspasen. Los pasos para añadir el collider son los mismos

que se ocupan en el ítem anterior.

Gráfico 29: Imagen del Box Collider (las líneas verdes)

Wheel Collider

El Wheel Colider es un collider especial para vehículos terrestres. Tiene una detección

de colisión integrada, física de ruedas y un modelo de deslizamiento basado en la

fricción de la llanta.16

Gráfico 30: Imagen del Wheel Collider aplicado a las ruedas del vehículo

16 http://docs.unity3d.com/es/current/Manual/class-WheelCollider.html

Page 59: UNIVERSIDAD CENTRAL DEL ECUADOR … · 4.1.2 Height Maps con Programación C# ... Fuente:  ... En el campo educativo o formativo. La animación en 3d nos muestra

Videojuego 3D simulando conducción de vehículo

44

MonoDevelop

Es un editor de Scripts que emplearemos en desarrollo del código.

Programación de la Conducción

- Primero creamos un Script de nombre Car.

- Añadimos el archivo a la ventana Inspector del auto.

Gráfico 31: Gráfico de la Ventana Inspector del Auto

- En la cabecera de la Clase Car creamos las variables:

public Vector3 centroDeMasa = Vector3.zero;

public float speed = 50f;

public Transform RuedaDD;

public Transform RuedaDI;

public float maxSteerAngle = 30f;

private float motorForce = 0f;

Algunas de estas variables son públicas puesto que al serlo se las puede

editar o visualizar en la Vista Inspector.

Page 60: UNIVERSIDAD CENTRAL DEL ECUADOR … · 4.1.2 Height Maps con Programación C# ... Fuente:  ... En el campo educativo o formativo. La animación en 3d nos muestra

Videojuego 3D simulando conducción de vehículo

45

- Funciones principales:

- void Start(): Se ejecuta una vez.

- void Update: Se manda a llamar a cada cuadro.

- void FixedUpdate: Se ejecuta más de una vez por cada cuadro.

La función FixedUpdate se emplea en la física del auto.

Para generar el movimiento del auto es necesario que se aplique una Fuerza de tipo

continua. Debido a la tercera ley de Newton sabemos que la fuerza se la debe aplicar a

un objeto con una masa puntual. La masa puntual está representada por el rigidbody del

auto. Donde la variable motorForce es la fuerza, la variable speed es la velocidad.

motorForce = Input.GetAxis("Vertical") * speed; // al digitar

la tecla de dirección

rigidbody.AddForce (0f, 0f, motorForce); // se aplica la fuer

za sobre el auto

Para evitar un volcamiento, es necesario ubicar el centro de masa del rigidBody en el

centro de la masa del prototipo.

void Start () {

rigidbody.centerOfMass = new Vector3 (0,-2,0);;

}

Para que las ruedas del prototipo puedan en rotar en necesario, acceder a las propiedades

del WheelColider. Donde la variable maxSteerAngle es el ángulo de giro, la variable

rotation representa la dirección ángulo de giro de las ruedas.

La función localEulerAngles accede a la propiedad de giro de las ruedas.

float rotation = Input.GetAxis("Horizontal")*maxSteerAngle;

RuedaDD.localEulerAngles = new Vector3 (0f, rotation, 0f);

RuedaDI.localEulerAngles = new Vector3 (0f, rotation, 0f);

Page 61: UNIVERSIDAD CENTRAL DEL ECUADOR … · 4.1.2 Height Maps con Programación C# ... Fuente:  ... En el campo educativo o formativo. La animación en 3d nos muestra

Videojuego 3D simulando conducción de vehículo

46

CAPÍTULO 5

ANÁLISIS ECONÓMICO

Debido a que el proyecto presentado, no está enfocado en generar ganancias

económicas, puesto que se desarrolló bajo la idea de crear un programa de licencia libre;

que sirva como apoyo en el estudio de la conducción vehicular; particulares o institutos

pueden hacer libre uso del mismo; únicamente, con fines educativos.

Es por esto, que el siguiente análisis presenta los valores necesarios para realizar la

puesta en marcha del proyecto.

5.1 Análisis de Costo

El costo del proyecto requiere de una inversión fija que se divide en tres categorías:

costo del equipo (hardware), costo del software y costo de la puesta en marcha.

5.1.1 Costo del Hardware:

Descripción Costo USD

Ordenador (intel core i7, SO 64bits, 2GB Disco Duro,

RADEON 2GB, 8GB RAM)

1150.00

Subtotal: 1150.00

Tabla 2:Costo del Hardware

5.1.2 Costo de los Programas:

Descripción Costo USD

Licencia Blender 2.74 0.00

Licencia Unity 4 (Versión Gratuita) 0.00

Google Maps Servicios Web 0.00

SketchUp Make 0.00

Subtotal: 0.00

Tabla 3:Costo de los programas

Page 62: UNIVERSIDAD CENTRAL DEL ECUADOR … · 4.1.2 Height Maps con Programación C# ... Fuente:  ... En el campo educativo o formativo. La animación en 3d nos muestra

Videojuego 3D simulando conducción de vehículo

47

5.1.3 Costo del proyecto en marcha

Descripción Costo USD

Luz eléctrica 5.00

Subtotal: 5.00

Tabla 4:Costo del proyecto en marcha

5.2 Costo total del Proyecto

Descripción Costo USD

Costo del Hardware 1150.00

Costo del Software 0.00

Costo de la puesta en marcha 0.00

Total: 1150.00

Tabla 5: Costo total del proyecto

Sumando los tres subtotales descritos anteriormente se totaliza en Mil ciento cincuenta

dólares con cero centavos (USD 1150.00), la inversión necesaria para la ejecución del

proyecto.

Page 63: UNIVERSIDAD CENTRAL DEL ECUADOR … · 4.1.2 Height Maps con Programación C# ... Fuente:  ... En el campo educativo o formativo. La animación en 3d nos muestra

Videojuego 3D simulando conducción de vehículo

48

CAPITULO 6

CONCLUSIONES Y RECOMENDACIONES

CONCLUSIONES

1. El libre uso de software y de tecnologías informáticas facilita la conceptualización y

creación de videojuegos.

2. Para la simular la física del modelo 3d, es necesario saber las leyes físicas que

intervienen en el movimiento y sus expresiones matemáticas.

3. La programación del height map mediante el uso de primitivas básicas como líneas,

brochas, y puntos optimiza el proceso de modelado 3d de un camino o río.

4. El motor de videojuego unity es una herramienta intuitiva en la edición de escenas, y

la programación de la mecánica de los objetos.

5. El diseño gráfico del videojuego debe de estar enfocado hacia los requerimientos del

público al que va dirigido.

RECOMENDACIONES

1. Es recomendable hacer uso de objetos 3d y texturas, para la optimización del

desarrollo del videojuego.

2. Es recomendable emplear software libre para abaratar costos.

3. Es aconsejable para una prueba de campo efectuar el recorrido a pie para una mejor

calidad en la muestra de datos.

4. Para mejorar el entorno de los escenarios del presente proyecto, se sugiere emplear

recursos de animación y multimedia.

5. Es necesario crear una versión para web del videojuego.

Page 64: UNIVERSIDAD CENTRAL DEL ECUADOR … · 4.1.2 Height Maps con Programación C# ... Fuente:  ... En el campo educativo o formativo. La animación en 3d nos muestra

Videojuego 3D simulando conducción de vehículo

49

GLOSARIO

A

API. (Application Programming Interface) es un conjunto de reglas (código) y

especificaciones que las aplicaciones usan para comunicarse entre ellas.

Aplicación. Empleo o puesta en práctica de un conocimiento o principio, a fin de

conseguir un determinado fin.

Algoritmo. Conjunto ordenado y finito de operaciones que permite hallar la solución de

un problema.

Aceleración. Magnitud que indica la variación de la velocidad por unidad de tiempo.

C

Cenital. Que está en la parte superior de un lugar o que procede de ella.

F

Flujograma. Es la representación gráfica del algoritmo o proceso.

Fuerza. Capacidad para realizar un trabajo o movimiento.

I

Implementación. Poner en funcionamiento, aplicar los métodos y medidas necesarios

para llevar algo a cabo.

M

Matrices. Es una construcción matemática que se usa para almacenar un conjunto de

datos en una forma estructurada.

Masa. Propiedad intrínseca de un cuerpo que representa la cantidad de masa que posee

el mismo.

Page 65: UNIVERSIDAD CENTRAL DEL ECUADOR … · 4.1.2 Height Maps con Programación C# ... Fuente:  ... En el campo educativo o formativo. La animación en 3d nos muestra

Videojuego 3D simulando conducción de vehículo

50

P

Posición. La posición se define como la localización de una partícula o cuerpo en el

espacio o espacio-tiempo, y se representa mediante un sistema de coordenadas.

Plugin: Es un módulo de hardware software que añade una característica o un servicio

específico a un sistema más grande.

Peso. Es la fuerza que ejerce un determinado cuerpo sobre el punto donde se encuentra

apoyado, el cual se ve condicionado por el campo gravitatorio donde se encuentra el

mismo.

Plataforma. Es un sistema que sirve como base para el funcionamiento de módulos de

hardware o software con los que es compatible.

P

Orografía. Se refiere tanto a las elevaciones que puedan existir en un zona en particular.

T

Topografía. Es una técnica que se usa para representar el relieve del terreno.

V

Videojuego. Juego electrónico para ordenador.

Velocidad. Relación que se establece entre la distancia que recorre un cuerpo y el

tiempo que tarda en realizar dicho movimiento.

Vehículo. Aparato con o sin motor que se mueve sobre el suelo, agua o aire, utilizado

para transportar cosas o personas.

Page 66: UNIVERSIDAD CENTRAL DEL ECUADOR … · 4.1.2 Height Maps con Programación C# ... Fuente:  ... En el campo educativo o formativo. La animación en 3d nos muestra

Videojuego 3D simulando conducción de vehículo

51

BIBLIOGRAFÍA

PÁGINAS WEB

1. Clase Sytem , https://msdn.microsoft.com/en-

us/library/system.io.file(v=vs.110).aspx

2. Sonidos Unity, https://unity3d.com/es/learn/tutorials/modules/beginner/live-

training-archive/hover-car-physics

3. Configuración Automotriz,

https://es.wikipedia.org/wiki/Configuraci%C3%B3n_automotriz

4. Torque y Potencia, http://www.e-

auto.com.mx/manual_detalle.php?manual_id=174

5. Mecánica del automóvil,

http://www.almuro.net/sitios/Mecanica/suspension.asp?sw12=1

6. Historia del automóvil,

https://es.wikipedia.org/wiki/Historia_del_autom%C3%B3vil

7. Blender Car Tutorial, http://laflechaveloz.weebly.com/blender-car-tutorial-

espantildeol.html

8. Google Earth,

https://www.google.es/intl/es_es/earth/learn/3dbuildings.html#tab=create-3d-

models-with-sketchup

LIBROS Y TESIS

1. FLAVELL, Lance (2010), Beginning Blender: Open Source 3D Modeling.

2. MUÑOZ, José (2013), Creación de Personajes con Blender 2.69: Introducción

Modelado Tradicional, Topología.

3. NORTON, Terry (2013), Learning C# by Developing Games with Unity. Learn

the fundamental of C# to create scripts for you GameObjects.

4. KURKA, Gerhard (2006), A Unified Framework for Rigid Body Dynamics.

5. KAUFMANN, Morgan (2010), Game Physics.

6. PALMER, Grant (2006), Physics for Game Programmers. Cars and Motorcycles:

Engine Torque and Power.

Page 67: UNIVERSIDAD CENTRAL DEL ECUADOR … · 4.1.2 Height Maps con Programación C# ... Fuente:  ... En el campo educativo o formativo. La animación en 3d nos muestra

Videojuego 3D simulando conducción de vehículo

52

7. MILLIGTON, Ian (2010), How to Build a Robust Commercial – Grade Physics Engine

for your Game.

Page 68: UNIVERSIDAD CENTRAL DEL ECUADOR … · 4.1.2 Height Maps con Programación C# ... Fuente:  ... En el campo educativo o formativo. La animación en 3d nos muestra

Videojuego 3D simulando conducción de vehículo

53

ANEXOS

Page 69: UNIVERSIDAD CENTRAL DEL ECUADOR … · 4.1.2 Height Maps con Programación C# ... Fuente:  ... En el campo educativo o formativo. La animación en 3d nos muestra

Videojuego 3D simulando conducción de vehículo

54

ANEXO 1

CÓDIGO FUENTE DE CLASE FORM1

(HEIGHT MAP)

Page 70: UNIVERSIDAD CENTRAL DEL ECUADOR … · 4.1.2 Height Maps con Programación C# ... Fuente:  ... En el campo educativo o formativo. La animación en 3d nos muestra

Videojuego 3D simulando conducción de vehículo

55

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.Drawing.Drawing2D;

using System.IO;

namespace WindowsFormsApplication4

{

public partial class Form1 : Form

{

public Bitmap b;

public List<PointF> puntos = new List<PointF>();

public List<float> heights = new List<float>();

public StreamReader reader = new StreamReader("datos1.txt");

//PointF[] puntos;

//float[] heights;

public Form1()

{

InitializeComponent();

}

private void Form1_Load(object sender, EventArgs e)

{

//Creamos una variable tipo Bitmap

//Usamos el constructor para instanciar nuestro Bitmap y

asignarle el tamaño

//de nuestro PictureBox (EN ESTE CASO EL PICTUREBOX TIENE

COMO NOMBRE pictureBox1)

b = new Bitmap(box1.Width, box1.Height);

//Asignamos nuestro objeto Bitmap como imagen de nuestro

pictureBox

box1.Image = (Image)b;

//Creamos el objeto Graphics que nos servirá para dibujar

en nuestro Bitmap

Graphics g = Graphics.FromImage(b);

//Leemos el archivo de texto que contiene los datos

LlenarDatos();

//LinearGradientBrush linGrBrush2 = new

LinearGradientBrush(puntos[0], puntos[1], colores[0], colores[1]);

Rectangle rect=new

Rectangle(0,0,box1.Size.Width,box1.Size.Height);

LinearGradientBrush linGrBrush2 = new

LinearGradientBrush(rect, Color.Black, Color.Black, 0, false);

ColorBlend cb = new ColorBlend();

Page 71: UNIVERSIDAD CENTRAL DEL ECUADOR … · 4.1.2 Height Maps con Programación C# ... Fuente:  ... En el campo educativo o formativo. La animación en 3d nos muestra

Videojuego 3D simulando conducción de vehículo

56

PointF[] arraypuntos = puntos.ToArray();

int tam=arraypuntos.Length;

float [] pos= new float[(tam+2)];

Color[] col = new Color[(tam+2)];

//asigna primera y última posicion

pos[0] = 0;

pos[tam + 1] = 1;

int gris0=(int)heights[0];

//asigna primer y último color

col[0] = Color.FromArgb(255, gris0, gris0, gris0);

int grisl = (int)heights[tam-1];

col[tam+1] = Color.FromArgb(255, grisl, grisl, grisl);

//Llena las posiciones y colores para cada una de ellas, en

todos los puntos del camino que están en el archivo

for (int n = 0; n < arraypuntos.Length; n++) {

pos[n + 1] = (puntos[n].X) / 512f;

int gris=(int)heights[n];

col[n + 1] = Color.FromArgb(255, gris, gris, gris);

//col[n + 1] = Color.FromArgb(255,255,255,255);

}

cb.Positions = pos;

//cb.Positions = new[] { 0f, 0.2f,0.4f,0.6f,0.8f, 1 };

// cb.Colors = new[] { Color.White, Color.Blue,

Color.White, Color.Green, Color.White, Color.Red };

cb.Colors = col;

linGrBrush2.InterpolationColors = cb;

linGrBrush2.InterpolationColors = cb;

Pen pluma2 = new Pen(linGrBrush2,14);

g.DrawLines(pluma2,arraypuntos);

//g.DrawLine(pluma2, new PointF(0,500), new

PointF(512,500));

}

public void LlenarDatos(){

string line;

while ((line = reader.ReadLine()) != null)

{

textPuntos.AppendText(line + "\n");

string[] vectorpuntos = line.Split('\t');

PointF p = new

PointF((float)Convert.ToDouble(vectorpuntos[0]),

(float)Convert.ToDouble(vectorpuntos[1]));

puntos.Add(p);

heights.Add((float)Convert.ToDouble(vectorpuntos[2]));

}

reader.Close();

}

private void btn_guardar_Click(object sender, EventArgs e)

{

Page 72: UNIVERSIDAD CENTRAL DEL ECUADOR … · 4.1.2 Height Maps con Programación C# ... Fuente:  ... En el campo educativo o formativo. La animación en 3d nos muestra

Videojuego 3D simulando conducción de vehículo

57

box1.Image.Save("Caminito.bmp",

System.Drawing.Imaging.ImageFormat.Bmp);

}

private void btn_gris_Click(object sender, EventArgs e)

{

}

private void box1_Click(object sender, EventArgs e)

{

}

}

}

Page 73: UNIVERSIDAD CENTRAL DEL ECUADOR … · 4.1.2 Height Maps con Programación C# ... Fuente:  ... En el campo educativo o formativo. La animación en 3d nos muestra

Videojuego 3D simulando conducción de vehículo

58

ANEXO 2

CODIGO FUENTE DE CLASE CARV3

Page 74: UNIVERSIDAD CENTRAL DEL ECUADOR … · 4.1.2 Height Maps con Programación C# ... Fuente:  ... En el campo educativo o formativo. La animación en 3d nos muestra

Videojuego 3D simulando conducción de vehículo

59

using UnityEngine;

using System.Collections;

public class CarV1 : MonoBehaviour {

public Vector3 centroDeMasa = Vector3.zero;

public float speed = 50f;

public Transform RuedaDD;

public Transform RuedaDI;

public float maxSteerAngle = 30f;

private bool hasContact = false;

private float motorForce = 0f;

public void HasContact (){

hasContact = true;

}

void Start () {

rigidbody.centerOfMass = new Vector3 (0,-2,0);;

}

// Update is called once per frame

void FixedUpdate () {

Page 75: UNIVERSIDAD CENTRAL DEL ECUADOR … · 4.1.2 Height Maps con Programación C# ... Fuente:  ... En el campo educativo o formativo. La animación en 3d nos muestra

Videojuego 3D simulando conducción de vehículo

60

motorForce = Input.GetAxis("Vertical")*speed;

if(hasContact)

rigidbody.AddRelativeForce (0f, 0f, motorForce);

float rotation = Input.GetAxis("Horizontal")*maxSteerAngle;

RuedaDD.localEulerAngles = new Vector3 (0f, rotation, 0f);

RuedaDI.localEulerAngles = new Vector3 (0f, rotation, 0f);

hasContact = false;

}

}

Clase DetectWheelColV3

using UnityEngine;

using System.Collections;

public class DetectWheelColV3 : MonoBehaviour {

private WheelCollider carWheel;

private WheelHit hit;

private bool ishit;

void Start () {

carWheel = this.collider as WheelCollider; //a nuestra

rueda del coche le asiganmos nuestro colider

}

Page 76: UNIVERSIDAD CENTRAL DEL ECUADOR … · 4.1.2 Height Maps con Programación C# ... Fuente:  ... En el campo educativo o formativo. La animación en 3d nos muestra

Videojuego 3D simulando conducción de vehículo

61

void FixedUpdate () {

ishit = carWheel.GetGroundHit (out hit);

if (ishit)

this.transform.parent.parent.SendMessage ("HasContact");

// manda un mensaje al padre, este llama a la funcion hasContact

}

}

Clase PasarNivel

using UnityEngine;

using UnityEngine.UI;

using System.Collections;

public class PasarNivel : MonoBehaviour {

public void LoadLevel(string levelName)

{

Application.LoadLevel("Main");

}

public void ExitApplication()

{

Application.Quit();

}

Page 77: UNIVERSIDAD CENTRAL DEL ECUADOR … · 4.1.2 Height Maps con Programación C# ... Fuente:  ... En el campo educativo o formativo. La animación en 3d nos muestra

Videojuego 3D simulando conducción de vehículo

62

public void mission2(string levelName)

{

Application.LoadLevel("Second");

}

}