1. CONCEPTOS BASICOS
1.1. Formato DSS
Para importar texturas al UnrealED estas tienen que estar en formato .DSS.
Plugin para el PhotoShop [
Download]
A grandes rasgos, la textura que hagamos podemos guardarla en 2 modos segun el tipo de textura:
DXT1 - sin canal alpha
DXT3 - con canal alpha
El formato DSS contiene una textura con todo detalle, pero tiene un sistema para que cuando esa textura este muy lejos del punto de vista, en vez de dibujar una textura grande con detalles que no percibiremos, lo que hace es mostrarnos una textura de baja calidad, mas facil de mover y que dara ese efecto "difuminado" a las texturas lejanas.
Esto es lo que se llama MipMapping. Que significa que una textura en realidad son varias, cada una de ellas a menor resolucion y detalle que la superior. Y dependiendo de la distancia, o los settings que tengamos en el juego, dibujara la superior, la mediana o la inferior.
1.2. Tipos te texturas
* Textura simple:
Su estructura es la mas sencilla.
El L2 cargara directamente una textura.
MMagic_m006_t59_u (Texture) (DXT1)
Son aquellas texturas que no tienen transparencias ni brillo. En definitiva, son las que no tienen un canal alpha.
Por ejemplo, todas las botas y guantes ademas de algunas armaduras viejas de C1.
Ejemplos:
MShaman_m001_t50_b
FDwarf_m005_t14_g
MMagic_m006_t59_u
En el UTPT en la columna Class aparece como Texture.
El formato que usaremos sera el .DSS - DXT1
* Textura con brillo:
Su estructura es esta:
El L2 carga un Shader, que a su vez carga una textura que contiene ella misma lo que se muestra y el canal alpha con los brillos.
MMagic_m005_t34_u (Shader)
- MMagic_m005_t34_u
_sp (Texture) (DXT3)
Tambien la podeis encontrar con esta estructura:
En la que el L2 carga un Shader, que por una parte carga una textura simple (sin canal alpha) y por otra parte una textura con canal alpha con los brillos, pero a mitad de resolucion.
MMagic_m008_t62_u (Shader)
- MMagic_m008_t62_u
_ori (Texture) (DXT1)
- MMagic_m008_t62_u
_sp (Texture) (DXT3) 1/2 resolution
En el primer caso la textura tendra la extension
_sp (de specularity) y estara en formato DSS - DXT3. Ya que en su canal alpha vendran indicadas las partes que tendran brillo (blanco) y las que no (negro). Con sus respectivos tonos grises.
Las texturas DXT3 ocupan bastante mas y cuestan mas de cargar que las DXT1, por lo que en muchas armaduras vereis que usan la segunda estructura. Un DXT1 con la textura
_ori (lo que se ve), y un DXT3 a mitad de resolucion para los brillos
_sp (specularity). Asi se consigue mayor eficiencia.
* Textura con transparencia y brillo:
Su estructura sera asi:
No me pregunten porque, pero para cargar un Shader con transparencias + brillos necesitamos un FinalBlend.
MShaman_m003_t62_u (FinalBlend)
- MShaman_m003_t62_u
_sh (Shader)
- - MShaman_m003_t62_u
_ori (Texture) (DXT3)
- - MShaman_m003_t62_u
_sp (Texture) (DXT3) 1/2 resolution
Estas texturas estaran formadas en dos partes:
* La primera sera la que tiene extension
_ori, en cuyo canal alpha vendran indicadas las partes transparentes (negro) y las opacas (blanco). Con sus respectivos tonos grises (si quisieramos que una parte fuera traslucida).
* La segunda parte sera la que tiene extension
_sp, que sera una textura con la mitad de resolucion que
_ori (si una tiene 512x512, esta tendra 256x256), y en su canal alpha, como en el caso anterior, estaran indicadas las zonas que tendran o no brillo. De esta solo importa el canal alpha.
2. PRIMEROS PASOS CON UNREALED
2.1. Guardando nuestra textura
En nuestro ejemplo vamos a centrarnos en una textura con transparencia y brillo, que es la que mas complicaciones trae. Con eso se puede deducir los pasos para una textura simple o una con brillo.
Con el PhotoShop hemos creado ya nuestra textura
_ori con un tamaño de 512x512 (siempre han de ser cuadradas y a ser posible potencias de dos) que tiene un canal alpha que indica su opacidad-transparencia. Esta la guardaremos con la extension _ori.dss (DXT3).
Tambien, la hemos duplicado (en el PhotoShop) y hemos reducido la copia a la mitad de resolucion (256x256) y en su canal alpha vamos a ir pintando con grises-blanco las partes metalicas de la armadura que queremos que tengan brillo. Es aconsejable no usar blanco total ya que de hacerlo brillara tanto que no se vera lo que hay pintado. Esta la guardaremos con la extension _sp.dss (DXT3). Para hacerlo mas sencillo, en el PhotoShop copiamos toda la textura y la pegamos en el canal alpha, con lo que nos queda en escala de grises, la oscurecemos y ahora con el lazo vamos borrando (pintando de negro) las partes de la armadura que no son metalicas.
Guardamos ambas texturas en .DSS como en la Figura 1, donde solo tenemos que elegir entre DXT1 o DXT3, asegurandonos de seleccionar Generate MIP maps. Para que cuando pongamos los detalles al minimo o el PJ este muy lejos cargue un MipMap pequeño.
Figura 1 - Dialogo para guardar un .DSS
2.2. Creando nuestro propio .UTX
Bien, hasta aqui era lo facil. Ya tenemos los archivos .dss que necesitamos para ponernos de lleno en el UnrealEd.
UnrealEd [
Mirror #1] [
Mirror #2] [
Web]
Ejecutamos el UnrealEd y nos aparecera por defecto el editor de Texturas, tal como muestra la Figura 2
Figura 2 - UnrealEd - Texture Editor
De momento no vamos a modificar ningun .utx original del L2, vamos a crear nuestro propio .utx donde meteremos nuestras texturas. Porque asi es un archivo pequeño y porque si la cagamos no jodemos nada...
Ahora vamos a File > New y nos aparece un dialogo para poner las opciones de nuestro .utx. Tal y como se ve en la Figura 3.
Figura 3 - Creando nuestro .utx
Package: Nombre de nuestro archivo utx (Pack de Texturas Unreal). No puede contener espacios y, aunque mas tarde lo voy a repetir, al guardarlo la ruta tampoco puede tener espacios.
Group: Un pack puede estar organizado por grupos, en los originales del L2 estan separados por UpBody, LowBody, Gloves, etc. Se pueden separar por cualquier criterio, eso es a gusto de cada uno. Yo los suelo separar por un grupo para cada armadura en cada muñeco. Por ejemplo MMagic_Compo, FMagic_Theca, etc...
Name: Nombre que le daremos al Shader. No es importante, por defecto el UnrealEd piensa que vamos a hacer un Shader y por eso nos lo pregunta ahora, pero podemos poner lo que queramos y luego borrarlo. Total, si necesitamos un Shader (que es que si) luego lo crearemos.
El resto lo dejamos como esta.
Al darle a Ok, saldra una ventana con las propiedades de ese Shader por defecto, que podremos cerrar tranquilamente.
Nos quedara como en la Figura 4.
Figura 4 - Nuestro utx vacio
Bien, si le damos a Guardar, ya tendremos nuestro .utx creado. La ruta no puede contener espacios. Pero un .utx vacio no es que sea muy util, asi que habra que llenarlo con algo. Como por ejemplo los .DSS que creamos antes no?.
2.3. Importando Texturas al .UTX
Yo tengo estos archivos (por ejemplo):
MShaman_Compo_m003_u
_ori.dds (512x512 + canal alpha transparencias)
MShaman_Compo_m003_u
_sp.dds (256x256 + canal alpha brillos)
Le damos a File > Import y buscamos los .DSS y los cargamos. Cuando hacemos esto nos aparece un dialogo como muestra la Figura 5.
Figura 5 - Importando archivos .DSS
Masked: En este caso, como el canal alpha de nuestra textura indica transparencia, la marcamos.
Generate MipMaps: Como ya lo hicimos en el PhotoShop al guardar el .DSS, no hace falta marcarla. Y si se te ocurre hacerlo, te explotara la PC... y yo no me hago responsable, sabelo.
El resto como viene. El grupo que sale en la foto es MMagic cuando deberia ser MShaman, pero no tenia ganas de cambiarlo asi que lo continuamos asi xD
Hacemos lo mismo con MShaman_Compo_m003_u_sp.dds solo que esta vez no seleccionamos Masked ya que
_sp no indica transparencia.
Y bien, con esto ya tenemos un .utx con dos texturas cargadas, asi que guardamos. Pero no te creas que ya esta todo, aun nos queda diversion para un rato.
3. CONFIGURANDO LAS OPCIONES DE LA TEXTURA
3.1. Cosas interesantes del UTPT
El UTPT con el que, principalmente, nos servimos para extraer texturas (nos las hace en .DSS directamente si queremos) tambien nos puede servir para ver las propiedades de estas, con lo que podemos "copiarnos" de las opciones que usan los originales del L2 para las nuestras en el UnrealEd. Porque yo podria ir directamente al UnrealEd y decir las opciones que hay que poner, pero creo que es mucho mejor enseñar como se saca esa info para que esta guia sirva para cualquier tipo de textura, simplemente copiandose de las opciones de las originales.
Para saber de lo que hablo, ejecuta el UTPT y carga el MShaman.utx, en el grupo UpBody vamos a mirar alguna textura con transparencia y brillo, por ejemplo la que se muestra en la Figura 6.

