Creating a Material/es

From Valve Developer Community
Jump to: navigation, search

Este tutorial es una guía paso a paso para crear un material completamente nuevo, incluida la creación de la texture del material.

Creando una Textura

Cualquier archivo de imagen se puede utilizar como textura, siempre que sus dos dimensiones (alto y ancho) sean una potencia de dos: 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048 y así sucesivamente. Para decidir cuál usar, examine las texturas existentes que cumplen la misma función que la suya. Las resoluciones más altas reducen el rendimiento pero hacen que la imagen sea más nítida cuando se ve de cerca.

Las diferentes clases de objetos tienen diferentes resoluciones estándar (por ejemplo, los modelos de personajes usan resoluciones muy altas). Compruebe las opciones de Valve en source materials.gcf con GCFScape si alguna vez se confunde.

Note.pngNota:Los archivos fuente de textura deben guardarse en un formato sin pérdidas como TGA precompilado, para evitar pérdidas innecesarias en la calidad.
Note.pngNota:El límite de tamaño de archivo es de 33,554,432 bytes. Compilar un .vtf por encima de esta cantidad causará errores.

Convirtiendo la Textura

Las texturas deben convertirse al Valve Texture Format antes de que Source pueda usarlas. La herramienta que proporciona Valve para esto es VTEX. Es una herramienta de command line con bastantes limitaciones, por lo que es preferible la herramienta de terceros VTFEdit: proporciona una interfaz gráfica de usuario, le permite cambiar las propiedades de una textura sin volver a compilarla desde cero , acepta una amplia gama de formatos de imagen y no requiere la creación de archivos de script para todas y cada una de las texturas. Hay un puñado de situaciones en las que necesitará recurrir a VTEX... pero solo un puñado. Además, si tiene texturas que usan transparencia, se recomienda que las guarde en formato TIFF antes de importarlas a VTFedit, ya que la transparencia PNG suele tener problemas.

(Hay complementos VTF que le permiten guardar en el formato directamente desde Photoshop, GIMP y Paint.NET, pero este tutorial no los cubrirá ya que no todos usan esas herramientas).

Para importa tu Textura con VTFEdit, use File > Import o presione Ctrl+I. Seleccione su imagen y se le presentará la pantalla de importación:

VTFEdit's import screen

Opciones Generales

Estos ajustes son los más importantes. Hay tres:

Formato Normal
El formato de color/compresión que debe usarse si la textura es opaca.
Formato Alfa
El formato de color/compresión que debe usarse si la textura tiene un canal alfa.
Tipo de Textura
Si importó más de una imagen, esto determina cómo se usarán (fotogramas de animación/caras de un cubemap/cortes de profundidad).

Si está creando una textura de mundo simple y simple, no necesitará cambiar ninguno de estos. Sin embargo, si está creando una textura con un detalle de degradado fino, deberá elegir un modo de compresión sin pérdidas.

Opciones de Mipmap

Mipmaps son ​​versiones de baja resolución de una textura que se intercambian cuando una superficie está lejos de la cámara. Reducen en gran medida la cantidad de cambios de tamaño de textura necesarios, mejorando tanto el rendimiento como la calidad de la imagen. Se requieren mips para que la textura LOD funcione.

Tip.pngConsejo:Las texturas que aparecerán en el mundo 3D deben tener mipmaps. Para conservar memoria, las texturas que solo se usarán en una interfaz 2D no deberían hacerlo.

Las siguientes imágenes demuestran los diversos filtros mipmap disponibles en VTFEdit:

Opciones de Mapa Normal

Estas opciones (mal etiquetadas) le permiten generar automáticamente un bump map a partir de su imagen de entrada. Querrá hacer esto correctamente con un editor de imágenes para el material que envía, pero la opción automática está ahí si desea resultados rápidos o una base desde la que trabajar.

Configurando y Guardando

Cuando presiona Aceptar, el archivo de entrada se convierte (puede haber una pausa bastante larga para imágenes grandes) y aparece el VTF de salida. Ahora todo lo que queda es configurar la textura con las opciones en la lista de casillas de verificación en el lado izquierdo de la pantalla. Consulte Valve Texture Format#Image_flags para ver las descripciones de cada uno.

Finalmente, guarde el archivo en algún lugar dentro de la carpeta \materials de su juego o mod.

Creando un Material

Source no accede a las texturas directamente. Todo pasa por un material.

Los materiales son archivos de secuencias de comandos que se pueden crear en cualquier editor de texto, pero se recomienda que utilice Notepad++ junto con las reglas de resaltado de sintaxis de syntax highlighting rules. Para que su material sea detectado, debe guardarlo en la carpeta \materials de su juego o mod con la extensión .vmt.

Note.pngNota:Si está creando materiales y texturas exclusivamente para un mapa para un mod existente, considere usar BSPZIP\Packbsp\Pakrat\Compile Pal para empaquetar los archivos de material y textura dentro el archivo de mapa en sí. Esto evitará que se pierdan.
Warning.pngAviso:Aunque su computadora le permitirá guardar un nombre de archivo que contenga el carácter %, y los VTF funcionan bien con el carácter en el nombre, Hammer no puede manejar VMTs cuyos nombres contienen el carácter %.

Sintaxis

Un archivo de material se ve así:

<shader>
{
	<parámetro> <valor>
	...
}
LightmappedGeneric
{
	$basetexture coast\shingle_01
	$surfaceprop gravel
}

Hay muchos shaders para elegir, pero la mayoría de los materiales usarán LightmappedGeneric (brushes) o VertexLitGeneric (models) . El tercer shader más común es UnlitGeneric, que se usa para materiales UI y la ocasionalmente texture tools.

Parámetros

Para obtener una lista de todos los parámetros de shaders documentados, consulte Category:List of Shader Parameters.

Con un shader elegido, están los parámetros (también llamados comandos). Hay cientos de opciones sobre qué poner en un material, por lo que este artículo solo cubrirá las más comunes, que son aceptadas por más o menos todos los shaders. Ellos son:

Tip.pngConsejo:Si alguna vez necesita usar un espacio o un carácter de tabulación en un valor de parámetro, debe envolver el valor completo con "comillas". A menudo verá absolutamente todo envuelto de esta manera, pero esto es completamente innecesario.
Tip.pngConsejo:Para actualizar un material en el juego sin reiniciarlo, use el siguiente comando de consola: mat_reloadmaterial "vmt_name sin .vmt y comillas". Aunque existe el comando mat_reloadallmaterials, no se recomienda usarlo, ya que pueden aparecer varios artefactos. También se presenta mat_reloadtextures, pero parece tener muchos errores.

Por ejemplo:

 mat_reloadmaterial combine_barricade_short01a
recargará cada material en el sistema de archivos llamado combine_barricade_short01a, incluido todo el contenido personalizado. Por ejemplo: tanto materials/models/props_combine/combine_barricade_short01a.vmt como materials/models/props_metal_barricade/combine_barricade_short01a.vmt se volverán a cargar. Esto puede parecer muy útil al escribir proxies.

Ver También