miércoles 13 de agosto de 2008

Creando objetos en Sketchup e importandolos en realXtend (Tutorial II)

Tal y como indiqué en el tutorial anterior (Introducción al realXtend), en este vamos a explicar como usar Sketchup para crear modelos y poder importarlos en realXtend (abreviadamente RX).
Para conocer esta técnica me sirvió de inestimable ayuda el genial tutorial de Peter Quik Taking Sketchup models into realXtend.

En rasgos generales el proceso se realiza en tres fases:

La primera consiste en la creación (o utilización de modelos ya existentes), del modelo en Sketchup, la exportación, mediante una herramienta, en formato mesh, conjuntamente con los ficheros asociados (materiales usados, texturas y fichero xml) a un directorio de trabajo.

La segunda consiste en la conversión del formato exportado, al formato específico que interpreta RX, mediante las herramientas que se descargan de su site.

La tercera consiste en la importación del modelo en RX como ya vimos en el tutorial anterior.

La clave de todo el proceso es la organización. Recomiendo la creación de un directorio específico, para ello. Una carpeta en el escritorio, por ejemplo.
Primero, como es lógico, necesitamos Sketchup, el cual podemos descargarlo desde http://sketchup.google.com/download/. Si no lo conocéis, emplead una hora en familiarizaros con él. En ese tiempo, siguiendo el magnífico tutorial que trae consigo, y los que podeis conseguir a través de su menú de "Ayuda", lo dominareis, (es el programa de diseño 3D con la curva de aprendizaje mas baja, realmente intuitivo y sencillo de utilizar).

Seguidamente descargamos la herramienta de exportación de OGRE: http://www.realxtend.org/get.php?id=17 , descomprimimos sus ficheros y los copiamos a la carpeta de "Plugins" de Sketchup.

Las instrucciones del fichero README, son muy claras. En resumen, la herramienta consta de cuatro ficheros: el fichero README, el ogre_export_.rb, ogre_export_config.rb y backface.rb. Todos ellos se instalan en el directory de plugin de Sketchup, por ejmplo en C:\Archivos de programas\Google\Google SketchUp 6\Plugins.

A continuación, con el blog de notas, abrimos el fichero "ogre_export_config.rb". En él se indica donde se va a realizar la exportación. Podemos editar ese destino poniendo el de la carpeta que hemos preparado en el escritorio (mejor creando una subcarpeta en ella que llamemos "exportaciones"), o dejar el directorio propuesto y poner un acceso directo a ese directorio en nuestra carpeta del escritorio.

