Skip to content

Latest commit

 

History

History
107 lines (63 loc) · 24.7 KB

weapon-materials-authoring.ru.md

File metadata and controls

107 lines (63 loc) · 24.7 KB

Создание материалов оружия

Английская версия | Формат материалов | Серверное API | Проверка редактора

Материал задает шейдерную программу, значения ее параметров и ссылки на текстуры. Поставляемая программа weapon_finish добавляет к базовой текстуре модели узор, износ, обнажаемый слой и блики. Документ модели хранится рядом с ней: для models/v_ak47.mdl используется models/v_ak47.mat.

Добавление износа к базовой текстуре

  1. В главном меню без подключения к серверу выполните developer 1 и откройте «Редактор материалов» в левом верхнем углу. Также можно выполнить r_mat_panel. Для предпросмотра требуется OpenGL 3.3. Редактор использует шейдер материалов независимо от игровых настроек шейдеров.
  2. Откройте каталог моделей (...) во вкладке «Материал» и выберите модель, например models/v_ak47.mdl. Под сценой выберите просмотр модели или оружия. Нажмите на поверхность в сцене или выберите ее текстуру на вкладке «Материал».
  3. Выберите программу weapon_finish.
  4. Укажите в uWearMap пороговую карту из поставляемой коллекции. Для uUnderlay выберите изображение из materials/surfaces/ и настройте uUnderlayTint.
  5. Изменяйте uWear и uWearSoftness, чтобы проверить обнажаемый слой и плавность перехода.
  6. Настройте uSpecular и uGloss для блика от света сцены. Параметры uSphereMap и uReflectivity задают отражение из matcap: изображения освещенной сферы, из которого шейдер выбирает цвет по нормали поверхности и положению камеры. Выберите маску отражения через uReflectMask. Параметр uReflectMaskTransform задает ее размещение, uReflectTint умножает цвет блика от света сцены и отражения из matcap.
  7. Установите сохраняемые значения uWear и uLayerMix, затем сохраните документ как models/v_ak47.mat.

На темных участках карты износа покрытие стирается раньше, чем на светлых. Маска отражения умножает силу блика: белый цвет сохраняет ее полностью, черный подавляет. Для этой задачи предназначены маски из materials/masks/reflect/. Параметр uReflectWear связывает блеск с износом: при 1 блестят только обнаженные участки, при -1 только оставшееся покрытие, при 0 действует одна маска отражения. Для износа и отражения используются отдельные карты: одна задает пороги износа, другая задает силу отражения.

Направление и цвет света сцены влияют на блик. Его сила зависит от прямого освещения, а сила отражения из matcap зависит от общего уровня света у модели. Проверяйте материал на свету и в тени.

Работа с редактором

Панель создает элементы управления по манифесту выбранной программы. Материал указывается по имени текстуры модели. Каждый меш, для которого выбрана одна и та же текстура, получает один и тот же материал. Семейство скинов определяет, какую текстуру использует каждый меш.

Переключатели «Скин» и «Тело» позволяют просматривать другие варианты модели, пока панель открыта. Их значения применяются к выбранной модели на время редактирования. Если у модели одно семейство скинов или один вариант тела, соответствующий переключатель недоступен.

Редактор занимает все окно. Слева находится отдельная сцена предпросмотра, справа элементы управления материалом. В режиме просмотра модели левая кнопка мыши вращает камеру вокруг модели, правая или средняя перемещает камеру, колесо меняет расстояние. Кнопка «Поместить в кадр» центрирует модель и подбирает расстояние по ее габаритам. В режиме просмотра оружия перетаскивание вращает или смещает модель, колесо меняет угол обзора. Зеркальное отображение меняет представление оружия. Захват мыши прекращается при отпускании кнопки, потере фокуса или закрытии редактора.

Под сценой находятся режим просмотра, зеркальный вид, анимация, кадр и скорость воспроизведения. Во вкладке «Материал» находятся выбор модели и каталог. Поля скина и варианта тела переключают варианты модели. В режиме оружия кнопка «Сбросить камеру оружия» возвращает исходное положение, поворот и угол обзора, сохраняя зеркальный вид, анимацию, материал и свет. Анимация использует собственное время редактора. В списке последовательностей показаны индексы, поскольку имена могут повторяться.

При наведении обводка выделяет видимые части с текстурой под указателем. Короткое нажатие левой кнопки выбирает эту текстуру. Перемещение на четыре пикселя и более начинает вращение и отменяет выбор. Выбирается ближайшая сохранившаяся поверхность редактируемой модели; прозрачные отверстия пропускаются. Тестовая преграда не блокирует выбор текстуры. При смене текстуры через сцену действуют те же варианты «Сохранить», «Не сохранять» и «Отмена», что и в поле текстуры.

