Moderator elections are being held. See Valve Developer Community:Moderator elections for more details.
Users who would like to run for moderator must be autoconfirmed and have at least 100 edits. Users can check their own edit count at Special:Preferences.
The Message template has been deleted. A list of pages that transclude it are at Valve Developer Community:Message transclusions.

Creating a Material/ru

From Valve Developer Community
Jump to: navigation, search

Этот урок является пошаговым руководством по созданию совершенно нового материала, включая материал текстур.

Создание текстур

Для создания текстуры подойдёт любое изображение, если его размеры (высота и ширина) кратны двум, например: 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, и т.д. Прежде, чем создавать новую текстуру, изучите существующие, выполняющие ту же роль. Текстуры с высоким разрешением тормозят производительность, но при этом дают большую резкость при просмотре вблизи.

Различные классы объектов имеют разные стандартные разрешения (например, модели персонажей более детализированы). Если запутаетесь, вам в помощь source materials.gcf вместе с GCFScape.

Note.pngПримечание:Исходные файлы текстур должны сохраняться в формате с меньшими потерями качества - TGA.

Преобразование текстур

Перед тем, как использовать в Source, текстуры необходимо преобразовать в Valve Texture Format. Для этого Valve предоставляет инструмент VTEX. С этим инструментом можно работать через командную строку, или с помощью сторонних программ, таких как VTFEdit. VTFEdit предпочтительней, поскольку имеет удобный графический интерфейс, позволяет редактировать текстуры без перекомпиляции, поддерживает множество форматов, и не требует отдельных скриптов для создания каждой текстуры.

(Существуют VTF-плагины которые позволяют сохранять текстуры в формат прямо из Photoshop, GIMP и Paint.NET.)

Чтобы импортировать текстуру в VTFEdit, используйте File > Import или нажмите Ctrl+I. Выберите изображение и откроется окно импортирования:

Экран импортирования VTFEdit

Основные параметры

Следующие параметры наиболее важны. Их три:

Формат нормалей
Формат цвета/сжатия, который используется для прозрачной текстуры.
Формат Альфа
Формат цвета/сжатия, который используется для текстуры с альфа-каналом.
Тип текстуры
Если вы импортировали больше, чем одно изображение, тут задаётся тип их использования (кадры анимации/кубмапы/глубина срезов).

Если вы создаёте простую текстуру, то вам не понадобится ничего из перечисленного выше. Если вы создаёте текстуру с детально проработанными градиентами, вам придётся выбрать режим сжатия без потерь.

Настройки мип-карт

Мип-карты - это версии текстуры, имеющие низкое разрешение, сменяющие друг друга по мере удаления камеры от неё. Они существенно сокращают требуемый объём текстуры, повышая производительность и качество изображения.

Tip.pngСовет:Текстуры, которые будут отображаться в 3D-мире, должны иметь мип-карты. Для экономии памяти, текстуры используют интерфейс 2D.

Следующие изображения демонстрируют различные мипмап-фильтры, доступные в VTFEdit:

Настройки карты нормалей

Эти (неправильно названные) настройки позволяют автоматически генерировать карту рельефа из вашего изображения.

Конфигурирование и сохранение

Когда вы нажимаете OK, входящий файл конвертируется (порою долго, если изображение большое), и на выходе появляется в формате VTF. Теперь всё, что осталось - это сконфигурировать настройки текстуры с помощью ряда флажков на левой стороне экрана. Описание каждого из них см. флаги изображений.

Теперь, сохраните файл в каталоге своей игры или мода в папке \materials.

Создание материала

Source обращается к текстурам не напрямую. Он это делает через материалы.

Материалы - это файлы скриптов, которые создаются с помощью любого текстового редактора, но лучше всего использовать Notepad++ с подсветкой синтаксиса. Чтобы ваш материал был обнаружен, вы должны сохранить его в папке игры или мода \materials с расширением .vmt.

Note.pngПримечание:Если вы создаёте материалы и текстуры специально для вашего мода, рассмотрите возможность использования BSPZIP\Packbsp\Pakrat, чтобы вшивать их прямо в карту. Это позволит избежать их утери в будущем.

Синтаксис

Файл материала выглядит так:

<shader>
{
	<parameter> <value>
	...
}
LightmappedGeneric
{
	$basetexture coast\shingle_01
	$surfaceprop gravel
}

Существует много разных шейдеров, но большинство материалов используют LightmappedGeneric (браши) или VertexLitGeneric (модели). Третьим наиболее распространённым шейдером является UnlitGeneric, который используется для материалов UI, и изредка для служебных текстур.

Параметры

Список всех задокументированных параметров шейдеров см. Список параметров шейдеров.

Параметры в шейдере также называются командами. Существуют сотни параметров, которые можно вложить в материал, мы же рассмотрим основные, которые используются чаще всего. Вот они:

Tip.pngСовет:Если в значении параметра потребуется использовать пробел или символ табуляции, вам нужно всё значение поставить в "кавычки". Вы увидите, что они экономят время печати.

См. также