Introducción

En este tutorial vamos a ver el proceso completo de exportado de un modelo al formato soportado por GUIStudioMDL, el software con el que compilaremos el modelo para su uso en cualquier juego que use el motor Source de Valve, desde su preparación hasta el exportado de los archivos necesarios, usando el paquete Autodesk Softimage (antes conocido como Softimage|XSI, que dejó de llamarse así desde que Autodesk se hizo con Softimage hace pocos años), y que en este artículo llamaremos simplemente XSI.

Instalación del Addon

Para poder exportar modelos al motor Source con XSI debemos instalar previamente el addon que nos permita hacerlo. Se recomienda que, usando la version Mod Tool, se use la 6.02, aunque también parece funcionar con la version 7.5.

Para instalar el addon tenemos dos formas de hacerlo. Una es arrastrar el archivo ”.addon” a cualquier parte de la ventana de XSI. La otra es un poco mas trabajosa pero nos permite tener mayor control sobre la instalación del addon. Para ello nos vamos al menú FileAdd-OnInstall… y nos aparecerá la siguiente ventana:

instalacionaddon_1.jpg

Pulsamos en el botón y nos aparecerá la típica ventana para buscar archivos. Buscamos en nuestro disco duro el archivo: “ValveSource.6.02.xsiaddon” y hacemos doble click en el, apareciéndonos a continuación el siguiente diálogo:

instalacionaddon_2.jpg

Una vez instalado (no es necesario reiniciar XSI, pero hazlo para estar seguro), nos aparecerá un nuevo menú en la barra superior con todo lo necesario para comunicar XSI con Source:

Preparación del modelo en XSI

Tamaño del modelo

Es importante el tamaño. Una unidad en XSI equivale a una unidad en Hammer. Pongamos por ejemplo que hemos modelado una puerta. La altura del modelo de colisión del personaje en Source de pie es de 72 unidades, la puerta, para parecer realista debería tener unas 75 o 76 unidades, dependiendo claro del tipo de puerta. El resto de medidas son: agachado de 36 y 32 de ancho y de profundidad.

Posición del modelo

