analisis de las herramientas unity y blender para el desarrollo de videojuegos con un enfoque...

13
1. Análisis de las herramientas Unity y Blender para el desarrollo de videojuegos con un enfoque educativo Geovanny Méndez, Enmanuel Obviedo, Gabriel Fallas, Cristiám Vega, Abel Méndez Escuela de Computación, Tecnológico de Costa Rica San Carlos, Costa Rica [email protected] [email protected] [email protected] [email protected] [email protected] Resumen— Este trabajo presenta el planeamiento y desarrollo de un videojuego con un fin educativo. Se plantea la importancia del aprendizaje lúdico, y se elaboró una trama para un videojuego que relacionase dicho aprendizaje con el medio ambiente. Se utilizaron las herramientas Unity y Blender para desarrollar el videojuego. Se presenta un análisis detallado del proceso de desarrollo del mismo. Algunos objetos tridimensionales fueron modelados, texturizados y animados, en el programa Blender, y luego se exportaron a Unity para crear los niveles. Se programaron animaciones gráficas utilizando matrices de transformación, y se utilizaron algoritmos de inteligencia artificial usados comúnmente en los videojuegos para los adversarios. El proyecto recopila un análisis tanto de las herramientas para el desarrollo de videojuegos, así como como la problemática medioambiental, y el aprendizaje lúdico como soporte educativo. Palabras clave— Blender, educación, Unity, videojuegos, medio ambiente A. INTRODUCCIÓN Todo lo que permita al ser humano disfrutar de lo que hace, es un valor agregado que facilita su evolución cognitiva, y despierta el interés del mismo por lo que aprende y hace. Según Freud, la imposibilidad de realizar los deseos crea una tensión, que se incrementa con el tiempo. Al mismo tiempo, se refiere al juego como un factor importante para reducir esta tensión. Los juegos propician la creatividad y potencian la lógica y la racionalidad, estimulan la recreación y la colección (utilizando contenidos entretenidos como estrategia de motivación), y demandan orden absoluto y supremo. Posee espacio y tiempo propio, por lo que conlleva una dinámica particular de relacionarse con el entorno del jugador. El concepto de juego se puede traer a la actualidad, en donde predominan los aparatos electrónicos y las computadoras, los smartphone y las videoconsolas, y que se ha convertido en un aspecto clave para el desarrollo del ser humano desde su etapa más temprana de desarrollo intelectual. Cabe destacar que los videojuegos son una creciente economía en el mercado del entretenimiento, pero sobre todo, son un componente inseparable de la sociedad actual, colectivo que tiene, incluso para los proyectos importantes a nivel socio cultural, y no solo para el entretenimiento, una actitud lúdica. La actividad del ser humano actual está descrita en su mayoría por la inquietud, el jugueteo y el movimiento para los proyectos que se emprenden y la relación con el entorno. La actitud lúdica del ser humano es una actitud plena frente a la vida, y no una simple actividad que se adiciona a todas las demás actividades sociales. Aprovechando esto, es muy importante que exista un replanteamiento sobre las formas clásicas de aprendizaje, y un aprovechamiento de las nuevas tecnologías, para acelerar y mejorar el proceso de aprendizaje del estudiante y el ciudadano, en sus diferentes etapas intelectuales. Hoy en día todo tiende hacia la tecnología y las aplicaciones interactivas. Aprovechando esto, la educación se está volviendo cada vez más interactiva. Los videojuegos son programas de computador que tienen como fin simular el mismo efecto que producen los juegos clásicos, y que explotan de igual manera la actitud lúdica del usuario. El videojuego educativo se considera un género independiente de los demás géneros de videojuegos. Un videojuego puede tener varios géneros mezclados para lograr llamar la atención del jugador hacia diferentes temáticas. Por ejemplo un juego educativo puede tener elementos de otros juegos que han sido éxitos comerciales. De esta forma se logra entretener mientras se educa, lo que incita a los jugadores a continuar cumpliendo los objetivos del juego. Existen multitud de temas sobre los que se puede educar tanto al estudiantado como a la población en general, e incluso a ambos simultáneamente. Hay temas que son relevantes tanto para las universidades, como para la población general, como los temas del Proyecto Genoma Humano, la ingeniería

Upload: itcr

Post on 24-Jan-2023

0 views

Category:

Documents


0 download

TRANSCRIPT

1. Análisis de las herramientas Unity y Blender para el desarrollo de videojuegos con

un enfoque educativoGeovanny Méndez, Enmanuel Obviedo, Gabriel Fallas, Cristiám Vega, Abel Méndez

Escuela de Computación, Tecnológico de Costa Rica San Carlos, Costa [email protected]

[email protected]@[email protected]

[email protected]

Resumen— Este trabajo presenta el planeamiento y desarrollo de un videojuego con un fin educativo. Se plantea la importancia del aprendizaje lúdico, y se elaboró una trama para un videojuego que relacionase dicho aprendizaje con el medio ambiente. Se utilizaron las herramientas Unity y Blender para desarrollar el videojuego. Se presenta un análisis detallado del proceso de desarrollo del mismo. Algunos objetos tridimensionales fueron modelados, texturizados y animados, en el programa Blender, y luego se exportaron a Unity para crear los niveles. Se programaron animaciones gráficas utilizando matrices de transformación, y se utilizaron algoritmos de inteligencia artificial usados comúnmente en los videojuegos para los adversarios. El proyecto recopila un análisis tanto de las herramientas para el desarrollo de videojuegos, así como como la problemática medioambiental, y el aprendizaje lúdico como soporte educativo.

Palabras clave— Blender, educación, Unity, videojuegos, medio ambiente

A. INTRODUCCIÓN

Todo lo que permita al ser humano disfrutar de lo que hace, es un valor agregado que facilita su evolución cognitiva, y despierta el interés del mismo por lo que aprende y hace.

Según Freud, la imposibilidad de realizar los deseos crea una tensión, que se incrementa con el tiempo. Al mismo tiempo, se refiere al juego como un factor importante para reducir esta tensión.

Los juegos propician la creatividad y potencian la lógica y la racionalidad, estimulan la recreación y la colección (utilizando contenidos entretenidos como estrategia de motivación), y demandan orden absoluto y supremo.

Posee espacio y tiempo propio, por lo que conlleva una dinámica particular de relacionarse con el entorno del jugador.

El concepto de juego se puede traer a la actualidad, en donde predominan los aparatos electrónicos y las computadoras, los smartphone y las videoconsolas, y que se ha convertido en un

aspecto clave para el desarrollo del ser humano desde su etapa más temprana de desarrollo intelectual.

Cabe destacar que los videojuegos son una creciente economía en el mercado del entretenimiento, pero sobre todo, son un componente inseparable de la sociedad actual, colectivo que tiene, incluso para los proyectos importantes a nivel socio cultural, y no solo para el entretenimiento, una actitud lúdica.

La actividad del ser humano actual está descrita en su mayoría por la inquietud, el jugueteo y el movimiento para los proyectos que se emprenden y la relación con el entorno. La actitud lúdica del ser humano es una actitud plena frente a la vida, y no una simple actividad que se adiciona a todas las demás actividades sociales.

Aprovechando esto, es muy importante que exista un replanteamiento sobre las formas clásicas de aprendizaje, y un aprovechamiento de las nuevas tecnologías, para acelerar y mejorar el proceso de aprendizaje del estudiante y el ciudadano, en sus diferentes etapas intelectuales. Hoy en día todo tiende hacia la tecnología y las aplicaciones interactivas. Aprovechando esto, la educación se está volviendo cada vez más interactiva.

