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
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.
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
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
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
Videojuego 3D simulando conducción de vehículo
vi
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
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
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
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
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
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
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
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
Videojuego 3D simulando conducción de vehículo
xv
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.
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
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.
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 φ.
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
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.
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
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
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
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
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
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
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:
𝐹 = −𝑘 δ
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
𝑟
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
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
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
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.
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
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.
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
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.
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
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
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.
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
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.
Videojuego 3D simulando conducción de vehículo
28
Diseño de Pantallas
Figura 10: Pantalla inicial
Figura 11: Pantalla de carga
Videojuego 3D simulando conducción de vehículo
29
Figura 12: Pantalla de Ruta
Figura 13: Pantalla Fin del Camino
Videojuego 3D simulando conducción de vehículo
30
Figura 14: Pantalla perdiste del juego
Figura 15: Pantalla historia del camino Conquistadores
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/
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
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.
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.
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
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:
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 .
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
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.
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
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
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.
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
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.
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);
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
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.
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.
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.
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.
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.
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.
Videojuego 3D simulando conducción de vehículo
53
ANEXOS
Videojuego 3D simulando conducción de vehículo
54
ANEXO 1
CÓDIGO FUENTE DE CLASE FORM1
(HEIGHT MAP)
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();
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)
{
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)
{
}
}
}
Videojuego 3D simulando conducción de vehículo
58
ANEXO 2
CODIGO FUENTE DE CLASE CARV3
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 () {
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
}
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();
}
Videojuego 3D simulando conducción de vehículo
62
public void mission2(string levelName)
{
Application.LoadLevel("Second");
}
}