Publicidad:
Terra
La Coctelera

En cuanto a modelos y herramientas


He recibido varios correos preguntandome como hacer los modelos y que herramientas utilizar.
Bueno, no podría dedicar un tutorial en modelamiento, por que la verdad en modelamiento es poco lo que se, pero si les puedo indicar como como conseguir modelos y que herramientas pueden utilizar para investigar un poco más.

En internet podemos encontrar una gran variedad de sitios que ofrece modelos gratis para descargar, pero no he encontrado un mejor lugar con mejores modelos que Turbosquid.
En este lugar encontraremos una gran variedad de modelos que en su mayoría son libres de descargar, solo debes registrarte en el sitio para bajarlos.

Si lo que quieres es diseñar tus propios modelos, no hay problema, en el mercado puedes encontrar muchisimas herramientas que te pueden ayudar, tales como Maya, Rhinos, etc. Pero por ahora te recomendaré 3dStudioMax que en este momento va por la version 9.0. Esta herramienta es muy utilizada por los desarrolladores profesionales de juegos y se ha convertido en las soluciones más populares.

Tutorial 3 - Cargar un modelo con XNA


Creo que aqui se pone un poco mas interesante este cuento de XNA, pues lo más rico al inciar a crear juegos es cargar y ver un modelo.
Que es un modelo?
Por Dios, un desarrollador nato de juegos no pregunta eso. Bueno aqui no somos desarrolladores natos, así que te dare la definición que me encontre aqui.

Modelo: En computación, un modelo en 3D es un "mundo conceptual en tres dimensiones".

Un modelo 3D puede "verse" de dos formas distintas. Desde un punto de vista técnico, es un grupo de fórmulas matemáticas que describen un "mundo" en tres dimensiones.

Desde un punto de vista visual, valga la redundancia, un modelo en 3D es un representación esquemática visible a través de un conjunto de objetos, elementos y propiedades que, una vez procesados (renderizacion) se convertirán en una imagen 3d.




Bueno ahi tenemos la definicion de un modelo, aunque esta muy tecnico lo voy a desbaratar de esta forma:
Si tenemos un juego que es de carrera de autos, pues los modelos son todos los componentes graficos, digase: Automoviles, pistas, publico, semaforos, etc. Basicamente es lo que vemos en el juego.

Aunque esto es una definición básica de lo que es un modelo, nos puede llevar varios días entender como funciona, pues tiene una complejidad mas grande, por que un modelo tambien comprende meshes, poligos, texturas, sociaciones, jerarquias, etc.
Pero por ahora con esto que sabemos podemos continuar.

Viene lo bueno.
En XNA es muy facil cargar un modelo, por lo que he leido en otros lenguajes de programacion si queremos cargar un modelo me tomaría muchas lineas.

Modelo Tetera para ejemplo
En el proyecto MiJuego que ya habiamos compilado en el tutorial anterior, importamos el modelo Cubo.x
Uhmmm pero antes de cargarlo, vamos a empezar a tener orden con nuestro proyecto, vamos a crear una carpeta que contendra todos los modelos que cargaremos a nuestro juego, llamada Modelos.



En esta carpeta le damos Add>Existing Item y agregamos Cubo.x


Despues de subido nuestro modelo al proyecto, vamos a cargarlo.

se crea la variable del modelo que vamos a cargar.

ReferenceGraphicsDeviceManager graphics;
ContentManager content;
//Variable Modelo
protected Model MiModelo;



Se instancia la clase modelo, en el Load de mi juego.



protected override void LoadGraphicsContent(bool loadAllContent)
{
if (loadAllContent)
{
// TODO: Load any ResourceManagementMode.Automatic content
//Se instancia el modelo
MiModelo = content.Load<Model>("Modelos//Cubo");
}
// TODO: Load any ResourceManagementMode.Manual content
}



Recuerda que el nombre del archivo sin el .x sera el que tendra referencia


En el metodo Draw ponemos el siguiente codigo:
protected override void Draw(GameTime gameTime)
{
graphics.GraphicsDevice.Clear(
Color.WhiteSmoke );

foreach (ModelMesh meshes in MiModelo.Meshes)
{
foreach (BasicEffect efectos in meshes.Effects)
{
efectos.EnableDefaultLighting();
efectos.World =
Matrix.Identity; ;
efectos.View =
Matrix.CreateLookAt(new Vector3(0, 50, 200), Vector3.Zero, Vector3.Up);
efectos.Projection =
Matrix.CreatePerspectiveFieldOfView(MathHelper.ToRadians(45.0f), 640.0f / 480.0f, 1.0f, 10000.0f);
}
meshes.Draw();
}
base.Draw(gameTime);
}

Cuanto codigo...
bueno vamos por partes.

Draw? Este metodo se encarga de dibujar todo lo que veremos en nuestro juego.

MiModelo.Meshes Con esto lo que hacemos es recorrer los meshes dde nuestro modelo que estan guardados en el .x para cargarlo en nuestro mundo.

Matrix.CreateLookAt(new Vector3(0, 50, 200), Vector3.Zero, Vector3.Up)

Este codigo nos ayuda a crear una vista posicion de nuestro modelo.