Los videojuegos son programas de computador que tienen como fin simular el mismo efecto que producen los juegos clásicos, y que explotan de igual manera la actitud lúdica del usuario. El videojuego educativo se considera un género independiente de los demás géneros de videojuegos.

Un videojuego puede tener varios géneros mezclados para lograr llamar la atención del jugador hacia diferentes temáticas. Por ejemplo un juego educativo puede tener elementos de otros juegos que han sido éxitos comerciales. De esta forma se logra entretener mientras se educa, lo que incita a los jugadores a continuar cumpliendo los objetivos del juego.

Existen multitud de temas sobre los que se puede educar tanto al estudiantado como a la población en general, e incluso a ambos simultáneamente. Hay temas que son relevantes tanto para las universidades, como para la población general, como los temas del Proyecto Genoma Humano, la ingeniería

2

genética, las problemáticas medio ambientales, donde están en una etapa de investigación pero que se considera en unos años tomarán especial relevancia para la sociedad. Estos temas son comentados en cursos universitarios tales como los seminarios, y fuera de las universidades se hacen esfuerzos para hacer llegar la información a las personas en general, a través de campañas y panfletos.

Por consiguiente, este proyecto realiza un análisis de la actitud lúdica en el aprendizaje, utilizando para ello la temática de los problemas medio ambientales tales como la deforestación y la contaminación por basura, a través un videojuego llamado “Nature: The Awakening of L3”, que pretende crear conciencia sobre dicha problemática.

El desarrollo de un videojuego requiere de creatividad y organización. En este tipo de proyectos exige cierto nivel de experiencia para abarcar todos los objetivos, así como las herramientas adecuadas con las que se desarrollará toda la parte digital del mismo.

El desarrollo de videojuegos consiste en utilizar software especializado multipropósito, que permita unir el trabajo realizado por un equipo que tiene conocimientos específicos sobre diseño gráfico, programación, edición de formatos multimedia, y hardware, así como creatividad y afinidad con la promoción de un producto de manera comercial, con un fin determinado, de manera eficiente.

Dicho software consiste en una serie de herramientas para crear personajes, escenarios, sonido y música, animaciones e imágenes en alta definición, así como toda la parte logística, generalmente lenguajes de programación y sus diferentes variantes.

Generalmente estas herramientas se presentan a manera de motores de videojuegos, sistemas de creación de escenarios, y programas “todo-en-uno”, que permiten modelar, texturizar, e incluso realizar la animación, en un mismo programa.

Los motores de videojuegos son herramientas muy potentes, pero requieren de cierto grado de habilidad. Algunos de los motores más reconocidos por los impresionantes resultados que han dado, en los últimos tiempos están Rage Engine (GTA IV + Episodes), Cry Engine (Crysis 2), Naughty Dog Game Engine (Uncharted: Drake's Fortune), The Dead Engine (Dante's Inferno), Unreal Engine (Gears of War), Avalanche Engine (The Hunter), IW Engine (Call of Duty: World at War, Quantum of Solace, Modern Warfare 2), Anvil Engine (Assassin's Creed, Prince of Persia), EGO Engine (Colin McRae DiRT 2) y Geo-Mod Engine (Red Faction: Guerrilla).

De todos estos motores mencionados, el más utilizado por las compañías de videojuegos es el Unreal Engine, desarrollado (en su primera versión) por Epic Games (USA) para el videojuego Unreal. Este motor ha servido para crear muchos juegos, probablemente sea el motor más reconocido y más

utilizado de la actualidad, y aún se actualiza.

En ocasiones que lo requieren los desarrolladores modifican el motor, o crean uno nuevo basándose en uno previo. El motor Unreal fue programado utilizando el lenguaje C++. Este motor es libre y multiplataforma.

La cantidad de tareas que se pueden trabajar en un motor de videojuegos son las más importantes para el desarrollo de este tipo de proyectos.

Algunas de las tareas que incluía la primera versión del Unreal Engine, que fue lanzada en 1998, incluye renderizado, detección de colisiones, Inteligencia Artificial, opciones para redes, visibilidad, y manipulación de archivos.

Se ha optado por utilizar herramientas que generalmente son más intuitivas y accesibles para iniciar con el desarrollo de videojuegos, de entre las cuales se han seleccionado Unity (desarrollado por la compañía Unity Technologies) y Blender de Fundación Blender)

Algunas de las razones por las que Blender fue elegido es porque es gratuito, multiplataforma, libre, su tamaño es mucho menor al de otros programas similares, y la gran cantidad de funcionalidades que tiene para el desarrollo de entornos virtuales tridimensionales, tales como el modelado, texturizado, trabajo con primitivas geométricas, y un motor de videojuego que se puede manipular mediante Logic Bricks así como programación utilizando el lenguaje de programación Python.

Por otra parte el programa Unity permite importar modelos desde diferentes programas, crear terrenos (con posibilidad de introducir objetos prefabricados, como árboles), agregar fuerzas tales como el viento y la presión, agregar un cielo, trabajar con partículas, y además permite exportar el producto finalizado para que pueda ser reproducido en dispositivos móviles, videoconsolas, y en el computador a manera de aplicación de escritorio, o utilizando el navegador de internet.

El propósito de este proyecto es responder a la pregunta ¿Un videojuego puede ser creado completamente en Blender y obtener un resultado lo suficientemente aceptable como para prescindir de la herramienta Unity?

Para ello se ha propuesto desarrollar un videojuego de 4 niveles en Unity, poniendo a prueba las capacidades del software, y crear un nivel en Blender reutilizando los conocimientos adquiridos en Unity. Es una investigación de forma paralela entre los dos programas, de manera tal que al final se pueda determinar el nivel de productividad con ambos programas.

No será una comparación entre ambos programas, ya que ambos tienen propósitos diferentes, sino que se determinará, si Unity es realmente necesario bajo ciertas condiciones, y si se puede prescindir de este para el desarrollo de un videojuego.

3

