Skip to content

Latest commit

 

History

History
101 lines (73 loc) · 14 KB

material-effects.ru.md

File metadata and controls

101 lines (73 loc) · 14 KB

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

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

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

Эффекты описаны профилем материала studio_effects_v1. Имена параметров, их типы и допустимые значения должны соответствовать этому профилю. Требования приведены в описании манифеста.

Растворение и шумовая прозрачность

Параметр Назначение
uDissolveMap Порог растворения в красном канале изображения. Без изображения используется белый цвет.
uDissolveTransform [масштаб_x, масштаб_y, сдвиг_x, сдвиг_y].
uDissolveSpace 0: UV поверхности; 1: координаты окна сцены.
uDissolve 0..1. Ноль сохраняет все фрагменты; единица полностью скрывает поверхность. Промежуточные значения скрывают фрагменты, у которых значение маски не превышает заданный порог.
uNoise Процедурная прозрачность 0..1. Ноль сохраняет поверхность; единица полностью скрывает ее.
uNoiseSpace 0: UV поверхности; 1: координаты окна сцены.
uNoiseScale Число ячеек шума на единицу координат, 1..1024, по умолчанию 256.
uNoiseSeed Воспроизводимый вариант рисунка, 0..32767.
uNoiseSpeed Число обновлений рисунка в секунду, 0..60. Ноль фиксирует рисунок.

Начало экранных координат находится в левом нижнем углу окна сцены. Обе оси делятся на его высоту. Одна единица соответствует высоте окна, поэтому ячейки шума остаются квадратными при любом соотношении сторон. Экранный рисунок сохраняет положение при движении модели. UV-рисунок движется вместе с поверхностью. Растворение и шум используют независимые системы координат. Сохраняются только фрагменты, прошедшие оба условия. Отверстия маскированной базовой текстуры остаются прозрачными.

Шум скрывает отдельные участки поверхности. uNoiseSeed задает рисунок, а uNoiseSpeed задает частоту его изменения. Обводка и выбор мышью учитывают прозрачные участки. Материал может содержать до 64 параметров, включая значения по умолчанию.

Деформация геометрии и разделение RGB

Глитч смещает вершины модели по горизонтали в пикселях окна сцены и разделяет красный и синий каналы базовой текстуры. Рисунок задают горизонтальные полосы, время и начальное значение генератора (uGlitchSeed). Эффект действует на выбранный материал. Геометрия, выбор мышью и эффекты за стенами используют одно преобразование. Альфа-канал исходной текстуры, растворение и шум сохраняют свое действие. Нулевая интенсивность отключает обе части эффекта. Нулевая скорость останавливает рисунок. У моделей с редкой сеткой меньше вершин для деформации.

Параметр Диапазон По умолчанию
uGlitchAmount 0..1 0
uGlitchDisplacement 0..64 пикселя 12
uGlitchBands 1..128 полос на высоту окна 24
uGlitchRgbSplit 0..16 пикселей 2
uGlitchSpeed 0..60 изменений рисунка в секунду 12
uGlitchSeed 0..32767 0

В примерах KinoGlitch показаны дрожание строк, смещение цветовых каналов и блочные искажения. Пример для 3D-моделей сочетает деформацию геометрии с разделением RGB. Они использованы как визуальные ориентиры.

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

Нажмите Группа рядом с полем текстуры, отметьте нужные текстуры или нажмите Выбрать все, затем Применить. Редактор показывает значения первой выбранной текстуры. Звездочка отмечает параметр, значения которого в группе различаются. Изменение этого параметра применяется ко всем выбранным текстурам. Остальные параметры сохраняют свои значения. Если в группе разные шейдеры, поле программы показывает Разные шейдеры. Для изменения параметров сначала выберите общую программу.

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

Подкраска, обводка и свечение

Параметр Назначение
uOccludedAmount Интенсивность подкраски 0..1, по умолчанию 0.
uOccludedColor Цвет подкраски RGBA.
uOutlineMode 0: только скрытая часть силуэта (по умолчанию); 1: весь силуэт; 2: только видимая часть силуэта. Свечение использует тот же режим.
uOutlineWidth Ширина внешней обводки в пикселях, 0..16, по умолчанию 0. Ноль также отключает свечение.
uOutlineColor Цвет обводки и свечения RGBA.
uGlowRadius Дополнительный радиус мягкого свечения в пикселях, 0..64, по умолчанию 8.
uGlowStrength Интенсивность свечения 0..4, по умолчанию 0.

На вкладке «Материал» выберите Режим обводки. Значение Только за преградой обводит скрытую часть внешнего силуэта, а Всегда обводит весь внешний силуэт независимо от препятствий. Значение Только видимые обводит только видимую часть внешнего силуэта. Режим действует на обводку и свечение. Подкраска остается только на скрытых пикселях. Линия пересечения модели со стеной не создает дополнительную обводку. Растворение, шум и альфа-канал маскированной текстуры действуют во всех трех режимах.

Видимые поверхности модели сохраняют свой материал. Обводка и свечение следуют выбранному режиму видимости, в том числе с MSAA. При сравнении настроек сглаживания проверяйте частично закрытые края и тонкие препятствия.

Для разбора ошибки сохраните вывод r_mat_scene_state в редакторе или r_preview_state в игре вместе со снимком экрана. Эти команды показывают состояние предпросмотра и сведения о последней отрисовке эффектов.

Управление с сервера

В сетевой игре значения uOccludedAmount и uOutlineWidth задаются только явными вызовами ncl_mat_param_all или ncl_mat_param на сервере. Синхронизированная привязка начинает работу с нулевыми значениями независимо от содержимого пресета; удаление серверного параметра снова отключает соответствующий эффект. Локальные документы моделей и консольные привязки не включают подкраску или обводку. Команды изменения материалов доступны только отключенному клиенту. В редакторе главного меню доступны все эффекты. ncl_mat_through_walls отдельно разрешает передачу сущности вне PVS.

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

{
    "program": "studio",
    "params": {
        "uOccludedAmount": 0.5,
        "uOccludedColor": [1.0, 0.25, 0.05, 0.7],
        "uOutlineWidth": 2.0,
        "uOutlineColor": [1.0, 0.5, 0.1, 1.0],
        "uGlowRadius": 8.0,
        "uGlowStrength": 1.0
    }
}

Чтобы эффект был доступен за пределами обычной области видимости, явно разрешите передачу связанной сущности вне PVS через серверный API материалов.

Передача вне PVS требует действующей привязки и готовых получателей NextClient 2.6+. Разрешение следует за подбором и выбрасыванием оружия и прекращается при завершении привязки или сессии. Обычные клиенты сохраняют штатные правила видимости. Ограничения видимости сервера продолжают действовать; недавно видимая сущность может оставаться видимой некоторое время после отключения разрешения.

Параметр экземпляра Диапазон значений
uDissolve, uNoise, uOccludedAmount 0..1
uNoiseSeed 0..32767
uNoiseSpeed 0..60 изменений в секунду
uOutlineWidth 0..16 пикселей
uOutlineMode Целые индексы 0, 1, 2
uGlowStrength 0..4

Системы координат, преобразование маски, цвета, плотность шума и радиус свечения задаются в пресете. Параметры экземпляра передаются как конечные float в указанных единицах. Обычные скаляры сохраняют точность float. uOutlineMode требует целого индекса, например 2.0 в Pawn. Дробные индексы отклоняются до ограничения границами. На сервере нужны обновленный модуль и Pawn include. Одна установка клиентских DLL не включает передачу вне PVS.

Тестовый плагин, его ресурсы и команды проверки находятся в test_support/plugins/nextclient_materials_test.