Figura 6 - Ejemplo
Como veis, esta formada por
_ori,
_sp,
_sh y finalmente el _u (FinalBlend) que es la estructura que indicamos en el punto
1.2. Si no encuentras precisamente esa porque tus texturas estan en C1, busca otra que se le parezca
Ahora, hacemos click derecho en la textura
_ori y le damos a View Object Properties.
Esto nos abre en el panel derecho todas las opciones que tiene esta textura, pero no todas nos interesan. En el caso de Texturas (no Shaders ni FinalBlends) tenemos que fijarnos en
Masked y
TwoSided las dos estan a true, porque la BW Heavy en MShaman tiene transparencia (Masked) y TwoSided significa que la textura ha de mostrarse por delante y por detras, cosa que siempre ha de estar a true.
Si hacemos lo mismo en la textura
_sp veremos que solo esta TwoSided.
Ahora miramos las propiedades del
_sh (Shader), y aqui ya empieza a complicarse...
Por partes:
Diffuse: Es la textura, propiamente dicha, lo que vemos... y eso es... premio! el
_ori.
Opacity: Donde esta lo que indica la opacidad transparencia? Si... en el
_ori tambien.
Specular: Un concepto nuevo, un TexEnvMap, explicare como crear uno de estos mas adelante. Basicamente es lo que genera los brillos. Si bajas al final del todo en el UTPT vereis que hay bastantes en el MShaman.
SpecularityMask: Donde se indican los brillos, esto es, el
_sp
TwoSided: ya sabemos lo que es ^^
Facil, ahora viene ver las propiedades del FinalBlend, que son pocas, y siempre las mismas, lo unico que varia sera
Material, que carga el Shader.
Ahora ya sabemos las propiedades que han de tener las texturas con brillo y transparencia. Vayamos pues al UnrealEd a copiarlas.
3.2. Creando un TexEnvMap
Necesitamos uno para decirle al L2 que brillo ha de usar, pero copiaremos uno hecho.
Estos son los pasos:
- En el UTPT abre el archivo goldcubes.utx
- En el grupo 'Cubes' hay varias texturas pequeñas, puedes elegir la que mas te guste. Son como una bolita que representa un "destello", las hay de diferentes colores. Yo suelo usar la misma para todas las armaduras por no calentarme demasiado...
- Le das a Extract as Image > All MipMaps as DSS.
- Volvemos al UnrealEd.
- Importamos el .DSS que acabamos de crear, podemos dejar el nombre que trae (s-04 en mi caso) o ponerle "destello" por ejemplo.
- Ahora, File > New
- En el dialogo que nos muestra, en "Name" ponemos, por ejemplo, "Brillo" y en Properties desplegamos el menu y seleccionamos TexEnvMap.
- Aceptamos y nos sale la ventana para configurar nuestro TexEnvMap.
- En "Material", escribimos "destello" (o s-04), aceptamos y listo.
- Ya tenemos un TexEnvMap llamado brillo.
3.3. Configurando las Texturas
En la ventana de nuestro utx ya tenemos 3 objetos, el _ori, el _sp y el TexEnvMap.
Seleccionamos el
_ori y hacemos click derecho > propiedades.
Esto nos abre la ventana de configuracion donde solo nos interesa el grupo Surface. Aqui pondremos a True
bMasked (si no lo esta ya) y
bTwoSided.
Ahora seleccionamos el
_sp y vemos sus propiedades para poner
bTwoSided a true tambien.
Son las opciones tal y como habiamos visto en el UTPT.
3.4. Creando el Shader
Vamos a File > New, en el dialogo estara por defecto para crear un Shader, solo tenemos que ponerle nombre. Asi que en Name ponemos MShaman_Compo_m003_u
_sh. Le damos al boton New y nos saldra la ventana de propiedades del Shader tal como se muestra en la Figura 7.

Figura 7 - Shader
En los huecos para escribir ponemos lo siguiente, y al terminar le damos a Enter para que automaticamente complete el resto de la linea.
Difuse: MShaman_Compo_m003_u_ori
Opacity: MShaman_Compo_m003_u_ori
Specular: brillo
SpecularityMask: MShaman_Compo_m003_u_sp
TwoSided: True
3.4. Creando el FinalBlend
File > New, en el dialogo ponemos de nombre "MShaman_Compo_m003_u" y en el menu desplegable Properties seleccionamos FinalBlend.
Le damos al boton New y nos saldra la ventana de propiedades del FinalBlend.
AlphaTest: True
TwoSided: True
AlphaRef: 160 (no se porque, pero en los originales siempre pone eso)
Material: MShaman_Compo_m003_u_sh
Cerramos, vamos a File > Save y ya tenemos nuestro MisTexturas.utx creado, porfin.
CONTINUARA ...
l2decrypt [
download]
l2toolo [
download]