Se tomarán en cuenta aspectos como componentes de facto, número de pasos para poder realizar una misma tarea, rendimiento requerido del computador y gastos de recursos de ambos programas, organización de los elementos que conforman al videojuego (el entorno de desarrollo así como la capacidad de ambos para agregar nuevas funcionalidades a través de componentes Third-Party, entre otros.

B. LOS VIDEOJUEGOS COMO HERRAMIENTA EDUCATIVA

La lúdica como un complemento a la educación

Los modelos de educación actuales intentan que el alumno desempeñe un papel activo en el proceso enseñanza-aprendizaje, con el fin de desarrollar sus competencias permitiendo estar altamente calificado y competente para asumir los retos que las nuevas sociedades plantean. En los últimos años se ha prestado especial atención al componente lúdico como un facilitador de estas tareas. La lúdica enriquece el aprendizaje creando un espacio dinámico y virtual que transforma el entorno e incluso la forma de interactuar con éste.

El aprendizaje lúdico tiene como elemento principal el juego. Mediante lúdica, el estudiante comienza a pensar y actuar en medio de una situación determinada que fue construida con semejanza en la realidad, con un propósito pedagógico.

La lúdica se puede emplear para alcanzar diferentes objetivos según las necesidades que tengan. Algunos de los objetivos generales que se pueden mencionar son:

• Enseñar a los estudiantes a tomar decisiones ante problemas reales.

• Preparar a los estudiantes en la solución de los problemas de la vida y la sociedad.

• Contribuir a la asimilación de los conocimientos teóricos de las diferentes asignaturas mediante un aprendizaje creativo.

Los videojuegos como un auxiliar didáctico

En los últimos años se ha venido utilizando el concepto edutainment o edujuegos para referirse a los juegos que pueden ser utilizados con fines didácticos. Los edujuegos tienen la intencionalidad aprender, además de entretener y divertir.Según Sedeño[1], los videojuegos poseen dos grandes tipos de beneficios educativos a sus jugadores:

“Por un lado, una dimensión socio afectiva, es decir, ayuda a dinamizar las relaciones de grupo entre los niños, y potencia el trabajo participativo y

colaborativo tanto en el universo del aula como en todos las esferas activas de la vida. Los videojuegos permiten introducir en el niño la reflexión acerca de ciertos valores y conductas a través de su contenido y de las consecuencias de las acciones que efectúan virtualmente”.

“Por otro, una dimensión más tradicionalmente educativa, que es la que se refiere a todo un ámbito de desarrollo de habilidades y destrezas como son el control psicomotriz, la coordinación óculo- manual, el desarrollo de la espacialidad y de la capacidad deductiva, la resolución de problemas, la imaginación, el pensamiento (la comprensión, la reflexión, la memorización, la facultad de análisis y síntesis), etc. Los videojuegos permiten dinamizar la experiencia del aprendizaje y acercarla al mundo polivalente y operativo en el que se mueve el niño y/o adolescente”.

Se debe hacer una revisión más detallada de las temáticas, contenidos y enfoques de los videojuegos para incluirse en la nómina de educativos. Lo que sí es un factor importante de aprovechar es que para muchos niños y adolescentes los juegos es la primera puerta al mundo de la informática.

Para Sedeño [1], “una gran ventaja de este tipo de textos multimedia es la posibilidad de crear mensajes sin la necesidad de que exista referente externo, con los beneficios creativos que esto supone. La no limitación del mundo físico y la mayor libertad para la elaboración, diseño y creación de imágenes está al total servicio para la generación de mundos virtuales alternativos y actividades de estrategia, de acción, de simulación, en los que el alumno puede trabajar, observando las implicaciones y consecuencias de los procesos o fenómenos, y descomponiendo las situaciones en sus partes, todo ello sin riesgo o peligro alguno”.

“Los videojuegos exigen una implicación activa en el propio desarrollo de los mismos. El jugador/a se ve obligado a tomar decisiones que le involucran en el proceso del juego. El jugador/a se siente incluido en el juego porque el programa le ofrece desempeñar un rol en la trama en un contexto simulado ligado a la fantasía (escenas desarrolladas en el espacio o en tiempos lejanos). La sensación de implicarse en un rol produce una fuerte identificación en el jugador/a que asume como propias las coordenadas del relato. Esto es lo que los hace esencialmente diferentes al resto de los fenómenos audiovisuales contemporáneos” [2].

Los videojuegos multiusuario son una gran oportunidad para el desarrollo de trabajos colaborativos. Los jugadores pueden crear y compartir un espacio virtual en donde se pueden enfrentar a diferentes situaciones que impliquen colaboración, estrategia, diálogo y comunicación. Son espacios donde se puede experimentar y repetir el ejercicio en busca de diferentes resultados.

4

Las evaluaciones de contenidos podrían tener algunas ventajas si se emplearán de los videojuegos como elementos lúdicos en el aprendizaje. La evaluación se puede presentar de forma más atractiva a los alumnos. Resolver problemas mediante un juego podría mejorar la concentración de la persona. Una gran ventaja de los videojuegos es son un entorno de experimentación sin consecuencias.

Aspectos básicos de “Nature: The Awakening of L3”

El juego es del género de acción con la categoría o tipo de FPS (First Person Shooter) junto con el género educacional (edutainment). “Nature: The Awakening of L3” consta de dos niveles (o escenarios) distintos, que forman parte del contexto en el que el jugador estará involucrado, presentándose de acuerdo a la cronología de la temática.

La lógica funcional del juego consiste en una serie de razonamientos artificiales, los cuales son programados para computar la inteligencia artificial, mediante técnicas de AI, (ej. Árboles para toma de decisiones óptimas) de manera que induzca al jugador a nivel más allá de objetividad y este tenga a la vez que razonar con ciertos criterios para poder tomar decisiones que determinen la interacción entre el jugador y el juego.

Desarrollo del guión y la trama en base a la temática medioambiental

A raíz del creciente nivel de contaminación que enfrenta el mundo en la actualidad, y teniendo presente el alcance que del mercado de los videojuegos, se tomó la decisión de idear y desarrollar un videojuego en tres dimensiones, cuyo objetivo principal es crear en el jugador una visión conservacionista y protectora sobre el medio ambiente.

De acuerdo con las diferentes problemáticas actuales [0] se identificaron los siguientes tópicos a los cuales dar énfasis:

• Deforestación• Contaminación de los suelos, hídrica y atmosférica.• Explotación desmedida de los recursos naturales.

El planeamiento de la trama y el guión se realizó con reuniones durante varias semanas, donde se realizaban bocetos, modelos, texturas, logotipos y la escenografía en general.

Así mismo se planearon los objetos, los cuales debían responder a la solución por parte del personaje en relación a un problema específico, mediante objetivos (misiones) que permiten avanzar en la trama, o pasar de nivel, así como mejorar las estadísticas del jugador (como su estado vital).

Otros temas importantes que fueron tomados en cuenta en esta etapa temprana fueron la banda sonora y los efectos

de sonido. Se concluyó que estos estaban divididos en dos facetas. Por una parte, sonidos de naturaleza como gotas, viento, agua, animales nocturnos, entre otros. Y por otra parte, sonidos fríos y oscuros que reflejaran el ambiente pos apocalíptico a causa de la destrucción ambiental.

Con respecto a lo que el jugador debía hacer con el personaje, se tuvo que tomar en cuenta el guión principal y al mismo tiempo, las misiones, y que estas correspondieran con el género del videojuego. La trama se desarrolla en un espacio abierto donde el personaje utiliza los controles para moverse y poder ver cómo ha quedado el paisaje luego de la contaminación.

El personaje despierta en un estado de amnesia cerca de un lugar cubierto por montículos de basura, en una zona afectada severamente por la contaminación. Después de unos minutos de alucinaciones consigue estabilizarse; decide caminar por los alrededores del lugar, con la idea de encontrarse algún pueblo cercano para aclarar su mente; él no recuerda la causa de la gran contaminación.

Tras caminar un poco, evidencia como los lagos han sido completamente contaminados, siendo eliminada cualquier forma de vida, dentro y en los alrededores de ellos. Después de un largo tiempo de búsqueda encuentra un lago con condiciones aceptables para el consumo; el personaje debe dirigirse obligadamente a ingerir esa agua, de no hacerlo su vida decrecerá lentamente hasta morir.

El exceso de contaminación en el ambiente cobra su precio sobre las pocas personas que aún habitan este hostil entorno. Como medida de supervivencia y deseo por conseguir restaurar el medio ambiente, una organización llamada Nature se plantea como principal objetivo recuperar el estado habitable que una vez tuvo la Tierra. Pero para conseguirlo debe reunirse un numeroso equipo de personas (los Colectores) dispuestas a realizar tal labor. Para ello se debe someter a cada una de los voluntarios a un riguroso experimento de modificación genética, el cual consiste en fortalecer su resistencia inmunológica y física, para evitar ser destruido por la excesiva contaminación existente en el exterior.

Desafortunadamente los planes para Nature no resultan ser los esperados; algo no sale bien con uno de los Colectores, este empieza a reaccionar de manera violenta durante el proceso de transformación. El sujeto escapa y destruye el laboratorio Nature. Afortunadamente no todos los que estaban en el proceso de transformación se vieron afectados tras dicho incidente, entre ellos se encuentra el personaje principal (L3), quién a partir de esa etapa tendrá como responsabilidad detener a L0 (sujeto causante del desastre) y culminar con el objetivo de Nature (la restauración del medio ambiente).

Algunas escenas son conmovedoras para el jugador, como el nivel de la tala de árboles, y otras son escenas de acción. El

5

tema se centra completamente en la destrucción ambiental que hay en los alrededores, y resalta las necesidades que tiene el ser humano de, por ejemplo, beber agua potable, o protegerse de los rayos ultravioleta, y de la consciencia ambiental, sembrando árboles y cuidando la naturaleza.

De las ideas al papel: Dibujado de elementos naturales y pos apocalípticos.

En la creación de los ambientes del videojuego se elaboraron varios dibujos generando con ellos una serie de bocetos, que fueron utilizados como punto de partida para diseñar el videojuego. Los bocetos dieron pie a la realización de la introducción, en la que se explica la historia del videojuego.

El grupo estuvo imaginando cómo serían los escenarios en conjunto, así como el los factores del diseño que lo harían original, combinando ideas de varias obras de ciencia ficción y fantasía contemporáneas (Cyberpunk, Acción) y obras de arte surrealistas (Giorgio de Chirico, Roland Topor, Salvador Dalí, entre otros).

Se dibujaron cuatro escenarios iniciales.; los dos primeros representan el mundo sin contaminación, para los cuales se esbozaron un paisaje urbano libre de contaminación, y un paisaje rural (montaña, lago y árboles) libre de contaminantes y que representa lo sano (tomando como referencia lugares montañosos como las montañas de China).

Los dos siguientes dibujos corresponden a los mismos paisajes respectivamente, pero con el paisaje urbano destrozado (las personas han muerto, la contaminación ha abarcado y destruido todo) y el paisaje rural está muerto y erosionado. Para realizar esto se utilizaron papel bond, lápiz, borrador y pluma. Después de elaborar el dibujo, se escanearon, para así tenerlo en un formato digital, con el que resultaría más fácil depurarlo. Al final se tomaron estos dibujos como referencia para crear todos los modelos, las luces, la textura y el terreno.

A partir de esta etapa, se comienzan a utilizar las herramientas Blender y Unity para el desarrollo del software que contendrá el videojuego.

C. ANÁLISIS DE LAS HERRAMIENTAS UNITY Y BLENDER PARA EL DESARROLLO DE VIDEOJUEGOS

Detalles básicos de Unity y Blender

Unity y Blender pueden ser utilizados para crear videojuegos que puedan ser ejecutados en un computador. Existen determinadas diferencias y similitudes que deben ser tomadas en cuenta antes de iniciar cualquier proyecto con alguna de las dos herramientas.

Por una parte, Blender es una herramienta multipropósito que permite modelar, texturizar, y hacer rigging (un proceso en el que se le da una estructura similar a los huesos a un modelo, de manera que se pueda controlar su cinemática y darle movimiento de forma gradual). Estas funciones son importantes para la creación de personajes y estructuras en tres dimensiones de diferentes naturalezas.

En Blender se pueden crear personajes, darles textura y movimiento, e incluso programarlos para que tengan un determinado comportamiento lógico. También se puede crear todo tipo de estructuras en tres dimensiones.

La interfaz gráfica del software Blender permite personalizar la interfaz gráfica de diferentes formas, y manejar todas esas formas al mismo tiempo. Por ejemplo, se pueden agrupar todas las ventanas y menús que sirven para el texturizado, y guardarlas bajo algún nombre específico. Hay un panel que permite cambiar de vistas entre organizaciones de ventanas. En cuanto a la organización del entorno de desarrollo, Blender es bastante accesible para todo tipo de operadores.

Por otra parte, Blender no permite exportar para consolas conocidas del mercado, ya que la licencia es GPL en contraposición con las licencias de los SDK que permite desarrollar para esas plataformas.

En el caso del software Unity, es un programa que permite conectar a los objetos 3D (y de otro tipo, como cámaras y luces, fuerzas de viento, agua, entre otros) con un lenguaje de programación conocido como Unityscript, y al mismo tiempo, permite agrupar a los objetos en 3D para crear estructuras cuyos elementos que la conforman puedan actuar de forma colectiva. Permite la creación de escenarios en tres dimensiones, mezclando elementos gráficos con programación avanzada. El programa trae scripts y elementos prediseñados (llamados Assets) que pueden ser de utilidad para la creación de mundos con determinada temática.

Los escenarios creados en Unity están compuestos por cámaras y luces que determinan la forma en la que se va a renderizar finalmente la escena. Además, permite introducir varias cámaras para hacer cambios de perspectivas.

Computación y Matemática en Unity y Blender

La tarea de desarrollar un videojuego requiere de un cierto nivel de conocimiento de computación. En primer lugar, las representaciones de los elementos dentro del editor 3D (en el caso de Unity llamado Gizmos) son en realidad producto de las transformaciones de las coordenadas (x,y,z) a un plano en dos dimensiones (la pantalla del computador) con coordenadas (x,y). Esto en algebra lineal aplicada se conoce como proyección, una de las transformaciones no lineales junto con el escalamiento (cambiar de tamaño un objeto) y la translación (mover un objeto de un sitio a otro sin deformarlo). En cuanto a las transformaciones lineales se

6

toman en cuenta la contracción y la dilatación (acercamiento y alejamiento al punto de origen de las coordenadas) y la rotación (que utiliza ángulos, principalmente en coma flotante y con valores definidos, como la constante pi). En general, las tres transformaciones básicas son la rotación, el escalamiento y la traslación.

Para poder programar de forma adecuada un conjunto de modificaciones a los objetos tridimensionales, de forma exacta, se pueden utilizar, a nivel de programación, composiciones de matrices de transformación. Esto es, realizar una transformación y a esta aplicarle otra. Así, sucesivamente se aplican transformaciones lineales a otras, logrando los movimientos de los objetos sin que se deformen.

Estos objetos tridimensionales a su vez, están compuestos por vértices, caras y aristas, que son las entradas de dichas transformaciones. Por ejemplo, tomar todos o algunos de los vértices, aristas o alguna de las caras, y aplicarle alguna de las transformaciones.

A su vez, es probable que en ocasiones se requiera ir más allá de la geometría euclidiana, y crear objetos tridimensionales de tipo fractal, donde se debe crear una tabla que represente un sistema de funciones iteradas

T a b c d e f p1 0.86 0.03 -0.03 0.86 0 1.5 0.832 0.2 -0.25 0.21 0.23 0 1.5 0.083 -0.15 0.27 0.25 0.26 0 0.45 0.084 0 0 0 0.17 0 0 0.01

Tabla 1. Sistema de funciones iteradas para un helecho

Para la elaboración de este tipo de tablas se requieren conocimientos de la rama de las matemáticas conocida como probabilidades. Se aplica un algoritmo que itere miles de veces, creando un objeto (denominado atractor) compuesto de figuras similares a sí misma, conocida como fractal. Esto es garantizado por el teorema del fotomontaje o collaje.[3]

Además de las transformaciones gráficas de los vértices, aristas o caras de las figuras tridimensionales, existen otros aspectos del videojuego que requieren programación, tales como los algoritmos de inteligencia artificial, utilizados para que ocurran eventos inesperados por parte del jugador, que respondan o no a las acciones del personaje.

El desarrollo de estos algoritmos incluye además su optimización. Un ejemplo claro de algoritmos utilizados para videojuegos es el algoritmo Minimax, donde se intenta minimizar el daño y maximizar la oportunidad de ganar la partida. Dependiendo del tipo de situación e implementación, se puede requerir optimizar el método convencional de Minimax.

=++

=

=

1...

...

1

1

1 1

m

m

i ini

m

i ii

pp

apv

apv

(1)

La ecuación (1) es la que implica el teorema de Minimax, basado en el Teorema de Dualidad, que indica que dos problemas duales tienen un mismo valor. El máximo de oportunidad que un jugador puede ganar, es, al mismo tiempo, el mínimo de oportunidad que tiene el otro jugador de perder. Para poder optimizar este tipo de sistemas de ecuaciones se hace uso de la programación lineal, donde se intenta transformar un sistema de ecuaciones en un sistema de inecuaciones lineales, tal como lo es (1). A este sistema se le puede aplicar, a su vez, una nueva optimización:

=≥

=

=

),...,1(0

1

...

1

1

1

1 1

miforx

ax

ax

m

i ini

m

i ii

(2)

Donde la modificación relevante que se realizó en (2) fue intentar dar una interpretación lineal al último reglón del sistema, haciéndola lineal, y por lo tanto, más sencilla de conectar con el resto de la solución del problema y evitando una complejidad computacional adicional e innecesaria, que además conllevaría un gasto mayor de los recursos del sistema.

En general, conociendo el contexto matemático, se deben usar las librerías que aporta cada lenguaje de programación de cada herramienta.

Se deben dominar conceptos clave de programación y matemática, tal como el manejo de ángulos, algoritmos de inteligencia artificial y toma de decisiones, transformaciones lineales, geometría euclidiana y no euclidiana, entre otros, para poder programar estos script. El lenguaje Python tiene la librería mathutils de la que se pueden utilizar todas las funcionalidades matemáticas requeridas.

Para un desarrollador que está iniciando, esta tarea de programación puede ser un gran obstáculo para la creación de un primer videojuego. En todo caso, cuando se desarrollan videojuegos, hay personas encargadas de su programación. Pero con el programa Blender, se da un apoyo adicional al usuario, con el sistema de bloques lógicos conocido como Logic Bricks.

El BGE (Blender Game Engine) es una herramienta que permite programar videojuegos, conectando todos los elementos con el lenguaje de programación Python (un lenguaje orientado a objetos multiplataforma) y la

7

herramienta Logic Bricks, en la que se pueden establecer conexiones lógicas entre los elementos. Esta herramienta facilita la tarea de la configuración de acciones, para que la programación de las animaciones no se vuelva una tarea tan ardua.

Logic Bricks se compone de Sensores, Controladores y Actuadores. Estos tres se combinan para programar las acciones de los personajes y los eventos en una escena. Por ejemplo para crear un personaje en primera o tercera persona, en un videojuego con género FPS, se ha de mezclar una serie de scripts programados en Python, con conexiones en Logic Bricks.

Ilustración 1. Sistema Logic Bricks, Blender Game Engine

Los scripts son manejados en editor empotrado dentro de la misma interfaz del programa, que se puede ver en la Ilustración 1.

Los sensores reciben información desde diferentes medios, y se conectan con los actuadores a través de los controladores. Finalmente los actuadores realizan determinadas acciones que vienen por defecto en el sistema Logic Bricks.

Si se requiere un comportamiento muy específico que no aparece entre las opciones de los controladores, se deberá utilizar un script programado en lenguaje Python para permitir ese comportamiento.

Los scripts se pueden comunicar perfectamente con el sistema de Logic Bricks. Este sistema es el núcleo del Blender Game Engine.

Por otra parte, Unity, en lugar de traer el editor empotrado, trae una herramienta externa conocida como MonoDevelop, que se conecta con los diferentes lenguajes compatibles (C#, C++, Boo, ASP, y otros lenguajes)

Si se programa un videojuego en Blender y luego se quiere pasar este videojuego a Unity, hay muchas rutinas que

deberán ser reprogramadas. Prácticamente lo que se puede aprovechar en el sentido de acciones programadas, son las animaciones realizadas en Blender, pues estas se pueden llamar desde ambos lenguajes. Pero las transformaciones, basadas en la composición de matrices que fueron mencionadas con anterioridad, como las afines y las lineales, que relacionan a una entidad tridimensional con su entorno, deberán ser reprogramadas desde cero.

Esto debe ser tomado en cuenta a la hora de saber cuáles partes deben ser desarrolladas en Blender y cuáles en Unity.

Por otra parte, el proceso para conectar un objeto con un script o acción específica en Unity, consiste en seleccionar desde el editor 3D el objeto, y arrastrar el script a un panel de propiedades, desde donde se podrán modificar cierto tipo de variables. En Blender se van agregando los scripts desde el editor de scripts una vez seleccionado el objeto al cual se le quiere aplicar esa acción.

Un script puede ser reutilizado para varios objetos, lo que permite el aprovechamiento de los lenguajes OO. La reutilización de código es muy importante para el desarrollo de proyectos a gran escala, y en el caso del desarrollo de videojuegos esto se mantiene.

Para el manejo de los controladores se debe tener buen dominio de las expresiones lógicas tales como conjunciones, disyunciones (incluyendo la exclusiva) y la lógica. Si bien Unity no viene con el sistema de Logic Bricks que tiene Blender, en el caso de Unity vienen una serie de scripts de facto que facilitan la tarea de, por ejemplo, crear un personaje en primera persona, y otras tareas que deben ser programadas en Blender desde cero prácticamente. En este proyecto se desarrolló un nivel en Blender que permitiera concluir cuáles son realmente las ventajas de este sistema en contraposición con su ausencia (o la de un sistema similar) en Unity.

Componentes Third-Party y utilidades nativas para la creación de escenas.

Generalmente para poder utilizar un modelo 3D en Unity se debe ocupar alguna herramienta de modelado externa al programa, que permita crearlo. Algunos ejemplos de herramientas que permiten el modelado son Maya, 3DS Max, Blender, Cinema 4D.

Por otra parte existen herramientas que simplifican determinadas tareas, de forma que no se requieran modelar desde cero, estructuras comunes de las que se requiere partir desde cierto punto. Por ejemplo si se necesita modelar un ser humano, el programa MakeHuman permite crear un ser humano, modificando determinados parámetros sobre un cuerpo humano estándar que contiene las partes más básicas (brazos, piernas, rostro).

8

En los programas Unity y Blender, también se encuentran herramientas que abstraen la tarea de modelar objetos para los que ya se asumen ciertas propiedades, que siempre se cumplirán para todos los elementos de ese grupo.

Estos componentes pueden ser Third-Party, o desarrollados por los grupos encargados de dar soporte y desarrollo a Unity y Blender.

Una herramienta incluida en ambos programas, pero implementada de forma diferente (principalmente en cuanto a su configuración y funcionalidad), es la herramienta para la creación de árboles. Los árboles tridimensionales son estructuras que simulan a los árboles reales, simulando cada parte de estos por separado. Se considera pertinente analizar la herramienta de árboles, porque estas son estructuras tridimensionales que agrupan diferentes texturas y materiales. Las hojas y el tronco son de diferente material, color, textura, y por lo tanto reaccionan de forma diferente ante ciertos estímulos por parte del medio ambiente.

Crear un árbol en Unity no requiere modelado de objetos en 3D; incluido con el software, se ofrecen paquetes que permiten al desarrollador abstraerse, con el fin de agilizar su trabajo distribuir de manera eficiente el tiempo de desarrollo.

El editor de árboles en Unity, se trata de un paquete llamado Tree Creator (TC), que viene incluido con el programa. Al igual que TC, en la página de Unity, hay disponibles otros paquetes que pueden ser comprados, y permiten al desarrollador crear simulaciones y efectos interesantes y con poco esfuerzo.

Al abrir un nuevo proyecto en Unity, el gestor indica cuáles paquetes de los que vienen por defecto con el programa, se desean utilizar. Si lo que se pretende es simplemente añadir árboles, se realiza un check sobre el paquete Tree Creator.unityPackage; o bien, si ya se tiene una escena construida, y únicamente se necesita crear un árbol, se debe abrir el editor de árboles en Unity y entrar al menú GameObject → Create Other → Tree; con esto Unity crea el tronco del árbol y abre en la sección del inspector (que normalmente se llama panel de propiedades en otros programas) en el cual se puede regular el aspecto que se quiera dar al árbol.

TC muestra en su panel de configuraciones un diagrama de nodos, que corresponden a las diferentes partes del árbol. Dependiendo de la que sea seleccionada, cambiaran las opciones de edición. La mayor parte de los elementos del sistema de opciones son utilizados para aumentar el efecto de realismo sobre el árbol.

Si lo que se necesita es crear un árbol que cumpla con sus características básicas, se consigue ajustando únicamente algunas de las propiedades correspondientes a la categoría de Distribution (Ilustración 2), presente en cada nodo.

Ilustración 2. Tree Creator, Unity

Propiedades:• n1 - Tree root node• n2 - Branch Group: Corresponde al tronco del árbo• n3 - Branch Group: Corresponde a las ramas del

árbol• n4 - Leaf Group: Corresponde a las hojas del árbol

• Distribution: Conjunto de propiedades sobre las cuales se da énfasis para crear la estructura básica del árbol.

•• nh: Opción utilizada para agregar un nuevo nodo de

tipo hoja•• nr: Opción utilizada para agregar un nuevo nodo de

tipo rama.

Primeramente se configuran las propiedades del tronco del árbol, para ello se selecciona el tronco (Tree root node) en el diagrama que muestra la herramienta TC por defecto.

→ Se ajusta con la propiedad Tree Seed el ángulo de inclinación que tiene el tronco→ Se regula por medio de la propiedad Ground Offset, qué tanto estará el tronco del árbol enterrado.

Con lo anterior ya se tiene listo el tronco de árbol, ahora se procede a agregarle algunas ramas; para ello se debe agregar en el diagrama del árbol un nuevo nodo de tipo Branch Group, ya que si se utiliza el que ya fue creado, se tomaría con rama el tronco del árbol. Cada vez que se crea un nodo Branch Group y se indica que herede de otro del mismo tipo, se le indica a la herramienta que cree a partir de cada una de las ramas padres, una cantidad n de ramas hijas; entonces se debe configurar lo siguiente:

9

→ Mediante la propiedad Frequency se indica cuántas ramas se desean mostrar.→ La propiedad Distribution permite elegir la distribución de las ramas con respecto al tronco, esta puede ser aleatoria, alternada, opuesta o verticilada→ La propiedad Growth Scale como su nombre lo indica, permite ajustar la escala de crecimiento de las ramas→ Con Growth Angle se ajusta el ángulo de crecimiento; mientras más se acerque al valor 1, las ramas tendrán un ángulo más vertical.

Luego se procede a agregarle hojas a cada una de las ramas anteriormente creadas, de la misma manera, hay que posicionarse en el nodo que se utilizó para crear las ramas en el diagrama del árbol y esta vez se agrega un nodo de tipo Leaf Group, cliqueando el botón que simboliza las hojas.

En este nodo muestra las mismas propiedades y con la misma funcionalidad a las encontradas en el nodo Branch group, se configuran de igual manera a como se hizo con las ramas.

Después de haber configurado cada una de las propiedades anteriores en cada nodo, se procede a agregar material al tronco y a las hojas, este puede ser creado por manualmente con algún programa de diseño gráfico, o utilizar materiales predefinidos. Por ejemplo, dos de los materiales preconfigurados en Unity son BigTree_bark para el tronco y las ramas; y BigTree_leaves para las hojas.

Para texturizar el tronco hay que posicionarse en el nodo correspondiente, se selecciona desde la propiedad material del conjunto Geometry el material BigTree_bark, y el tronco estará texturizado; de igual manera para las ramas. Con respecto a las hojas, se debe posicionar sobre el nodo correspondiente y en la misma propiedad que rama, se selecciona el material BigTree_leaves de la colección.Una vez se tiene el árbol configurado de la forma que se ideó, este puede ser duplicado y utilizado en la escena cuantas veces sea necesario.

Los arboles creados con esta herramienta, dentro del entorno de Unity, tienen la particularidad de reaccionar ante diferentes situaciones presentes en el medio, por ejemplo: si un árbol es bruscamente golpeado su tronco se quebrará. Si la escena cuenta con corrientes de aire, el árbol se moverá automáticamente en dirección al viento.

Para que el árbol sea movido por el viento, se debe agregar una zona de viento cerca del mismo, hay que acceder a menú → Create Other → WindZone. Se coloca este nuevo elemento cerca del árbol, y se rota de manera que apunte en dirección del mismo

La simplicidad y rapidez con que se puede conseguir un árbol completamente personalizado, además de que no tener que preocuparse por la cantidad de vértices con los que cuente

el árbol, hace de esta herramienta ideal para dicha tarea, que resulta mucho más simple en comparación con otras herramientas o técnicas de diseño. En la Ilustración 3 se muestra un árbol creado con esta herramienta.

Ilustración 3. Árbol creado en Unity con la herramienta Tree Creator

Si se crea un árbol con un software de modelado, y el resultado final (el árbol) es un objeto con muchos vértices, al momento de incluirlo en Unity se notará la sobrecarga en el consumo de recursos que tendrá sobre el sistema, y aún peor, si se necesita crear muchas copias de dicho objeto sobre la misma escena, como sucede con los árboles.

En el caso de Unity el desarrollador no debe ser tan cuidadoso en ese detalle, pero si se está trabajando con Blender, se debe prestar especial atención con el manejo de la herramienta de creación de árboles. La primera diferencia con el Tree Creator de Unity, es que no existe una herramienta nativa en Blender para crear este tipo de estructuras. En Blender, la creación de árboles se realiza utilizando un componente Third-Party denominado Sapling: Add Tree. Para activar este componente se debe activar desde la sección de Addons.

Primero se presiona el botón que despliega los editores. En este botón se despliegan una serie de opciones clickeables, que son los diferentes editores, con los que se puede trabajar. Cuando se utiliza Blender, se debe acceder repetidas veces a todos estos menús de forma paralela.

Cada elemento tiene un ícono que identifica una funcionalidad. Debe ser seleccionado el editor User Preferences.

Las opciones de preferencia del usuario es un editor que permite configurar el comportamiento general del software. Se pueden cambiar opciones de interfaz como los colores e idiomas. Entre algunas opciones se encuentra la manipulación de vistas, manejo de sonidos, OpenGL y frames per second.

10

Dentro se encuentran 5 pestañas que son Interface, Editing, Input, Addons, Themes, File y System.

En la pestaña Add-ons aparecen todos los componentes adicionales al núcleo de Blender que pueden ser activados. Estos vienen agrupados por tipo.

Los principales tipos de complementos son:• 3D View• Add Curve• Add Mesh• Animation• Development• Game-Engine• Import-Export• Mesh• Object• Paint• Render• Rigging• System

Podrían existir otras características en el futuro, e incluso se puede definir un tipo determinado, dependiendo de la persona que crea el componente, generalmente un especialista. A estos componentes se les conoce como Third-Party. Dentro de cada Addon a seleccionar viene la siguiente información:

• Descripción: Lo que realiza el complementoAcceso (Muestra la ruta que se deberá seguir en los menús del programa para acceder a este elemento).

• Autor: Si es un autor, o múltiples autores.• Versión: Muestra la versión en caso de que se

requiera actualización del complemento.• Internet: Muestra un enlace a una Wiki y un sistema

de reporte de pulgas o bugs.• Una vez hecho esto se repiten los primeros dos

pasos, pero esta vez seleccionando el editor en 3D.

Los complementos o Addons pueden ser activados mediante un simple check. Algunos complementos vienen activos por default. En la versión 2.62 se encuentran los siguientes componentes activos

Import-Export:• Autodesk 3DS Format• Autodesk FBX Format• BioVision Motion Capture (BVH) format• STL Format• Scalable Vector Graphics (SVG) 1.1 format• Stanford PLY format• UV Layout• Wavefont OBj format• Web3D X33D/VRML format

Render• Cycles Render Engine

Una vez activo, se accede a la ruta de acceso, y se activa la funcionalidad, sin necesidad de reiniciar Blender.

Los menús son elementos que pueden desplegar submenús como opciones de menú. A su vez cada submenú puede tener también submenús y opciones de menú. Dependiendo del tipo de editor, los menús cambiarán constantemente.

En el submenu de curvas se encuentran por defecto las curvas Bezier, Circle, Nurbs Curve, Nurbs Circle y Path.

Estas opciones son clickeables. Al dar click sobre ellas, insertan el determinado tipo de curva en el editor 3D, de manera que se pueda comenzar a trabajar con ellas.

Una vez activado el complemento Add Curve: Sapling esta opción estará disponible bajo el submenú Add → Curve en el editor 3D.

Al dar click, aparece la curva sobre el lienzo de dicho editor.

El lienzo del editor permite introducir elementos para su manipulación en 3 dimensiones sobre los ejes (x,y,z) con vistas en perspectiva y ortogonal.

Una vez realizados los pasos anteriores, habrá aparecido la curva que representa al árbol. Ahora lo que se hará es empezar a realizar modificaciones sobre esta curva.

Dentro del lienzo, al presionar la tecla T o dar click en un símbolo de + que se encuentra a la izquierda, aparecerá el menú Object Tools. Normalmente este panel se compone por un conjunto de opciones, bajo un subpanel. Pero en este caso en el que se ha agregado una curva árbol, dicho panel estará compuesto por dos subpaneles. Debajo del subpanel que normalmente aparece, ahora se encuentra el subpanel para la modificación de los aspectos de la curva arbol que se han agregado. Dicho subpanel es el Sapling: Add Tree.

El subpanel de propiedades contiene todas las opciones posibles para la configuración geométrica (fractal) del árbol. Las opciones vienen configuradas para multiplicar secciones y aumentar el diámetro de la curva que representa las ramas y el tronco.

Las propiedades se distribuyen de la siguiente forma en un ComboBox:

• Setings• Armature• Leaves• Pruning• Branch Growth• Branch Splitting

11

• Geometry

De las cuales viene por defecto la opción Geometry.

Modelado, Texturizado y Rigging.

La documentación de Blender [4] y Unity [5] sirvieron como guía para aprender a utilizar las herramientas básicas de programación, modelado, texturizado y Rigging, entre otras funcionalidades (como el manejo de fuerzas, partículas y fluídos).

Se tomaron como base estas documentaciones para aprender a avanzar en cada etapa del proyecto. La codificación se hacía tanto en Blender como en Unity. En el caso del modelado, texturizado y rigging, fueron llevados a cabo en el software Blender.

Para el modelado se tomaron en cuenta el número de vértices de cada modelo independiente, para evitar una gran cantidad de los mismos. A mayor cantidad de vértices, más lento se vuelve un videojuego, pues las transformaciones a nivel matemático y computacional se realizan tomando como referencia estos vértices.

Ilustración 4. Modelo en Blender con 1446 vértices

En la Ilustración 4 se muestra el modelo para el personaje L2 en modo de oclusión geométrica. En el área superior derecha de Blender se puede visualizar el indicador de la cantidad de vértices que ha utilizado el modelo para representar al objeto tridimensional.

Primero se tomaba algún dibujo realizado a mano alzada por alguno de los miembros y se escaneaba, para luego colocarla como imagen de fondo.

El formato utilizado es el de modelsheet, el cual consiste en una serie de dibujos desde diferentes perspectivas.

Generalmente se utilizan dibujos de frente y de perfil, aunque, dependiendo del detalle que se quiera alcanzar, puede ser requerido dibujar vistas traseras e incluso diferentes vistas laterales (En caso de que el personaje sea asimétrico).

Luego se importaron estas imágenes y se colocaron en posiciones específicas. A partir de este punto, se debía agregar algún objeto tridimensional sobre el cuál se debían aplicar una serie de transformaciones con las herramientas de modelado.

Ilustración 5. Modelo en Blender de un Moai

En la Ilustración 5 se muestra el inicio del modelado de un Moai [6] para el cual se utilizó una imagen con fondo transparente. Estas imágenes son generalmente de formatos png, gif, y otros tipos de imágenes que permiten pixeles con transparencia. Esto es útil porque se puede ver lo que hay detrás de la imagen, lo cual podría ser requerido para modelar bajo determinadas circunstancias. La imagen se coloca detrás de lo que se desee modelar, utilizándolo como fondo. A partir de este punto, se utiliza un cubo, plano, esfera o cualquier otro objeto, y se aplican transformaciones de extrusión, escalado, translación y rotación. Estas operaciones pueden ser aplicadas a los vértices, aristas o caras. Depende de la etapa de modelado en la que se esté trabajando, se puede requerir trabajar con alguna de las tres, e incluso, trabajar con grupos de vértices, o grupos de las otras dos. Los elementos más básicos son los vértices, por lo que se tiene mayor control sobre el modelo. Casi todos los objetos fueron modelados utilizando principalmente los vértices.

12

Cuando un modelo es terminado, se puede continuar detallando el objeto, aplicando texturizado y, en algunos casos, rigging (por ejemplo en el caso de los personajes).

El modelo del Moai se puede exportar en formato FBX, ya que este formato es uno de los que admite el programa Unity.

Pero para los personajes y todos los demás objetos, generalmente se requiere texturizar, sino los objetos no se podrían distinguir de los demás. Se texturiza precisamente para dar más realismo a los modelos.

Los modelos hechos en Blender fueron texturizados para añadir detalles a sus superficies. Se utilizaron mapas UV (que son mapas de texturas), para los cuales Blender posee una herramienta específica.

El propósito es proyectar imágenes y patrones sobre los modelos. Estos pueden ser configurados para modificar, además del color, a la especularidad, la reflexión, la transparencia, y también para simular una profundidad tridimensional específica (Esto podría evitar gastar mucho tiempo en el modelado para estructuras que no lo requieren).

Es común que las imágenes y patrones de las texturas sean proyectados durante el renderizado, con lo cual se puede continuar añadiendo detalles a la estructura tridimensional, sin que estorben las texturas. Además se pueden desactivar temporalmente, o aplicarse como modificadores.

Además de la textura como fin, los mapas de texturas fueron también utilizados para esculpir, pintar y deformar objetos. Cada grupo de herramientas es compatible con la tarea del texturizado. Por ejemplo los cinceles para esculpir, y los pinceles. Las texturas también fueron utilizadas para simular efectos, tales como el efecto de agua (que fue utilizado en Blender).

Las texturas se tenía prevista para las vestimentas y los objetos. Desde la etapa de dibujado se pensó en los colores, y los materiales a utilizar. A los materiales se les agregó efectos para mejorar la calidad de los personajes, haciéndolos más realistas.

Para realizar las texturas se utilizaron herramientas de diseño gráfico y edición de imágenes, entre los cuales destacan GIMP, Adobe Photoshop y Adobe Fireworks.

Para disminuir el tiempo que conlleva la exhaustiva tarea de crear las texturas, se utilizaron texturas ya creadas. Algunas texturas, como las texturas de las paredes, que son monótonas, (pues son patrones que se repiten una y otra vez) utilizan un trozo y se configura mediante la propiedad tile, evitando tener que gastar recursos de memoria en texturas de gran tamaño.

El proceso para texturizar y el proceso para hacer rigging pueden ser realizados en cualquier orden, pues las tareas van después de que ha terminado el modelado.

Ilustración 6. Hueso para el cuello seleccionado

Si fue creada una textura, se debería de ocultar, pues el rigging utiliza las estructuras de huesos, que van por dentro del modelo.

Blender posee un sistema de rigging en el que los huesos son agrupaciones de objetos rígidos sin demora o indemorables, unidos con perfectas articulaciones, para simular de manera más fiel el esqueleto de una criatura viva.

En la Ilustración 6 se muestra el modelo del personaje L2 con el hueso del cuello seleccionado. Primero se colocó un hueso en modo objeto sobre el modelo, centrado en el personaje. Luego, en modo edición, se replicaron los huesos y se conectaron.

Unos huesos son padres de otros huesos. Esto es muy importante porque la forma en la que se coloquen determinará el movimiento final del personaje en general.

Los huesos actúan en grupo, por lo que una parte mueve a las demás partes. A su vez, el esqueleto moverá también al modelo.

Para el personaje L2 se utilizó una cadena de cinemática inversa que permite no solo transmitir los movimientos desde los huesos padre hacia los huesos hijo, sino también los movimientos de los huesos hijos son transmitidos a los huesos padre.

D. CONCLUSIONES

13

Los videojuegos son una oportunidad como herramienta de enseña ya que gozan de una enorme popularidad en la actualidad y se encuentran disponibles para múltiples plataformas tales como consolas, computadores, tabletas y teléfonos celulares. Sin duda, el reto es trabajar en los contenidos y objetivos que se desean alcanzar cuando se utiliza el videojuego.

Cada escena tiene un componente que invita al jugador a plantearse diversos pensamientos sobre el impacto medioambiental del hombre. A su vez, lo hace de una forma estratégica para que el jugador quiera continuar indagando sobre el impacto ocurrido en el planeta a raíz de los incidentes que se sucedieron. En la escena de los robots taladores, el jugador debe destruir a unos robots que fueron programados para talar todos los árboles de un bosque, y se tiene lo siguiente:

“Cuando los robots han sido derrotados por el jugador, uno de los robots le explica al personaje que solían haber bosques hermosos llenos de árboles rodeando laderas donde fluía el agua pura, pero que ellos fueron programados por una empresa productora de papel para talar. Ahora los humanos, quienes no pueden sobrevivir fuera de los refugios, no podían desactivar a los robots, los cuales habían quedado programados para continuar talando. Cada día los robots cruzaban el río y talaban árboles. Ya casi no quedaba ningún árbol en ese lugar. El robot queda inservible en ese momento y no dice nada más.”

Con este tipo de situaciones, se intentó dar un enfoque de ciencia ficción, y al mismo tiempo, dejar en forma clara la preocupación por la destrucción que ha sido causada. Incluso los robots, seres de metal, han tomado una serie de conciencia sobre el desastre ocurrido. Ese capítulo lleva como título, “El llanto de los robots”, pues los robots, quienes poseen inteligencia artificial, deben hacer un trabajo contra su “voluntad”. Son robots que han conseguido ser liberados por el jugador, y al mismo tiempo, el jugador podrá restaurar el bosque y continuar su recorrido por la historia.

Se considera por lo tanto que el guión fue planeado de forma correcta para el propósito educativo, y las misiones planteadas para el jugador han sido puntuales en crear una consciencia de protección para con el medio ambiente.

Con respecto al análisis de las herramientas, se considera que una mejora que se podría agregar a Unity es un sistema similar a Logic Bricks, que permita simplificar la tarea de programación.

La investigación acerca del desarrollo de videojuegos es muy útil para los estudiantes de ingeniería en computación, ya que les permite aprender algunas cosas importantes que de otra forma no verían en otros cursos. Por ejemplo, muchos

aspectos aplicados del álgebra lineal, como los espacios vectoriales (para la programación de las transformaciones de los objetos tridimensionales), y ramas de la matemática poco exploradas en la carrera, tal como la Geometría Analítica (Y la geometría en general). Se considera que el estudio de la física y la matemática son muy relevantes para los ingenieros, y para los ingenieros de computación esto también ha de cumplirse.

Por otra parte el uso de herramientas complejas como los motores de videojuegos y programas de desarrollo de interfaces avanzadas en tercera dimensión, permite a los investigadores desarrollar su creatividad y su habilidad como operadores de programas complejos.

Si se requiere programar una aplicación con una interfaz compleja, que realice una gran cantidad de tareas, lo más probable es que el uso de programas como Unity o Blender sirvan a los investigadores en cuanto a la presentación de las aplicaciones, lo cual es un aspecto muy importante en la actualidad.

REFERENCIAS

[0] Enlace de problemáticas medioambientales.

[1] Sedeño, A. M. La Componente Visual del Videojuego como Herramienta Educativa. Facultad de Ciencias de la Comunicación, Universidad de Málaga, España.

[2] La diferencia sexual en el análisis de los videojuegos. Instituto de la Mujer (Ministerio de Trabajo y Asuntos Sociales. CIDE (Ministerio de Educación y Ciencia).

[3] Gareth Williams, Algebra Lineal con aplicaciones 4ta edición.

[4] Documentación de Blender: http://wiki.blender.org/

[5] Documentación de Unity: http://unity3d.com/support/documentation/

[6] Heyerdahl, Thor. Skjølsvold, Arne. Pavel Pavel. The "Walking" Moai of Easter Island. Retrieved 8 August 2005.