domingo, 4 de septiembre de 2011

Creacion de Juegos con FreeBasic y Ninfa3D (Repost)


Este post lo hice mas o menos hace un año xa que se apuntara gente y apareciese mas informacion sobre este motor y basic. Xo como seguimos igual pues lo resubire de nuevo y subire poco a poco algun que otro código que vallla surgiendo. Ademas lo he resubido varias veces a taringa pero o los moderadores creo q lo quitan o no se lo que pasa en el foro, asi que he creado un blog a ver si alguien se apunta.

Juegos con Ninfa3D, FreeBasic y 3D Max Studio 2010

Hola Blogueros, con motivo de que llevo tiempo programando un juego y como no encuentro mucha información al respecto sobre este tema, he decidido hacer un post con lo que llevo aprendido hasta ahora. Y lo estoy haciendo porque no otra. A mí me gusta más leer que escribir y sinceramente prefiero que expongáis algo que hayáis aprendido que que me deis las gracias, si os gusta aprended y ayudar. Así tal como yo aporto ahora mi granito de arena hoy, mañana ustedes aportaran el suyo. Y prefiero ver un post con un montón de dudas y soluciones de aficionados que un post de gracias y puntos.
Hasta ahora, aunque se un poco de java y c, el lenguaje que mejor domino el BASIC. Y aunque es un poco mas tosco, lo compensa siendo más fácil de entender y de avanzar que los demás. Y en cuanto a potencia o capacidades, solo depende del arte del programador y el uso que le dé a google. El compilador que utilizo es FreeBasic con el motor gráfico Ninfa3D, basado en Irrlicht, Open AL y Newton. Este motor aparte de ser bastante potente, es gratuito y soporta multitud de modelos. Obj , 3ds, X, smd, b3d, md2 y md3 (Los que he probado).
Para crear objetos 3D modelos, mapas, personajes, movimientos, etc, utilizo el programa 3DMax 2010 con un plugin para exportar a *.X (Formato de directx) llamado kwxPort 1.5.0 Y los parámetros para que exporte bien son los que salen en la imagen. Además puede exportar cualquier tipo de modelo 3D con , a menos que tenga muchos polígonos(Mas de 300.000). A parte de poder exportar un modelo atachado a un Biped de 3dMax. Algo que simplifica mucho las cosas. El único problema que encuentro, es que tienes que tener muy en cuenta la escala, porque una vez atachado el modelo al biped no se puede escalar. Ya que si lo haces en el 3dmax se ve bien, perfecto. Pero una vez que exportas a X un modelo escalado la maya se pliega sobre el elqueleto del biped.
Para convertir un modelo a otro formato o para corregir la posición de las texturas que exporta 3Dmax(algo que todavía no he conseguido corregir) utilizo el programa Fragmotion 1.0.1. Aparte este programa es capaz de corregir la posición xyz de un modelo biped que se mueve y poderlo colocar en el centro fijo (Punto 0,0,0) para poder utilizarlo con el motor gráfico. Esto lo hago con el deslizador de fotogramas clave. Busquen por los menús de arriba del programa.
Para crear modelos de arboles, utilizo el programa OnyxTREE, que aunque da unos modelos de arboles muy detallados, pero al utilizar muchos polígonos no es muy recomendado utilizarlo para un juego. Aunque editando los modelos en 3Dmax, podríamos rebajar los polígonos aplicando los modificadores “Optimize” o “MultiRes”.
Para crear la cara de alguien utilizo el programa FaceGen Modeler. Que con una sola foto (2 o 3 tbn) y cn ½ de procesamiento genera una calidad muy buena. Pero seguiríamos teniendo el mismo problema en cuanto a los polígonos. Y si aplicamos los modificadores
Para crear el cuerpo de un modelo de personaje el programa “MakeHuman 0.9.3”. Que no da mucha calidad, pero es el único que se puede utilizar (no he encontrado otro) ya que la versión nueva no se puede craquear, o por lo menos de momento. Luego le quitais la cabeza al modelo este y le poneis la vuestra. Para hacer la ropa utilizar el 3dMax con el modificador Garment Maker y el plugins reactor Cloth. Deberíande aprender a utilizar 3DMax antes que nada.
Esto es un consejo. Eliminar siempre los polígonos de los modelos que no os hacen falta, puesto que esto reduciría el rendimiento ya que el motor gráfico siempre representa todos los polígonos, aunque no se vean. Así que si eliminas 10, son 50 operaciones menos que tienes que realizar el motor. Con lo cual reduciría el rendimiento. Por ejemplo: Si el personaje tiene una camiseta puesta, solo se le vería un poco el pecho por el cuello de la camiseta y los brazos a partir de las mangas, con lo cual los polígonos de la barriga, pecho (los que no se ven), brazos hasta el codo y hombros no se ven y no harían falta. Con lo cual se podrían eliminar y dejar un poco mas libre el motor gráfico.
Las , para mí, sique siendo un numerito. Sera porque llevo poco tiempo tocando el 3dMax, más o menos 6 o 7 meses. Pero son tremendamente complicadas y sobre todo si se hacen manualmente con el ratón. Quedan un poco irreales. Asi que te puedes bajar animaciones ya hechas en bvh (motion capture) o hacerlas tu mismo utilizando una cámara kinect junto con el de OpenNi con el programa Noesis. El que me ha dado mejor resultado con kinect pero no consigo que me entienda(Dentro del pack). Y brekel kinect 3d Scaner con motionbuilder pero tampoco he conseguido hacer nada serio. Esto está un poco crudo todavía. Solo he podido grabar los brazos de un personaje correctamente utilizando la cámara(Noesis).
Para modificar las texturas, lo que son los archivos tga, jpg, bmp, etc. Se puede utilizar el paint, pero como todos saben este programa está un poco limitado y utilizo gimp. Concretamente la versión portable.
Obviamente este motor soporta muchos tipos de modelos más, por ejemplo los obj o 3ds. Si exportas y ves que la textura no sale, expórtalo antes en obj y prueba y darle vueltas por que funciona bien. Con objetos obj o 3ds en el motor gráfico se ve muy bien con luces y oscuridad pero desgraciadamente no puedes exportar una animación con estos formatos. Así que utiliza el formato x que brilla, pero no tanto como los otros que he probado a los que exporta el editor fragmotion. 3DMax no exporta muy bien las texturas, así que creo los escenarios y objetos y demás con este y luego lo exporto en obj, x o 3ds a fragmotion y con este termino de modificar la textura. He probado muchos otros plugins y aunque hay otros que funcionan bien(sobre todo tipo *.x), pero estos van perfectos si pones bien los parámetros y no escalas después de hacer una animación o cuando has atachado una maya a un biped, funciona. Yo esto lo hago por , y tengo más experiencia programando que haciendo 3D. Aunque ahora le estoy cogiendo un poco más el rollo y me gusta. Tal vez algún día pudiese hacer un buen modelo yo solo. De momento entreno con los escenarios. Lo que pretendo con este básico tutorial, es que la gente se anime y trabaje con este motor. Que expongáis lo que hayáis aprendido. En el paquete, he puesto además de todas las antes citadas y dos proyectos que hice. Un parking del que he borrado la textura del personaje por que era yo y lo dejé cuando llegue a entender que con muchos polígonos en los ordenadores de los colegas no va. 300 – 400.000 por ahí xungo, tenerlo en cuenta. Y un proyecto de coches que es el que estoy haciendo ahora. Además también cedo a duras penas el código fuente de los dos proyectos en beneficio de la ciencia. Y si alguna vez alguien se hace rico que me llame. Todos los programas tienen alado su apaño si le hace falta y por supuesto el 3DMax lo hay por otros post parecidos. Muchas gracias por su tiempo chavales y hasta otra.

Enlaces:
-Todo los programas
http://www.megaupload.com/?d=0UZ97AXS

-Imagenes de configuracion
http://www.megaupload.com/?d=I8LDSLIE Juegos con Ninfa3D, FreeBasic y 3D Max Studio 2010

1 comentario:

  1. Hola estoy interesado en utilizar estos programas como hobby. Yo provengo del blitz3d, aunque todo el mundo se ha pasado al unity a mi me gusta mas escribir codigo , tambien he buscado algo para networking y he encontrado fbnet pero no su API , si quieres nos ponemos en contacto y me pones un poco "al dia" xd

    Un saludo

    ResponderEliminar