Para más comodidad a la hora de colocar el modelo en nuestro mapa, es importante colocarlo en una buena posicion dentro del espacio de XSI. Por ejemplo, un mueble o una silla no tendrían el mismo punto de origen que un cuadro o un aplique de luz, que van en la pared, o una lámpara que va en el techo. En la siguiente imágen se ve que el punto de origen del modelo, el punto rosa en el centro de cada vista, es el 0.0.0 (0 en el eje Y (vertical, 0 en el eje X (horizontal) y 0 en el eje Z (profundidad)):

preparacionmodelo_1.jpg

Para mover ese punto haremos lo siguiente: seleccionamos todo el modelo, pulsamos la tecla V, para mover el modelo, y sin soltarla pulsamos ALT, entonces el gizmo cambiará desde el normal hasta el que indica el cambio del centro de la geometria con un cícrulo blanco en el centro:

preparacionmodelo_2.jpg

Sin soltar usamos la linea verde del guizmo para llevar su centro a la parte inferior del modelo, coincidiendo la linea roja del eje X con la linea inferior del modelo:

preparacionmodelo_3.jpg

Soltamos ALT, volviendo al guizmo habitual, y, usando también el eje Y (verde), movemos el modelo para que coincida con la linea del eje X, quedando la base del modelo justo encima del grid:

preparacionmodelo_4.jpg

preparacionmodelo_1_1.jpg

Material y nombre de la textura

Antes de compilar el modelo, es necesario que se le asigne un material y un nombre a la textura y se vincule esta con el modelo antes de exportar desde XSI. Primero le aplicamos un material de los disponibles en XSI, para ello, en el menú izquierdo pulsamos en el botón 'MaterialPhong', y en la ventana que aparece pulsamos el botón que nos permite asignar una textura al material:

En el siguiente cuadro de diálogo pulsamos en el botón 'NewNew from file…', para después buscar el archivo en el disco duro. Importante: el nombre de archivo de la textura tiene que ser el mismo que se va a enlazar en el archivo de material '.vmt' una vez el modelo esté compilado para su uso en Source, de modo que si los archivos de textura serán ”cubo.vmt”, ”cubo.vtf” y ”cubo_normal.vtf”, el archivo que usaremos en XSI se deberá de llamar ”cubo.tga”. Da igual el formato, mientras XSI lo pueda leer: .bmp, .tga, .jpg, etc…

XSI puede usar sin problemas archivos '.vtf' de Valve.

Paso final

Para acabar con la preparación del modelo antes de su exportación para su compilado hay que eliminar la historia del modelado en XSI. Para esto simplemente tenemos que ir al panel de la derecha y pulsar sobre los botones 'Freeze' y 'Freeze M'. Para acabar, un poco más arriba tenemos el menú 'Transform', lo abrimos y pulsamos la opción 'Freeze All Transforms'.

Con esto limpiamos cualquier paso que se haya quedado guardado durante el modelado en XSI y eliminamos la posibilidad de que ocurran errores en la geometría al exportar.

Exportado de archivos

Para acabar nuestro trabajo con XSI sólo nos queda exportar los archivos. Exportaremos 3 archivos diferentes. El primero es el modelo en si, que contiene la geometría, el segundo es el que contiene el modelo de colisión, que a no ser que hagamos uno personalizado nos vale con el mismo modelo que hayamos hecho (en nuestro caso un cubo), y que exportaremos con el sufijo '_phys', y el tercero es el esqueleto de animación. Aunque nuestro modelo no esté animado tiene que tener al menos un esqueleto de animación. Tendrá, por ejemplo, el sufijo '_idle'.

Nos vamos al menus 'ValveSource → Export SMD' y nos saldrá la siguiente ventana:

exportado_1.jpg

En 'File' buscamos la ruta donde exportar los archivos '.smd'. Puede ser una carpeta cualquiera. Es bueno tener una carpeta donde tener todos los archivos '.smd' exportados de XSI, y los '.qc', que usaremos para compilarlos.

Pulsamos en '' y buscamos la carpeta, una vez en la carpeta elegida escribimos el nombre de archivo, en nuestro caso sería 'cubo.smd', en 'File Type' seleccionamos el tipo de '.smd' que queremos exportar. Empezamos con el modelo. Abrimos la lista y seleccionamos 'Model (.SMD)':

exportado_2.jpg

La duración dependera de nuestro PC y de la cantidad de polígonos del modelo. Seguimos con el modelo de colisión. Para ello lo único que tenemos que hacer es, en 'File', añadir el sufijo '_phys', y en la lista desplegable, seleccionar 'Physbox (.SMD)', por lo tanto nos quedaría de la siguiente manera:

exportado_3.jpg

Para acabar, sólo nos queda el esqueleto de animación. Seleccionamos de la lista desplegable 'Skeletal Animation (.SMD)' y cambiamos el sufijo '_phys' por '_idle'. Ahora abrimos la carpeta donde hemos exportado los 3 archivos y creamos un nuevo archivo de texto vacío, lo nombramos como los archivos que hemos exportado pero con extensión '.qc', y tendremos que tener algo así:

exportado_4.jpg

Archivo '.qc'

Una vez que tenemos todos los archivos necesarios hay que compilarlos para obtener el modelo final 'cubo.mdl', que tendremos a nuestra disposición para usar en cualquier juego con el motor Source. El contenido de un archivo '.qc' básico podría ser el siguiente:

$modelname "carpeta/nombre_del_modelo.smd"
$cdmaterials "models/carpeta"
$body "nombre" "nombre_del_modelo.smd"
$scale 1
$surfaceprop "material"
$sequence idle "nombre_del_modelo_idle" loop fps 15
$collisionmodel "nombre_del_modelo_phys.smd" {
   $concave
   $mass peso_en_kilos
}

A continuación una breve explicación de cada comando:

Comando Explicación
$modelname Nombre final del modelo y la carpeta donde irá al compilarlo
$cdmaterials Carpeta donde estarán los archivos del material (debe incluir 'models')
$body Referencia a un modelo para renderizarlo en el juego, de lo contrario sería invisible
$scale Tamaño, es conveniente dejarlo hecho al modelarlo.
$surfaceprop Material, indica las propiedades del sonido y de imágen al ser disparado o al caer
$sequence Animaciones que pudiera tener el modelo. Aunque no tenga ninguna debe tener al menos un hueso
$collisionmodel El modelo de colisiones, normalmente vale el mismo a no ser que sea un modelo complejo
$concave
$mass El peso del modelo en kilos

En el caso del ejemplo de este tutorial, el cubo, el '.qc' es este:

$modelname "NokYoL0/cubo.mdl"
$cdmaterials "models/NokYoL0"
$body "cubo" "cubo.smd"
$scale 1
$surfaceprop "wood"
$sequence idle "cubo_idle" loop fps 15
$collisionmodel "cubo_phys.smd" {
   $concave
   $mass 55
}

GUIStudioMDL

GUIStudioMDL es el programa con el que compilaremos nuestros modelos para el motor Source. Para que funcione correctamente Steam debe de estar abierto, y el SDK configurado con el juego para el que vayamos a compilar, en nuestro caso Orange Box (Half-Life 2: Episodio 2).

Configuración de GUIStudioMDL

En el menú superior nos vamos a 'Config → Set Orange Box Tools Path' y buscamos la carpeta 'bin', que debería estar en:

[Unidad]:\Steam\steamapps\tucuenta\sourcesdk\bin\orangebox\bin

Compilación

Una vez que tenemos listo nuestro modelo y el archivo '.qc', llega la hora de compilarlo. Para ello simplemente tenemos que ir a 'File → Load QC File…' y buscar el archivo en nuestro PC. La siguiente imágen muestra la ventana de GUIStudioMDL configurado para compilar nuestro modelo para la Orange Box con el archivo '.qc' ya cargado:

compilacion_1.jpg

Sólo nos queda darle a 'Compile' y esperar a que termine. Lo que tarde dependerá de nuestro PC y de la complejidad del modelo. Una vez terminado, tendremos un log parecido a este:

Created command line: [unidad]:Steam\steamapps\tucuenta\sourcesdk\bin\orangebox\bin\studiomdl.exe -game "[unidad]:\steam\steamapps\tucuenta\half-life 2 episode two\ep2" -nop4 -nox360 "D:\Modelado\Modelos Source\cubo.qc"

qdir:    "d:\modelado\modelos source\"
gamedir: "[unidad]:\steam\steamapps\tucuenta\half-life 2 episode two\ep2\"
g_path:  "D:\Modelado\Modelos Source\cubo.qc"
Building binary model files...
Working on "cubo.qc"
SMD MODEL cubo.smd
SMD MODEL cubo_idle.smd
SMD MODEL cubo_phys.smd
Model has 1 convex sub-parts
Collision model completed.
---------------------
writing [unidad]:\steam\steamapps\tucuenta\half-life 2 episode two\ep2\models/NokYoL0/cubo.mdl:
bones          964 bytes (1)
animations     124 bytes (1 anims) (1 frames) [0:00]
sequences      220 bytes (1 seq) 
ik/pose        164 bytes
eyeballs         0 bytes (0 eyeballs)
flexes           0 bytes (0 flexes)
textures        72 bytes
keyvalues        0 bytes
bone transforms        0 bytes
Collision model volume 9021.26 in^3
collision        0 bytes
total         1720
---------------------
writing [unidad]:\steam\steamapps\tucuenta\half-life 2 episode two\ep2\models/NokYoL0/cubo.vvd:
vertices      1152 bytes (24 vertices)
tangents       384 bytes (24 vertices)
total         1600 bytes
---------------------
Generating optimized mesh "[unidad]:\steam\steamapps\tucuenta\half-life 2 episode two\ep2\models/NokYoL0/cubo.sw.vtx":
body parts:         8 bytes
models:            20 bytes
model LODs:        12 bytes
meshes:             9 bytes
strip groups:      25 bytes
strips:            27 bytes
verts:            216 bytes
indices:           72 bytes
bone changes:       8 bytes
everything:       421 bytes
---------------------
Generating optimized mesh "[unidad]:\steam\steamapps\tucuenta\half-life 2 episode two\ep2\models/NokYoL0/cubo.dx80.vtx":
body parts:         8 bytes
models:            20 bytes
model LODs:        12 bytes
meshes:             9 bytes
strip groups:      25 bytes
strips:            27 bytes
verts:            216 bytes
¡$ÆÛ}Y@
indices:           72 bytes
bone changes:      16 bytes
everything:       429 bytes
---------------------
Generating optimized mesh "[unidad]:\steam\steamapps\tucuenta\half-life 2 episode two\ep2\models/NokYoL0/cubo.dx90.vtx":
body parts:         8 bytes
models:            20 bytes
model LODs:        12 bytes
meshes:             9 bytes
strip groups:      25 bytes
strips:            27 bytes
verts:            216 bytes
indices:           72 bytes
bone changes:      16 bytes
everything:       429 bytes

Ahora comprobaremos si el modelo se ha exportado correctamente. Para ello abrimos el Model Viewer a traves del Source SDK. Deberíamos tener algo así:

exportado_5.jpg

El siguiente paso es configurar el material.

Creación del Material

Para crear el material te aconsejamos seguir este tutorial.

Si hemos seguido todos los pasos correctamente, y una vez creada nuestra textura, deberiamos ver nuestro modelo en el Model Viewer perfectamente:

dado_final.jpg modelo_final.jpg

Las imágenes superiores sólo son ejemplos.

source/modelado/exportacion_smd_con_softimage_xsi.txt · Última modificación: 2011/06/15 17:31 (editor externo)
 
Excepto donde se indique lo contrario, el contenido de esta wiki se autoriza bajo la siguiente licencia: CC Attribution-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki



GAS Style basado en Prototype Style © 2008 ShadowFlames Development
Original Design by Frost - Maintained and Modified by Ika

Traducción al español por Huan Manwë