Чтобы создать эффект рассечения, сначала создайте граф узлов излучения, чтобы сформировать сплошной материал, а затем используйте данные положения сетки в мире и узел материала TransformPosition, чтобы определить место рассечения сетки.
Этот материал позволяет разрезать сетки на две части, например, если нужно разместить сетку заподлицо со стеной так, чтобы она не выходила на другую сторону, или для создания лабиринта для игроков, используя статичную сетку в качестве элемента стены.
Создание графа узлов излучения
Вы можете скопировать узел, в котором уже используется граф излучения, и удалить часть графа, которая вам не нужна, чтобы затем добавить необходимую конфигурацию узлов для создания эффекта.
Нажмите на корневой узел материала и выберите параметр Двухсторонний на панели Сведения.
Откройте выпадающее меню Режим смешивания и выберите С маской 1.
Добавьте к материалу следующие узлы, нажав правой кнопкой на графе узлов и выбрав узлы:
3 узла Constant (Константа)
2 узла Constant 3Vector expression (Выражение Constant 3Vector)
2 узла Clamp (Ограничение)
Узел Append3Vector
Узел WorldPosition
Узел Subtract (Вычитание)
Узел Dot Product (Скалярное произведение)
Узел Multiply (Умножение)
Узел Linear Interpolate (Линейная интерполяция)
Узел TrueSidedSign
Дважды нажмите на первый узел Constant3Vector и добавьте цвет внешней стороны материала.
Соедините белый контакт первого узла Constant3Vector со входом «Базовый цвет» корневого узла материала.
Соедините контакт первого узла Constant (Константа) со входом «Шероховатость» корневого узла материала и измените его значение на 0,75.
Данная конфигурация позволяет задать базовый цвет и реакцию материала на освещение объекта, к которому прикреплён материал. Следующая конфигурация создаёт излучающий материал, благодаря которому внутренняя поверхность сетки не будет прозрачной.
Установите связь между узлом TwoSidedSign и узлом Clamp (Ограничение), а затем между узлом Clamp (Ограничение) и входом «Альфа» в узле Lerp.
Дважды нажмите на второй узел Constant3vector и добавьте цвет на внутреннюю поверхность сетки. Установите связь между белым контактом узла Constant3Vector и входом А узла Lerp (Линейная интерполяция).
Выберите узел Lerp (Линейная интерполяция) и задайте для входа B значение 0,0.
Установите связь между узлом Lerp (Линейная интерполяция) и входом А узла Multiply (Умножение).
Выберите узел Multiply (Умножение) и измените значение входа B на 0,3.
Соедините узел Multiply (Умножение) со входом «Испускаемый цвет» корневого узла материала.
Блок-схема узлов излучения готова.
Разрезание сетки надвое
Далее создайте граф расположения, который сможет определять расположение сетки, чтобы удалять её отдельные части из проекта.
Этот эффект достигается путём автоматического разрезания сетки пополам с использованием данных положения материала в мире для преобразования материала на сетке в направлении, заданном в графе узлов.
Создайте и откройте новый Материал и добавьте в граф узел материала Constant3Vector. Добавьте к узлу цвет, а затем установите связь между узлом Constant3Vector и входом «Базовый цвет» основного узла материала.
Создайте узел функции материала, нажав правой кнопкой в Редакторе материалов и напечатав в строке поиска слово Функции. Выберите настройку MaterialFunctionCall. В редакторе материалов появится узел Unspecified Function (Неопределённая функция).
В Редакторе материалов нет возможности искать конкретную функцию материала. Вместо этого нужно создать узел неопределённой функции материала и привязать к нему функцию.
Выберите узел Unspecified Function и привяжите к нему функцию материала ObjectLocalBounds из выпадающего меню Функция материала на панели «Сведения». Узел функции материала объекта автоматически появится в Редакторе материалов.
Добавьте следующие узлы в Редактор материалов:
Узел WorldPosition
Узел TransformPosition
Узел Constant (Константа)
Узел Add (Сложение)
Узел Clamp (Ограничение)
Узел Component Mask (Маска компонента)
Узел Multiply (Умножение)
2 узла Subtract (Вычитание)
Соедините узел WorldPosition с узлом TransformPosition.
Выберите узел TransformPosition и измените значения параметров Положение преобразования выражения материала на следующие:
Источник = абсолютное положение в пространстве мира
Место назначения = локальное пространство
Соедините узел TransformPosition со входом A первого узла Subtract (Вычитание).
Соедините контакт Минимальные локальные границы узла ObjectLocalBounds со входом B первого узла Subtract (Вычитание).
Соедините узел TransformPosition со входом A первого узла Multiply (Умножение).
Измените значение входа B узла Multiply (Умножение) на –1,0.
Соедините узел Multiply (Умножение) со входом A узла Add (Сложение).
Соедините контакт Максимальные локальные границы узла ObjectLocalBounds со входом B узла Add (Сложение).
Соедините узел Add (Сложение) со входом A второго узла Subtract (Вычитание).
Нажмите правой кнопкой мыши на узле Constant (Константа), чтобы преобразовать его в узел <strong>Parameter (Параметр)</strong>. Присвойте узлу Parameter (Параметр) название ObjectClip
Задайте для ObjectClip значение 0,0.
Соедините ObjectClip со входом B второго узла Subtract (Вычитание).
Соедините узел Subtract (Вычитание) с узлом Component Mask (Маска компонента).
Выберите узел Component Mask (Маска компонента) и оставьте только флажки G и B Маски компонентов выражения материала на панели «Сведения».
Соедините узел Component Mask (Маска компонента) с белым входом узла Clamp (Ограничение).
Измените значение входа «Максимум» узла Clamp (Ограничение) на 1,0.
Соедините узел Clamp (Ограничить) с параметром Маска непрозрачности.
Нажмите на изображение, чтобы увеличить его.
Нажмите Применить.
Отрицательное значение параметра B в узле ObjectClip восстанавливает объект, а положительное — удаляет часть объекта, которая тем больше, чем больше значение. Имейте в виду, что диапазон отсечения не нормирован, поэтому значения зависят от масштаба объекта, к которому прикреплён материал.