Lo siguiente es descargar las herramientas de conversión de formato (rexexporttools_0.3.zip) desde la zona de descargas de realXtend ( http://www.realxtend.net/page.php?pg=downloads ) .
Lo recomendable es descomprimir todo el contenido en una carpeta que en mi caso he llamado "zona de generacion" dentro de la carpeta creada en el escritorio. Hay dos ficheros fundamentales: el "rexmeshtool" y el "xml2mesh", pero si sólo se copian estos dos, me encontré conque el proceso pedía alguna de las .dll que las acompañan, por lo que decidí copiar todo el conjunto a una subcarpeta para la conversión.

Estas dos herramientas, el "rexmeshtool" y el "xml2mesh", funcionan desde la ventana de comandos, no hay otra forma, pero no preocuparos porque hay una forma muy sencilla de hacer este paso.

Creo que en el Vista ya está incluida la opción de poder ejecutar comandos desde el menú conceptual que aparece cuando pulsamos con el botón derecho sobre una carpeta, pero en XP tenemos que instalarlo.
Para ello nos vamos a la página de Microsoft para instalar las Power Tools, y de paso miramos si hay alguna otra que nos interese instalar: Power Tools, y seleccionamos la "Open Command Window Here". ahora, cuando pulsemos el botón derecho sobre una carpeta, en el menú "Explorar" nos aparecerá la opción "OpenCommand Windows here".

Vamos e empezar con un caso práctico paso a paso. Imaginemos que nos han encargado la creación de un sofá, pero antes debemos configurar todo lo necesario para realizar la exportación,y la conversion.
Hemos instalado en la carpeta de "Plugins" la herramienta de exportación de OGRE







Si abrimos con el blog de notas el fichero ogre_export_config.rb, vemos que tiene configurada la exportación al directorio "c:\\SketchUpOgreExport"
. Podemos cambiarlo o dejarlo por defecto.



Yo lo he dejado y en una carpeta que he preparado en el escritorio he puesto un acceso directo a "c:\\SketchUpOgreExport"












la cual ahora esta todavia vacia, pues no hemos exportado nada, pero hay que crearla o si no Sketchup no sabra donde guardar lo exportado



















En esa carpeta tambien he puesto acceso a donde he descomprimido todas las herramientas, una nota con unas instrucciones que luego comentaremos y el acceso a la carpeta donde vamos a hacer la conversion usando la consola de comandos y donde guardaremos los meshes convertidos.






































Esa carpeta, que he llamado "Zona de generación", contiene, descomprimido, el conjunto de utilidades (rexexporttools_0.3.zip) que bajamos desde la zona de descargas de realXtend ( http://www.realxtend.net/page.php?pg=downloads )




















Acabada la parte aburrida, pero necesaria, de organización, empecemos con la divertida de la creación.
Decíamos que hemos recibido el encargo de diseñar un sofá. Bien, abrimos Sketchup


















ahora hacemos click en el segundo botón de la barra superior, "importar modelos". con ello accedemos a un repositorio libre y gratuito de modelos creados por diseñadores de todo el mundo que podemos reutilizar para nuestras creaciones.














En el campo de búsqueda escribimos "sofa"








y nos aparecen diversos modelos puntuados por los usuarios, lo cual nos permite elegir calidades.
















Elegimos un modelo.

















Ahora lo retocamos si queremos, pero dejemos este como está.

Con la flecha de selección de la barra de herramientas (primer icono arriba a la izquierda) seleccionamos todo el sofa:


















Ahora en Herramientas, seleccionamos: "Export Selection to OGRE mesh"




















y nos pedira el nombre a dar a la exportación. De forma notoriamente imaginativa lo llamamos: "SOFA"












El exportador nos informa del número de triángulos y de submeshes y materiales. Aceptamos
















Comienza el proceso de exportación.















Cuando finaliza se cierra la ventana de la consola de comandos.

Ahora abrimos la carpeta de "c:\\SketchUpOgreExport" y vemos el siguiente contenido:












Podemos cerrar SketchUp (de hecho no lo tengáis abierto al mismo tiempo que realXtend o este hará crash).

Bien ahora hay que hacer la conversión. Copiamos y arrastramos los tres ficheros

(SOFA.material, SOFA.mesh y SOFA.mesh.xml)

a la carpeta "Zona de generacion" (o como la hayáis llamado)
























En la nota "Instrucciones.txt" que he creado y guardado en la carpeta tengo apuntados los comandos que ahora vamos a usar:


"situar en este directorio el objeto exportado desde sketchup.

ejecutar comando: xml2mesh objeto y rexmeshtool objeto.mesh

Se generan objetos objeto.material, objeto.mesh y objeto.mesh.xml
guardarlos en una subcarpeta"
Ahora subimos un nivel, hasta la carpeta "Zona de generacion"










Con el botón derecho abrimos el menú de exploración



















y seleccionamos la nueva opción que tenemos tras instalar la Power Tool, de: "Open Command Windows here"


















Se abre la consola de comandos y escribimos: xml2mesh SOFA

















Damos ENTER. Se ejecuta el proceso y termina diciendo que hay un error fatal al no poder abrir skeleton.xml. No tiene ninguna importancia.














Ahora escribimos en la consola: rexmeshtool SOFA.mesh





pulsamos ENTER, y nos aparece la ventana de OGRE























Podemos elegir el subsistema de renderizado a utilizar en función de la tarjeta gráfica que utilicemos, OpenGL o Direct3D9 en mi caso















Mi tarjeta funciona mejor con Direct3D9, y es lo que elijo.






ATENCION: Si da un error relacionado con los materiales, verificad que no hay dos archivos OBJETO.material en la carpeta
Si aparece un error indicando que no encuentra el final de línea, verificad que no hayais escrito OBJETO.mesh.xml. Sobra el "xml".

Al cabo de un rato aparece esta pantalla:




















Aquí podemos aumentar o disminuir la escala del objeto, centrarlo en los ejes x,y,z y finalmente, salvamos los cambios y salimos.

Ahora el archivo SOFA.mesh ha sido adaptado al formato que necesita realXtend
Ponemos todos los archivos "SOFA" juntos en una carpeta llamada igual y ya podemos importar tanto el SOFA.mesh como el jpg correspondiente al material a realXtend.

-----------------------------
Abrimos el visor realXtend viewer y en "File" activamos la opción de "Upload 3D Model"
























------------------------------
Seleccionamos el mesh que hemos convertido.

















---------------------------------
Podemos incluir una descripción del objeto




















--------------------------

Creamos una prim que llamamos como el objeto 3D que hemos subido. Será la root del mesh. (nunca rezzeis directamente el mesh subido al suelo, o podeis provocar un crash del servidor). Activamos la pestaña reX.





















------------------------
Marcamos las casillas de "Extended Properties" y "Is visible", si esta última no estuviera marcada por defecto. El resto de las opciones podéis estudiarlas en la documentacion de realXtend. En resumen "Description Texture" funciona para las prims, no para los meshes, y permite que lo que hemos puesto en descripción del objeto aparezca en las caras del mismo como textura. "Scale mesh to prim", adapta el tamaño del mesh al de la prim, muy útil para construir primero con prims y luego convertirlas en meshes. "Solid Alpha" hace que las texturas que usan canales alfa, pierdan algo de suavidad pero los objetos se rendericen más rápido. "Billboard" es lo que en diseño gráfico llammos "efecto girasol". Los objetos presentan siempre una orientación planar a la cámara, lo cual es útil para crear efectos de luces y halos en combinación con la opcion de "materiales" additive blend effect.





















-----------------------
Ahora ya está preparada la prim para recibir el objeto 3D.
























---------------------------
Abrimos el inventario, y encontraremos el objeto en la carpeta 3D Models


















-----------------------
Lo arrastramos hasta la ranura "Mesh name" en la pestaña reX





















----------------------------
El objeto 3D se rezzea sobre la prim root, la cual se vuelve invisible automáticamente.(tenedlo en cuenta para buscarla).


















-----------------------
Ahora es el momento de usar los materiales. Podemos usar los que estaban con el objeto, y que, en formato .jpg están en la carpeta en que realizamos la conversión con OGRE, o usar de forma creativa nuestras propias texturas. Eso es lo que vamos a hacer. Seleccionamos unas bonitas texturas de piel, por ejemplo desde "Free Textures" , Mayang ,nuestro repositorio habitual, o creación propia y las subimos a realXtend (¡ y sin pagar los j... 10 Lindens habituales! ;-D)




















-------------------------
Ahora seleccionamos en la pestaña desplegable "Material Name", los materiales base que nuestro objeto tiene, y que realXtend sabe que estaban en el objeto gracias a la información que OGRE preparó. En este caso nuestro sofá tiene tres materiales, y aparecen como 1-2-3. Seleccionamos cada uno de los número y arrastramos la textura hasta la ranura que pone "blank" debajo de la pestaña de números de material. Probamos las combinaciones que queramos hasta que nos convenza el resultado




















-----------------------


















----------------------










-----------------------
El tono rojizo para las patas y la base quedan bien.








--------------------
y ¡Aquí tenemos nuesta obra!.
Analicemos el resultado. La calidad de acabado y de materiales ni de coña lo podríamos conseguir en SL, especialmente si tenemos en cuenta que el objeto ¡¡¡ OCUPA UNA SOLA PRIM !!!


Podeis imaginaros fácilmente el potencial que esto que hemos hecho ofrece a los constructores y diseñadores. Ahora, con la convergencia que se va a conseguir con el teleport desde SL a los OpenSims, podemos ir pensando en tener nuestros propios grids con objetos de mucha mayor calidad que los que SL puede ofrecer. El como interconectar nuestros realXtend con los grids de OpenSim y con SecondLife será objeto de próximos tutoriales, pues el grupo de realXtend al que estoy suscrito, está preparando diversos caminos para ello.

Ahora, es el momento de tomarnos un merecido descanso. ;-)
En un par de semanas prepararé el próximo tutorial en el que explicaré como crear objetos en 3dmax Studio para importarlos aquí, en realXtend.

22 comentarios:

Lex dijo...

Como siempre, tus tutoriales se convierten en documentos de obligada lectura.

De momento los imprimo para un futuro en el que instale "RealXtend".

Albert Revolution dijo...

Cuando llegue a casa y pueda usar el firefox, podré eliminar estos saltos de línea que el IE del curro me mete por todos lados. Si prefieres que te envíe el documento por mail puedo hacerlo.

Nanak dijo...

pues me pongo con ello rápidamente.
No sabes cuánto estoy aprendiendo, Albert. Mil gracias, profe!
,,,º¿º,,,

Anónimo dijo...

wenas.Profe,este tuto voy a tardar en descifrarlo..uf.En serio,de todos modos,en las capturas,a la hora de exportar el mesh,se ha colado una captura usando el sketchup pro..no se si sera la clave de q no pueda exportar el modelo como mesh,o que aun me falta por leer y configurar..
Las otras 2 cosas que no pillo(por ahora)es que mencionas vista y las power tools.Es eso imprescindible,aunque no se use vista,hay power tools(o toys)para xp diferentes pero equivalentes o como va la cosa?
En fin,muchas dudas y solo acabo de empezar a leer..Gracias por el curro
Lore

Asha Eerie dijo...

Muchas gracias Albert!!!

Monik dijo...

Como siempre me dejas asombrada querido amigo...te lo curras demasiado no nos lo merecemos ;P

Besillos!!

Albert Revolution dijo...

En el curro usamos el Pro, chssss que no se enteren que me lo he llevado a casa ;-D.
Todo funciona igual con la versión gratuita 6, y sólo tienes que elegir la Power Tool correspondiente a tu versión de XP.

Nada, nada, se aceptan aportaciones en lindens ;-P

Siempre me ha gustado descubrir, experimentar, compartir y admirarme de lo que otros pueden hacer con las cosas que descubrí, y que a mi no se me habrían ocurrido ni de coña.
Entre todos tejemos red que decía alguien que me enseñó mucho, ;-D, aunque no le guste lo virtual ;-)))