Каталог показывает модели списком с миниатюрами. Фильтр ищет по всему каталогу и прокручивает список к первому совпадению. Миниатюры показывают исходный вид модели без пользовательских материалов и анимации. Красная метка означает, что миниатюру не удалось создать; саму модель по-прежнему можно выбрать. Повторное сканирование обновляет список и изображения.

Вкладка «Освещение» задает азимут, высоту, цвет RGB, интенсивности фонового и направленного света. Пресеты «Нейтральный свет», «Только фоновый свет» и «Скользящий свет» задают начальные значения. Галочка «Показывать солнце и лучи» включает цветной 3D-указатель в окне сцены. Стрелки показывают направление распространения света. Указатель остается видимым при перемещении камеры и изменении расстояния. Галочка меняет только его видимость.

«Вращать солнце» перемещает свет вокруг модели на постоянной высоте над горизонтом. Если исходная высота находится вне диапазона 5..80 градусов, при включении устанавливается 35 градусов. Во время вращения высоту можно менять в пределах 5..80 градусов. Отдельный ползунок «Скорость» задает скорость солнца от 0,25x до 4x независимо от воспроизведения модели. Полный оборот занимает 24 секунды при 1x, 96 секунд при 0,25x и 6 секунд при 4x. Скорость можно менять во время движения без перезапуска вращения. Солнце движется и при остановленной анимации модели и скрытом гизмо. Выключение останавливает свет в текущем положении. Поля углов показывают направление движущегося света. Цвет, сила света, материал и воспроизведение модели остаются независимыми. Настройки камеры, света, анимации и сравнения сохраняют рабочий материал.

Каталог моделей (...) ищет файлы .mdl в папках models, включая каталоги загрузок и три уровня вложенных папок. При поиске учитывается не более 16 384 путей до удаления повторов. Фильтр ищет часть пути без учета регистра. Счетчики показывают число совпадений и общее число моделей. «Обновить» перечитывает каталог, «Убрать» удаляет модель из сцены. Отдельные файлы текстур и анимаций не показываются как самостоятельные модели. Если выбранную модель не удалось загрузить, редактор сообщает об ошибке и сохраняет текущую модель и материал.

Редактор и предпросмотр настроек используют общий лимит: 128 новых записей в таблице моделей движка за время процесса. Отдельный файл текстур модели тоже занимает запись. Закрытие редактора и смена видеорежима сохраняют учет. Сброс таблицы моделей движком обнуляет его. При достижении лимита появляется сообщение; уже загруженные модели остаются доступны.

Измененный материал требует сохранения, пока его значения отличаются от сохраненных. При закрытии редактора или смене модели либо текстуры предлагаются «Сохранить», «Не сохранять» и «Отмена». Отмена и ошибка сохранения оставляют рабочий материал. Сравнение отключает авторские материалы только в этой сцене. Значения игровых cvar шейдеров и материалов сохраняются.

Чтобы изменить число, перетаскивайте подпись слева от поля по горизонтали. Перемещение на 220 пикселей примерно соответствует полному диапазону параметра; Shift уменьшает скорость в десять раз, Ctrl увеличивает в десять раз. У компонентов вектора отдельные подписи. Введенные и перетаскиваемые значения ограничиваются границами из манифеста. Поля без объявленных границ принимают конечные значения. Обычные скаляры сохраняют точность float независимо от шага ползунка или перетаскивания. Ввод NaN или бесконечности сохраняет последнее допустимое значение.

Параметры choice принимают только целые индексы; дробный индекс отклоняется до ограничения границами.

Для цветового параметра открывается диалог с компонентами RGB и альфой в диапазоне 0..255, настройками тона, насыщенности, яркости и прозрачности. Изменения сразу видны на модели. «Отмена» возвращает исходный цвет, «По умолчанию» восстанавливает значение программы.

Каталог текстур показывает папки поставляемой коллекции, миниатюры и увеличенное изображение. Выбор строки применяет изображение к модели. «Выбрать» подтверждает изображение, «Назад» возвращает прежнюю ссылку каждой выбранной текстуры, «Убрать» очищает ее. Пока цель остается прежней, сеанс редактирования сохраняется при просмотре каталога. Путь к текстуре также можно ввести вручную. Редактор проверяет синтаксис пути. Перед передачей материала проверьте файлы изображений командой matgen check.

Редактирование группы текстур

Нажмите кнопку группы рядом с полем текстуры, отметьте нужные текстуры модели и нажмите «Применить». Кнопка выбора всех отмечает весь список. В группе может быть от 1 до 64 имен текстур. Изменение задает весь параметр каждой выбранной текстуре; остальные параметры сохраняют собственные значения каждой текстуры. Смена программы действует на всю группу. Параметры с совпадающими именем и типом сохраняются, остальные получают значения по умолчанию.

