Переключающаяся текстура на браше (Toggle Texture)

Материал из Наша Wiki - Наша энциклопедия Half-Life
Перейти к: навигация, поиск

Переключающаяся текстура на браше (Toggle Texture)

Введение

Здравствуйте, товарищи мапперы и текстуровщики тоже! Эта статья посвящена созданию переключающейся текстуры на браше с помощью кнопки. Начнем с того, что нам нужно сделать материал, т.е. текстуру, которая будет переключаться с нажатием кнопки.


Создание материала и VMT-файла

Нам нужно создать столько текстур, сколько кадров (frames - фреймов) будет содержаться в одной toggle-текстуре.

Я решил попрактиковаться на цифрах. Откройте Photoshop и сделайте несколько текстур размером, например, 128Х128 и на каждой текстуре напишите цифры (например, на первой текстуре цифру "1", на второй - "2" и т.д.). Далее сохраните каждую текстуру (файл) в папку ...\materialsrc\digits (можно в любую другую папку) как TGA и 32 BIT. Это обязательно, так как по неизвестной причине toggle-текстура не работает, если каждый ее фрейм сохранить с 24 BIT'ами. Название файлов может быть любым, но с нумерацией из трех цифр в конце названия, начиная с нуля. Например, первый файл-фрейм toggle-текстуры - digits000.tga, второй - digits001.tga, третий - digits002.tga. Теперь у нас имеется 3 файла (фреймов) toggle-текстуры. Для того, чтобы скомпилировать переключающуюся текстуру, нужно создать txt-файл, например, с помощью "Блокнота". Примечание: Принцип создания VTF-файла переключающейся текстуры аналогичен принципу создания VTF-файла анимированной текстуры. Там пишем:

"startframe" "0"
"endframe" "2"

"startframe" - первый фрейм toggle-текстуры, а "0" - номер первого фрейма (в данном случае это digits000.tga; если начальный фрейм будет digits001.tga, т.е. нумерация будет начинаться с единицы, тогда эта строка будет выглядеть так: "startframe" "1").

"endframe" - конечный фрейм toggle-текстуры, "2" - номер конечного фрейма (в данном случае - digits002.tga). Сохраните текстовый файл с названием images.txt в ту папку, где лежат файлы (фреймы) toggle-текстуры.

Приступим к компиляции toggle-текстуры. Найдите текстовый файл images.txt и файл vtex.exe. Теперь путем "drag and drop" перетащите текстовый файл на vtex.exe. Появится окно компиляции текстуры.

Должна создаться toggle-текстура с именем digits.vtf. Как видите, никакой нумерации после названия нет. Если открыть файл в Photoshop, то вы сможете увидеть только первый фрейм toggle-текстуры - ничего страшного, так оно и должно быть. Теперь нужно сделать для нее VMT-файл. Его можно создать как и текстовый файл, например, с помощью "Блокнота". Пишем следующее:


"LightmappedGeneric"
{ 
"$baseTexture" "digits/digits"
"Proxies"
 {
 "ToggleTexture"
  {
   "toggleTextureVar" "$baseTexture"
   "toggleTextureFrameNumVar" "$frame"
   "toggleTextureShouldWrap" "0"
  }
 }
}


"$baseTexture" "digits/digits" - наша текстура, digits.vtf в папке digits

"toggleTextureVar" "$baseTexture" - переменная toggle-текстуры, т.е. что берет за основу текстуры

"toggleTextureShouldWrap" "0" - к сожалению, не разобрался [От Freeman'a 85-ого скорость "прокрутки" по умолчанию]

Сохраняем файл по именем digits.vmt в той же папке, где находится digits.vtf. Итак, создание материала и VMT-файла для нее завершено. Переходим к созданию карты.


Использование toggle-текстуры на карте

Откройте Hammer->File->New и создайте небольшую комнату. Поместите в нее point-ентити info_player_start и env_texturetoggle. Теперь создайте браш, покрытый той самой текстурой digits. Отправьте этот браш в solid-ентити func_brush и в поле Name задайте имя ентити, например, my_brsh. Далее сделайте браш, который будет отвечать за кнопку. Отправьте его в solid-ентити func_button. После всех действий должно получиться примерно следующее:

Файл:pic01.jpg

Теперь снова выделите env_texturetoggle и в свойствах в поле Name напишите, например, tex_toggle, а в поле Target Brush(es) выберите в списке my_brsh, т.е. тот браш, на котором, собственно, будет переключаться текстура.

Выделяем func_button и во вкладке Outputs пишем следующее:

Файл:pic02.jpg

My Output >: OnPressed - действие при нажатии кнопки

Target Entity: tex_toggle - ентити env_texturetoggle, которой манипулирует func_button

Target Input: IncrementTextureIndex - переключить toggle-текстуру на один фрейм (например, начальный фрейм - digits000, то инпут будет изменять этот фрейм на следующий - digits001)

Если хотите, то в настройках func_button в поле Delay before Reset (-1 stay) можете поставить 0 или 0.1, чтобы увеличить частоту переключения toggle-текстуры. Сохраняем результаты, компилим и наслаждаемся работой toggle-текстуры!


Пример карты

Пример карты можно скачать здесь(72 KB).

--Plazmer 08:44, 1 мая 2007 (MSD)