Ya con esto podemos compilar nuestro proyecto.

CODIGO EJEMPLO TUTORIAL 3

Tutorial 2 - Mi primer juego hecho en XNA

Bueno, para empezar debemos aclarar que no soy un guru en cuanto desarrollo de juegos, entonces si en en alguna parte me estoy equivocando me pueden corregir.

Para empezar inciamos Microsoft Visual C# 2005 Express Edition e iniciamos un proyecto nuevo de tipo "Windows Game" el cual lo llamaremos MiJuego

Te recomiendo que le pongas nombres que se puedan entender a tus proyectos, así inicias con buenas practicas de programación. Tambien te ayuda para que tengas una buena guía.

Despues de esto vamos a ver la clasica ventana de programacion de Visual Studio, si no tienes idea de como funciona visual Studio y C#date una pasadita por este Tutorial.

Lo que vemos a continuación es el codigo que pone por defecto Visual Studio, aun no entraremos en detalle que significa cada linea, pero si veremos unas importantes.


Por defecto se crea una clase "madre", donde se incluye todo lo que inicia nuestro juego llamada Game1.cs

Veamos entonces unas cositas que tiene esta clase que nos interesan.

GraphicsDeviceManager graphics;
ContentManager content;

public Game1()
{
graphics =
new GraphicsDeviceManager(this);
content =
new ContentManager(Services);
}

El objetoGraphicsDeviceManager se encarga de manejar toda la parte grafica de nuestro aplicativo.
Aqui vino mi primer inconveniente al desarrollar mi juego, si no tienes la tarjeta grafica que exige los requerimientos de XNA, entonces al ejecutar nuestro juego nos saltará este pequeño error:
Could not find a Direct3D device that has a Direct3D9-level driver and supports pixel shader 1.1 or greater.

No os precocupeis, no debes salir corriendo a comprarte una tarjeta grafica que soporte esto ok.
Existe una clase que con la cual podemos reemplazar la clase de GraphicsDeviceManager y emular en nuestro PC como si tuvieramos aquella tarjeta grafica.

Al hacer este tipo de emulacion los juegos no correran a la velocidad que quisieramos, la verdad corren demasiado lento, pero por ahora nos puede servir para iniciar en este mundo.

Como queda nuestro codigo con nuestra clase.

ReferenceGraphicsDeviceManager graphics;
ContentManager content;

public Game1()
{
graphics =
new ReferenceGraphicsDeviceManager(this);
content =
new ContentManager(Services);
}

Recuerda incluir la clase en nuestro proyecto, ademas de las referencias a System.Drawing y System.Windows.Form que necesita nuestra clase.

Ahora si compilamos nuestro juego, nos saldra una hermosa ventana azul, significa que nuestro primer juego esta funcionando.


Si, ya lo se "por Dios todo esto para esta ventana azul?"... pues por ahora iniciaremos de esta forma, lento pero seguro. En nuestro siguiente tutorial cargaremos un modelo (a que si les gusta esto cierto?).


CODIGO EJEMPLO TURIAL 2

Tutorial 1 - Que se necesita para iniciar un proyecto XNA?

Bueno para arrancar en este mundillo de desarrollo de juegos, debemos tener algunas cosas antes de empezar. Señalaré las mas importantes.

1. Conocimientos
Bueno, mis conocimientos en programacion son muy pocos, pero ya llevo un buen tiempo con el amado C#.
Para XNA lo mejor es que programemos en C#, pues asi podremos explotar toda la grandeza de este lenguaje en cuanto a manejo de objetos que al final es lo que mas ns va ayudar.
Conocer un poco del mundo del modelado y animaciones, auque esto no es muy necesario, pero si sería bueno para que no nos quedemos atras.
Requeriremos manejar algunos tipos de herramientas que nos ayudaran a realizar unos buenos juegos..... uhm, ya estoy hablando como si fuera un programador nato de juegos de video.

2. Hardare
Al parecer funciona con un pc sencillo que corra XP, con una buena tarjeta grafica (aunque no estan necesaria, ya lo veremos adelante).
Mi pc, es un Pentium IV a 2.4 con 256 de RAM, una tarjeta grafica sencilla guerrera y 40 GG de disco duro (disponible unos 3 gigas)
El requerimiento de Microsoft es tener una tarjeta grafica que soporte DirectX 9.0c y Shader Model 1.1, pero aqui viene lo que mencione anteriormente.
En un principio quede decepcionado pues ningun juego de XNA me funcionaba en mi pc debido a mi deficiente tarjeta grafica, hasta que en una pagina amiga encontre que podía sustituir la clase normal de graficos que tiene XNA por otra para que emule en mi pc como si tuviera una tarjeta grafica potente.

Cabe anotar que en este PC no funciona muy rapido los juegos que he hecho... pues mi tarjeta grafica es muy deficiente. Si lo que desarrollemos tiene muchos modelos, el rendimiento se va a perder bastante.

3. Software
Windows XP service pack 2
DirectX 9.0c and Shader Model 1.1
Microsoft Visual C# 2005 Express Edition
Microsoft XNA Game Studio Express 1.0