Звездочка и подсказка отмечают различающиеся значения. Поля числа, вектора и изображения показывают значение первой текстуры; список именованных вариантов показывает «Разные значения». Сохранение записывает все выбранные текстуры и отмеченные связанные модели. Если есть несохраненные изменения, при смене группы, модели, текстуры или закрытии редактора доступны «Сохранить», «Не сохранять» и «Отмена».

Каталог изображений и диалог цвета сохраняют исходный параметр отдельно для каждой выбранной текстуры. Кнопки «Назад», «Отмена» и закрытие предпросмотра восстанавливают эти значения, включая различающиеся значения и отсутствие параметра. Остальные рабочие изменения сохраняются. Подтверждение применяет выбранное значение ко всей группе.

Добавление узора

  1. Выполните matgen uv models/v_ak47.mdl, чтобы получить PNG с проволочной UV-разверткой для каждой текстуры модели.
  2. Нарисуйте узор по полученному шаблону в графическом редакторе. Альфа узора определяет участки, на которых видна базовая текстура.
  3. Сохраните изображение в игровом каталоге, укажите uPattern и настройте uLayerMix, uPatternTint и uPatternTransform.
  4. Настройте карту износа и обнажаемый слой, затем проверьте материал на всем диапазоне износа.

Запекание износа по геометрии модели

matgen bake edges models/v_ak47.mdl

Команда создает PNG в оттенках серого для каждой текстуры, используемой выбранным семейством скинов. Выпуклые кромки темные и стираются первыми, углубления светлые. При запекании изображение продолжается за края UV-островов, чтобы уменьшить швы при фильтрации. Укажите результат в uWearMap.

Внешние инструменты запекания могут работать с существующей UV-разверткой после импорта SMD модели. Карта кривизны подходит для uWearMap; карту окружающего затенения (ambient occlusion) можно использовать, если износ должен начинаться в углублениях. Нарисованный узор задается через uPattern, изображение обнажаемой поверхности через uUnderlay. При запекании настройте отступ за края островов.

Использование поставляемых изображений

Поставляемая коллекция содержит карты износа, шума, царапин, грязи и отражения, изображения обнажаемых поверхностей и matcap. Пути задаются относительно игрового каталога, например materials/masks/wear/even.png. Эти файлы устанавливаются вместе с клиентом. Ссылки на них учитываются в лимите документа или пресета, равном 64 различным изображениям. Существующие пути и содержимое коллекции сохраняются; новые изображения получают новые имена.

Пользовательские изображения должны иметь формат PNG или TGA и содержать не более 1 048 576 пикселей. Лимит относится к площади, поэтому у прямоугольного изображения сторона может превышать 1024 пикселя. Ограничения путей и файлов приведены в справочнике формата.

Сохранение связанных моделей и передача пресета

Модели v_, p_ и w_ используют отдельные документы. Флажки «Дополнительно сохранить» выбирают конкретные связанные модели и изначально сняты. Сохранение подготавливает каждую выбранную модель и применяет материал к совпадающей текстуре. Отсутствующие текстуры, ошибки подготовки и записи указываются отдельно для каждого пути. При любой ошибке материал остается несохраненным. Перед передачей проверяйте каждую связанную модель в предпросмотре.

  1. Проверьте каждый документ командой matgen check models/v_ak47.mat --game <game>/cstrike. Изображения ищутся в каталоге из --game по путям, указанным в материале. Если параметр не задан, используется текущий каталог.
  2. Экспортируйте материал пресета через панель. Запись появится в консоли.
  3. Поместите запись в серверный пресет и раздайте его вместе с пользовательскими изображениями. Ссылки на поставляемую коллекцию используют изображения, установленные с клиентом.

Вне сеанса редактирования серверные привязки сущности имеют приоритет над документами модели. Во время редактирования рабочий материал временно заменяет выбранный источник. Подпись источника в редакторе указывает, откуда взят исходный материал. Проверка привязок и параметров экземпляра описана в серверном руководстве.

Диагностика

Команда Действие
r_mat_panel Открыть редактор из главного меню без подключения к серверу.
r_mat_edit Редактировать через консоль с помощью models, textures, begin, set и save.
r_mat_scene_state Вывести модель, камеру, свет, анимацию редактора и диагностику предпросмотра движка.
r_preview_state Вывести состояние предпросмотра, число загруженных моделей и последнюю ошибку загрузки.
r_studio_materials 0 Отключить авторские материалы в игре. В редакторе используется сравнение.
r_studio_dump Записать сведения об использованном рендерере и материалах сцены.

Эффекты материалов