|
From: Gerardo H. <ma...@si...> - 2009-12-02 00:38:31
|
Yo creo que lo primero que hay que resolver dentro del proyecto de Mundo Java es cómo le vamos a hacer para producir todos los assets necesarios. Por assets me refiero a: * Modelos 3D * Texturas * Animaciones * Artwork 2D * Sonidos * Música En particular, yo creo que la parte más compleja es la de Modelos 3D + Texturas + Animaciones. Mi preferencia para hacer el modelado en 3D es que usemos Blender ya que es software libre y funciona en los principales sistemas operativos. Además existe un plugin para Blender, llamado 'hottbj', que permite exportar los modelos a unos archivos XML que jMonkeyEngine puede leer. Ya hice unas cuantas pruebas. Es posible crear un modelo en Blender, texturizarlo (UV mapping/painting), crear su armature (esqueleto) y animarlo para después exportar todo eso con hottbj y leerlo desde jMonkeyEngine. Funciona (hay que tener un poco de cuidado sobre como se define todo en Blender, pero si se siguen ciertas reglas funciona sin problemas). Esos archivos XML que exporta el hottbj los quiero emplear únicamente como un paso intermedio. Para la distribución de la aplicación yo creo que los modelos deberían estar almacenados en el formato binario de jMonkeyEngine (extensión .jme) . Así serán son más compactos y se pueden leer más rápido. Para hacer esto, quiero tener dentro de nuestro proceso de build de la aplicación un paso donde se leen estos archivos XML y se generan los .jme. Pasar de XML a .jme no es la única razón para tener este paso dentro del build, hay varias más: * Existen muchos atributos posibles para los nodos de un scene graph de jMonkeyEngine que no se pueden definir desde Blender (parámetros para la aplicación de las texturas, manejo de transparencia, etc.) * Un scene graph de jMonkeyEngine puede tener Controllers. Lo controllers permiten tener animaciones sencillas predeterminadas que se ejecutan automáticamente de manera continua (por ejemplo, que estén girando las aspas de un molino). Y estos controllers también se pueden almacenar dentro de un archivo .jme * Probablemente vamos a modelar cada componente del mundo por separado y queramos tener un sólo archivo .jme de donde leemos el scene graph de una localidad completa con cada objeto ya colocado en su ubicación correspondiente. Yo creo que lo ideal es tener scripts, escritos en algún DSL (Domain Specific Language), en donde podamos definir para cada .jme que hay que generar: * Los archivos XML que tiene que leer * Parámetros extra que se le tengan que agregar/modificar a cada nodo * Controllers que se tengan que agregar * Como armar un sólo árbol de toda la localidad con todos esos XML Creo que es muy importante que todos estos pasos se hagan dentro de un script para poder garantizar que los podemos repetir automáticamente cada vez que sea necesario. Así cuando un artista modifique algún modelo en Blender, basta con que vuelva a exportar el XML y automáticamente podemos volver a armar el .jme al que pertenece. -- Gerardo Horvilleur ma...@si... 5282-3314 044 55 2709-0509 |
|
From: Adrian C. <squ...@gm...> - 2009-12-02 06:27:09
|
Me parece muy importante todo esto, el script que tienes pensado usar se hara despues? y que hay a cerca del dsl que estas pensando?, personalmente no se mucho de modelaje en 3d pero para eso estamos aqui para ir aprendiendo. El 01/12/2009 06:13 p.m., Gerardo Horvilleur escribió: > Yo creo que lo primero que hay que resolver dentro del proyecto de > Mundo Java es cómo le vamos a hacer para producir todos los assets > necesarios. Por assets me refiero a: > > * Modelos 3D > * Texturas > * Animaciones > * Artwork 2D > * Sonidos > * Música > > En particular, yo creo que la parte más compleja es la de Modelos 3D + > Texturas + Animaciones. > > Mi preferencia para hacer el modelado en 3D es que usemos Blender ya > que es software libre y funciona en los principales sistemas > operativos. Además existe un plugin para Blender, llamado 'hottbj', > que permite exportar los modelos a unos archivos XML que jMonkeyEngine > puede leer. > > Ya hice unas cuantas pruebas. Es posible crear un modelo en Blender, > texturizarlo (UV mapping/painting), crear su armature (esqueleto) y > animarlo para después exportar todo eso con hottbj y leerlo desde > jMonkeyEngine. Funciona (hay que tener un poco de cuidado sobre como > se define todo en Blender, pero si se siguen ciertas reglas funciona > sin problemas). > > Esos archivos XML que exporta el hottbj los quiero emplear únicamente > como un paso intermedio. Para la distribución de la aplicación yo creo > que los modelos deberían estar almacenados en el formato binario de > jMonkeyEngine (extensión .jme) . Así serán son más compactos y se > pueden leer más rápido. > > Para hacer esto, quiero tener dentro de nuestro proceso de build de la > aplicación un paso donde se leen estos archivos XML y se generan los > .jme. Pasar de XML a .jme no es la única razón para tener este paso > dentro del build, hay varias más: > > * Existen muchos atributos posibles para los nodos de un scene graph > de jMonkeyEngine que no se pueden definir desde Blender (parámetros > para la aplicación de las texturas, manejo de transparencia, etc.) > > * Un scene graph de jMonkeyEngine puede tener Controllers. Lo > controllers permiten tener animaciones sencillas predeterminadas que > se ejecutan automáticamente de manera continua (por ejemplo, que estén > girando las aspas de un molino). Y estos controllers también se pueden > almacenar dentro de un archivo .jme > > * Probablemente vamos a modelar cada componente del mundo por separado > y queramos tener un sólo archivo .jme de donde leemos el scene graph > de una localidad completa con cada objeto ya colocado en su ubicación > correspondiente. > > Yo creo que lo ideal es tener scripts, escritos en algún DSL (Domain > Specific Language), en donde podamos definir para cada .jme que hay > que generar: > > * Los archivos XML que tiene que leer > * Parámetros extra que se le tengan que agregar/modificar a cada nodo > * Controllers que se tengan que agregar > * Como armar un sólo árbol de toda la localidad con todos esos XML > > Creo que es muy importante que todos estos pasos se hagan dentro de un > script para poder garantizar que los podemos repetir automáticamente > cada vez que sea necesario. Así cuando un artista modifique algún > modelo en Blender, basta con que vuelva a exportar el XML y > automáticamente podemos volver a armar el .jme al que pertenece. > > |
|
From: Gerardo H. <ma...@si...> - 2009-12-02 06:34:54
|
El DSL para los scripts es una de las primeras cosas en las que va a ser necesario trabajar. Todavía no sé si vale la pena crear un DSL o más bien usar un lenguaje que ya exista tal como jython o Groovy. Voy a ver si en los próximos dias puedo poner en Subversion un ejemplo de un modelo de blender con textura y animación, su export a XML, un programa que lee el XML hace unos ajustes y lo graba con .jme, y un programa que usa ese archivo .jme. Yo creo que eso puede ayudar a que todos tengan más claro lo que se necesita. 2009/12/2 Adrian Carrillo <squ...@gm...>: > Me parece muy importante todo esto, el script que tienes pensado usar se > hara despues? y que hay a cerca del dsl que estas pensando?, > personalmente no se mucho de modelaje en 3d pero para eso estamos aqui > para ir aprendiendo. > > El 01/12/2009 06:13 p.m., Gerardo Horvilleur escribió: >> Yo creo que lo primero que hay que resolver dentro del proyecto de >> Mundo Java es cómo le vamos a hacer para producir todos los assets >> necesarios. Por assets me refiero a: >> >> * Modelos 3D >> * Texturas >> * Animaciones >> * Artwork 2D >> * Sonidos >> * Música >> >> En particular, yo creo que la parte más compleja es la de Modelos 3D + >> Texturas + Animaciones. >> >> Mi preferencia para hacer el modelado en 3D es que usemos Blender ya >> que es software libre y funciona en los principales sistemas >> operativos. Además existe un plugin para Blender, llamado 'hottbj', >> que permite exportar los modelos a unos archivos XML que jMonkeyEngine >> puede leer. >> >> Ya hice unas cuantas pruebas. Es posible crear un modelo en Blender, >> texturizarlo (UV mapping/painting), crear su armature (esqueleto) y >> animarlo para después exportar todo eso con hottbj y leerlo desde >> jMonkeyEngine. Funciona (hay que tener un poco de cuidado sobre como >> se define todo en Blender, pero si se siguen ciertas reglas funciona >> sin problemas). >> >> Esos archivos XML que exporta el hottbj los quiero emplear únicamente >> como un paso intermedio. Para la distribución de la aplicación yo creo >> que los modelos deberían estar almacenados en el formato binario de >> jMonkeyEngine (extensión .jme) . Así serán son más compactos y se >> pueden leer más rápido. >> >> Para hacer esto, quiero tener dentro de nuestro proceso de build de la >> aplicación un paso donde se leen estos archivos XML y se generan los >> .jme. Pasar de XML a .jme no es la única razón para tener este paso >> dentro del build, hay varias más: >> >> * Existen muchos atributos posibles para los nodos de un scene graph >> de jMonkeyEngine que no se pueden definir desde Blender (parámetros >> para la aplicación de las texturas, manejo de transparencia, etc.) >> >> * Un scene graph de jMonkeyEngine puede tener Controllers. Lo >> controllers permiten tener animaciones sencillas predeterminadas que >> se ejecutan automáticamente de manera continua (por ejemplo, que estén >> girando las aspas de un molino). Y estos controllers también se pueden >> almacenar dentro de un archivo .jme >> >> * Probablemente vamos a modelar cada componente del mundo por separado >> y queramos tener un sólo archivo .jme de donde leemos el scene graph >> de una localidad completa con cada objeto ya colocado en su ubicación >> correspondiente. >> >> Yo creo que lo ideal es tener scripts, escritos en algún DSL (Domain >> Specific Language), en donde podamos definir para cada .jme que hay >> que generar: >> >> * Los archivos XML que tiene que leer >> * Parámetros extra que se le tengan que agregar/modificar a cada nodo >> * Controllers que se tengan que agregar >> * Como armar un sólo árbol de toda la localidad con todos esos XML >> >> Creo que es muy importante que todos estos pasos se hagan dentro de un >> script para poder garantizar que los podemos repetir automáticamente >> cada vez que sea necesario. Así cuando un artista modifique algún >> modelo en Blender, basta con que vuelva a exportar el XML y >> automáticamente podemos volver a armar el .jme al que pertenece. >> >> > > ------------------------------------------------------------------------------ > Join us December 9, 2009 for the Red Hat Virtual Experience, > a free event focused on virtualization and cloud computing. > Attend in-depth sessions from your desk. Your couch. Anywhere. > http://p.sf.net/sfu/redhat-sfdev2dev > _______________________________________________ > Mundojava-develop mailing list > Mun...@li... > https://lists.sourceforge.net/lists/listinfo/mundojava-develop > -- Gerardo Horvilleur ma...@si... 5282-3314 044 55 2709-0509 |
|
From: Gerardo H. <ma...@si...> - 2009-12-02 18:10:24
|
Para que quede un poco más concreto este asunto del tool chain y los scripts, agregué unos archivos y programas al repositorio. Están dentro de mundojava/Drafts/Walker. Ahí hay un directorio 'assets' con 3 archivos: 1. man.blend: un modelo hecho en Blender con uv mapping, armature y una animación 2. man.png: la textura para el modelo 3. man-jme.xml: el resultado de exportar el modelo con el plugin hottbj Dentro del directorio 'src' hay 2 programas: 1. Xml2Jme.java: Lee el archivo 'assets/man-jme.xml', hace unos cambios a los attributos de render y graba los datos en formato binario dentro del archivo 'data/man.jme" 2. Walker.java: Lee el archivo 'data/man.jme' (y 'data/man.png que es simplemente una copia de 'assets/man.png') y los usa para animar al personaje caminando. Pueden controlar el personaje con las teclas: W, A, S, D, Q y E. Presionando el botón izquierdo del mouse pueden mover la cámara. Con el scrollwheel pueden acercar o alejar la cámara. Y con ESC salen del programa. Para probar los programas: cd mundojava svn update cd Drafts/Walker ant 2009/12/2 Gerardo Horvilleur <ma...@si...>: > El DSL para los scripts es una de las primeras cosas en las que va a > ser necesario trabajar. Todavía no sé si vale la pena crear un DSL o > más bien usar un lenguaje que ya exista tal como jython o Groovy. > > Voy a ver si en los próximos dias puedo poner en Subversion un ejemplo > de un modelo de blender con textura y animación, su export a XML, un > programa que lee el XML hace unos ajustes y lo graba con .jme, y un > programa que usa ese archivo .jme. Yo creo que eso puede ayudar a que > todos tengan más claro lo que se necesita. > > 2009/12/2 Adrian Carrillo <squ...@gm...>: >> Me parece muy importante todo esto, el script que tienes pensado usar se >> hara despues? y que hay a cerca del dsl que estas pensando?, >> personalmente no se mucho de modelaje en 3d pero para eso estamos aqui >> para ir aprendiendo. >> >> El 01/12/2009 06:13 p.m., Gerardo Horvilleur escribió: >>> Yo creo que lo primero que hay que resolver dentro del proyecto de >>> Mundo Java es cómo le vamos a hacer para producir todos los assets >>> necesarios. Por assets me refiero a: >>> >>> * Modelos 3D >>> * Texturas >>> * Animaciones >>> * Artwork 2D >>> * Sonidos >>> * Música >>> >>> En particular, yo creo que la parte más compleja es la de Modelos 3D + >>> Texturas + Animaciones. >>> >>> Mi preferencia para hacer el modelado en 3D es que usemos Blender ya >>> que es software libre y funciona en los principales sistemas >>> operativos. Además existe un plugin para Blender, llamado 'hottbj', >>> que permite exportar los modelos a unos archivos XML que jMonkeyEngine >>> puede leer. >>> >>> Ya hice unas cuantas pruebas. Es posible crear un modelo en Blender, >>> texturizarlo (UV mapping/painting), crear su armature (esqueleto) y >>> animarlo para después exportar todo eso con hottbj y leerlo desde >>> jMonkeyEngine. Funciona (hay que tener un poco de cuidado sobre como >>> se define todo en Blender, pero si se siguen ciertas reglas funciona >>> sin problemas). >>> >>> Esos archivos XML que exporta el hottbj los quiero emplear únicamente >>> como un paso intermedio. Para la distribución de la aplicación yo creo >>> que los modelos deberían estar almacenados en el formato binario de >>> jMonkeyEngine (extensión .jme) . Así serán son más compactos y se >>> pueden leer más rápido. >>> >>> Para hacer esto, quiero tener dentro de nuestro proceso de build de la >>> aplicación un paso donde se leen estos archivos XML y se generan los >>> .jme. Pasar de XML a .jme no es la única razón para tener este paso >>> dentro del build, hay varias más: >>> >>> * Existen muchos atributos posibles para los nodos de un scene graph >>> de jMonkeyEngine que no se pueden definir desde Blender (parámetros >>> para la aplicación de las texturas, manejo de transparencia, etc.) >>> >>> * Un scene graph de jMonkeyEngine puede tener Controllers. Lo >>> controllers permiten tener animaciones sencillas predeterminadas que >>> se ejecutan automáticamente de manera continua (por ejemplo, que estén >>> girando las aspas de un molino). Y estos controllers también se pueden >>> almacenar dentro de un archivo .jme >>> >>> * Probablemente vamos a modelar cada componente del mundo por separado >>> y queramos tener un sólo archivo .jme de donde leemos el scene graph >>> de una localidad completa con cada objeto ya colocado en su ubicación >>> correspondiente. >>> >>> Yo creo que lo ideal es tener scripts, escritos en algún DSL (Domain >>> Specific Language), en donde podamos definir para cada .jme que hay >>> que generar: >>> >>> * Los archivos XML que tiene que leer >>> * Parámetros extra que se le tengan que agregar/modificar a cada nodo >>> * Controllers que se tengan que agregar >>> * Como armar un sólo árbol de toda la localidad con todos esos XML >>> >>> Creo que es muy importante que todos estos pasos se hagan dentro de un >>> script para poder garantizar que los podemos repetir automáticamente >>> cada vez que sea necesario. Así cuando un artista modifique algún >>> modelo en Blender, basta con que vuelva a exportar el XML y >>> automáticamente podemos volver a armar el .jme al que pertenece. >>> >>> >> >> ------------------------------------------------------------------------------ >> Join us December 9, 2009 for the Red Hat Virtual Experience, >> a free event focused on virtualization and cloud computing. >> Attend in-depth sessions from your desk. Your couch. Anywhere. >> http://p.sf.net/sfu/redhat-sfdev2dev >> _______________________________________________ >> Mundojava-develop mailing list >> Mun...@li... >> https://lists.sourceforge.net/lists/listinfo/mundojava-develop >> > > > > -- > Gerardo Horvilleur > ma...@si... > 5282-3314 > 044 55 2709-0509 > -- Gerardo Horvilleur ma...@si... 5282-3314 044 55 2709-0509 |