hector linares dijo...

buf yo quiero una copia por email de esto..y de lo anterior..y tengo una pregunta:
En las capturas los graficos parecen impresionantes, mucho mejores que SL...eso es por el programa que utilizas, xq tienes la resolucion al maximo, o no tiene nada que ver y ni te habias fijado..Si es por el pograma del que hablas le voy a dar a saco al tutorial..
Otra pregunta:a que te dedicas en rl? solo es curiosidad
Un saludo

Albert Revolution dijo...

Héctor: Esa es la calidad mínima que da realXtend, pues mi máquina, en teoría, no cumple los mínimos, ya que la pobre tiene cinco años, y es un P.IV de 1'4Ghz, con una Ati Radeon 9800.
¿A qué me dedico en RL? ;-D. Mira aquí, que Albertos no había muchos:(http://www.metaversos.com/index.php?var=ponentes.php).;-))

hector linares dijo...

hola, he estado intentando seguir tus pasos y no paso de mitad del primer tutorial.Al instalar realxtend servers primero me sale un aviso y me dice que no tengo ".Net runtime library" instalado pero me deja continuar instalando y al iniciar me dan errores de aplicacion los tres servers..Sabes porque puede ser?Es una faena.
Solo quiero poder importar objetos 3d max a Second Life.¿Es obligatorio pasar por el primer tutorial o puedo ir directamente al segundo?Es que me e metido en SL a traves de real y si me da la opcion de Importar 3ds pero esta bloqueada.Yo seguire investigando.Si algun dia te aburres me podrias pasar las piezas de un avion(turbinas, cabina, alas, cola, timon...)por separado a mi personaje en sl (Ghetta Dufaux)esque quiero acer un video de LoST y es la unica manera de acer lo del avion(es para ponerlas en la playa)y como a mi no me deje importar va a ser realmente complicado...
Bueno, espero respuesta
:(((((((((((((((((((((

Albert Revolution dijo...

Héctor, te veo un poco liado, aclaremos. realXtend (RX) es distinto a SecondLife (SL). RX te permite importar objetos 3D desde 3dmax (3ds), SL NO, imposible. Lo máximo que puedes hacer en SL es crear con 3d sculpties, o usar las SL prims para construir algo, y luego importarlo en SL, por ejemplo, usando Prim Composer.
Lo que quieres hacer, recrear Perdidos, con isla, bunker y avión, en relxend se puede hacer en unas 16 horas de trabajo. En SL necesitas muchas, pero que muchas prims y mucho trabajo realizado por varias personas.
Necesitas Framenet 2.0 para instalar realXtend, por eso te da el error.En SL la pestaña de reX, para importar meshes esta anulada porque es imposible.
Lo siento pero esa es la dura realidad. Por eso paso as tiempo en mis OpenSims y en realXtend que en SL. En mi máquina puedo crear, y cumplir los encargos que me hacen (sculpties), en SL, entre los IM's y el lag, me es imposible.
Ahora bien, si lo que quieres es hacer un vídeo, es distinto. Para ello te recomendaría que usaras capturas del avión sacadas de la serie, y las pusieras como texturas simulando escenario. sólo deberías crear algun objeto 3D con prims para algún plano concreto. Es una sugerencia.

Anónimo dijo...

Buenas. esto me parece genial. xD
no solo porque no conocia ninguno de estos programas que aqui se explican ((cosa k me fastidia no saberlo.. xD))

Bueno. para los de windows vista. para que la opcion "abrir ventana de comandos aqui" este accesible. simplemente tneis que mantener pulsado Mayus mientras haces clic derecho sobre la carpeta.
solo era eso.. he estalo leyendo y no lo veia por aqui escrito. si sirve de ayuda me alegro

porcierto. muchas gracias por este tutorial. -.- ya tengo tu pagina en mis marcadores del firefox. y entrare amenudo! xDD

Lucille dijo...

Hola Albert.
¿Se puede usar este mismo proceso en un servidor de Opensim (no RealXtend)?

Lo probé y no me reconoce como válido el mesh resultante

Albert Revolution dijo...

Hola Lucille:

no, en Opensim no funcionan los meshes pero va a salir una fusión entre realXtend y Opensim llamada modrex.

Te recomiendo que lo mires, y nos preguntes en nuestro nuevo portal: http://hispagrid.com/
Allí nos vemos y te puedo explicarcon más detalle que aquí.

ciudade dijo...

Te hago una consulta, estoy por primera vez instalando realxtend, y me surge un problema, luego de que inicializado todos los servers, cuando entro al real viewer, utilizo el usuario test, empieza a cargar la barra y en un momento se traba, y me aparece la famosa blue screen de windows diciendome que hubo un error de volcado... y debo reiniciar la compu.... tambien intentando un par de veces hasta me llego a mostrar el mundo virtual, junto con el avatar pero alli se clavo y aparecio la pantalla azul....Alguien tiene idea que puede ser este bug?? Saludos

Albert Revolution dijo...

Ciudade: Hay varias posibles causas. Mejor consultanos en nuestro portal específico para OpenSim, realXtend y ModRex: http://foro.hispagrid.com/ y allí lo estudiamos.

ciudade dijo...

Albert te cuento que ya lo logre hacer funcionar al RX....
1-Ahora viene mi gran duda, por defecto me aparece en un terreno que es como una pecera, como puedo hacer para modificar esto, necesito que sea un lugar plano mi region.....
2-Sigo los pasos del tutorial pero tengo un problema, cuando lo importo desde el SketchUp, me genera el OBJETO.material y el OBJETO.mesh.xml, pero no me esta generando el OBJETO.mesh....

ciudade dijo...

ALBERT logre hacer que funcionara todo, pero cuando entro a realxtrend e intento hacer el UPLOAD 3D MODEL, ingreso selecciono el objeto.mesh, pero el boton de UPLOAD esta como desactivado, no me permite presionarlo, porque puede ser??? Porfa necesito Urgente esto, muchas gracias

Albert Revolution dijo...

Ciudade: Si publicas sólo tus comentarios aquí, puede que no los lea, pues el aviso me llega por gmail, y no siempre lo tengo abierto, mientras que los avisos desde el foro de Hispagrid me llegan por jabber.
¿Estás usando la función xml2mesh que explico en el tutorial para generar el meshe?. Si no está creado en formato mesh no puedes subirlo.
Prueba a subir los ficheros .mesh que encontraras en la carpeta C:\Archivos de programa\RealXtend\example_assets como birch.mesh o rabbit.mesh
Estos archivos seguro que si puedes subirlos. Eso significa que te estás saltando una parte de la guía, la de utilización de los comandos de consola para generar los .mesh

ciudade dijo...

Ahi he publicado en el foro mi problema, espero tu respuesta muchas gracias

Albert Revolution dijo...

¿Lo has publicado en el foro de Hispagrid?(http://foro.hispagrid.com/), ¿seguro? Porque soy uno de los administradores y no tengo registro de tu consulta en ninguna parte ;-(

ciudade dijo...

Ahi lo publique Albert, acostumbrado al formato de otros foros lo habia Cargado en vez de enviado :p....