Академический Документы
Профессиональный Документы
Культура Документы
Создаем новый проект. Выбирайте любой шаблон, здесь не важно. Главное, добавьте
Starter Content.
Создадим новую папку, в которой, будем создавать наши материалы.
Переходим в нашу папку и создаем там новый материал. Назовем его BaseMaterial.
Blend Mode - определяет как будет смешиваться материал с тем, что уже нарисовано на
экране.
Режимы смешивания
Создадим простой материал и протестируем в нем Blend Mode. Для добавления нод в
Material Editor можно воспользоваться панелью Palette, просто перетянуть оттуда ноду,
либо же кликнуть правой кнопкой мыши в пустом поле и в выпадающем списке найти
нужную ноду. Эти 2 списка дублируются, так что не важно как добавлять ноды. Я буду
просто говорить какую ноду добавить, а вы уже сами будете добавлять откуда удобно.
Добавляем ноду Constant4Vector. Эта нода содержит 4 числа, которые формирует цвет.
Выберите эту ноду и в окне Details кликните по прямоугольнику, показывающему текущий
цвет
q
Наш шар поменял цвет. У нашего материала есть цвет, давайте теперь проверим Blend
Modes. Нажмите Apply и Save. Добавьте на сцену какой-нибудь объект из стандартных, к
примеру этого парня
По умолчанию Blend Mode установлен как Opaque, по этому моделька рисуется как
обычно поверх всего остального. Возвращаемся в Material Editor и меняем ставим Blend
Mode в Masked
Если сейчас нажать Apply, то вы заметите, что ничего не поменялось) Это потому что мы
не добавили маску. Возвращаемся в Material Editor. Добавляем текстуру
T_Perlin_Noise_M, просто перетяните ее в окно редактора материалов.
Соединяем верхний выход ноды с текстурой с входом Opacity Mask
Идем дальше, так как впереди еще много дел. Меняем Blend Mode на Additive
И для более наглядного результата уберите текстуру шума с входа Opacity. Для этого
зажмите клавишу Alt и кликните по белому кругу справа от параметра Opacity.
Не забываем нажимать Apply или Save, чтобы посмотреть как материал выглядит в игре.
Теперь наш шар выглядит так
Меняем Blend Mode на Modulate. Здесь нужно провести немного больше манипуляций,
чтобы он заработал.
Получаем.
Анимированный материал
Давайте сделаем какой-то материал и заодно рассмотрим базовые операторы для
работы с материалами. Создаем новый материал. Называем его AnimateMaterial.
Соединим выход Multiply с входом Base Color. Нажмем Apply. Применяем на наш
StaticMesh в сцене. Пока, что ничего интересного.
Задайте любые цвета для 2-ух последних нод. И соедините все как на рисунке.
Мы немного раскрасили нашу модель. Здесь с помощью ноды Lerp, мы перезаписываем
цвета из входа Alpha. Грубо говоря, то что было черным, станет цветом, который мы
подключили на вход A и, соответственно, то что было белым станет цветом, который мы
подключили на вход B. Закрываем, переходим к другому материалу.
Glow материал
Теперь сделаем светящийся материал. Создаем новый материал, называем его
GlowMaterial. Назначаем на модель, открываем. Добавляем сразу 2 текстуры
T_Tech_Hex_Tile_M и T_Tech_Hex_Tile_N
Сейчас вход Base Color оставляем пустым. Соединим пока что T_Tech_Hex_Tile_N с
входом Normal.
Нажимаем Apply. Теперь у нас появились некие вмятины на объекте. Теперь давайте
поиграемся с параметрами Metallic и Roughness. Создайте 2 переменные Constant и
соедините каждую из них с этими параметрами.
Нажмите Apply, посмотрите, как меняется ваша модель. Попробуйте другие значения. И
для лучшей наглядности, все же добавьте ноду Constant3Vector и соедините с входом
Base Color.
Пока не забыл, каждую ноду вы можете подписывать, чтобы было понятно, каким
параметром вы управляете. Выделите любую ноду Constant3Vector и в поле Desc
введите любое название.
Затем оно появится у вас окне редактора.
Ноде Constant задаем большое значение. У меня это 500. Нажимаем Apply. Переходим в
сцену. Можете также для наглядности выключить все источники освещений.
Здесь рассмотрим еще один секрет и идем дальше. Добавляем ноду Sine и ноду Time.
Как вы уже догадались, соединим все как на рисунке и смотрим)
В настройках Sine можете поменять период, чтобы сделать мигания чаще.
Теперь добавляем знакомые нам уже ноды Sine и Time, а также Multiply. Соединим все
как на картинке.
World Position Offset позволит нам задать положение vertex’ов для нашего мэша. Если
сейчас нажать Apply, то мы заметим, что сейчас двигается весь плейник. Нам нужно
сделать маску, по которой будет фильтроваться, что двигать, а что нет. Обычно для таких
дел используется текстура, но у нас ее нет. Будем использовать ноду LinearGradient.
Добавляем ее в редактор. И соединим как на картинке.
При желании, можете посмотреть как выглядит градиент. Просто соедините его с Base
Color. Сейчас двигается нижняя часть. Исправим это с помощью ноды OneMinus
В настройках главного материала, можете поставить галочку Two Sided. Таким образом,
материал будет показываться с обеих сторон плейника.
И сразу же поправим еще один момент. Исправим черное затухание. Добавьте ноду Add
и ничего не меняя, соединим ее
Теперь заменим наше число 500 тоже параметром ScalarParameter. Для создания этой
ноды, можете воспользоваться HotKey S. Просто зажмите эту клавишу и кликнете левой
кнопкой мыши в пустом поле. Выставляем параметры для этой ноды.
Соединим и ноду 500 смело удаляем.
Заменим еще 2 ноды, которые отвечают за цвет нашего материала. Добавляем ноду
VectorParameter, выставляем в ней следующие настройки
Соединяем все.
Все готово. Сохраняем. Еще очень полезная штука в Material Editor это возможность
добавлять комментарии. Когда нод становится слишком много, то сложно разобраться
сразу, что и где находится. Чтобы добавить комментарий, выделите несколько нод и
нажмите правой кнопкой мыши по одной из них. В выпадающем списке выберите Create
comment from Selection.
И так, сохранили наш материал, закрываем его. В окне Content Browser кликаем правой
кнопкой по нему и выбираем Create Material Instance.
Вводим ему имя GlowMat_Instance. Назначаем нашего подопытного. И открываем его.
Он выглядит немного попроще, чем Material Editor.
По сути, здесь вам только интересна панелька Details, в которой находятся, созданные
вами параметры. Ниже указывается ссылка на родительский материал.
По умолчанию, все параметры выключены и их значения установлены, в те, что мы
задавали в самом материале. Теперь просто ставьте галочки напротив, тех параметров
которые хотите изменить
Construction Script
Ну что же, выделяем наш шар
Получаем следующее
Добавим еще одну переменную Change Color с типом Bool. Я покажу все в скринах
Соединяем
Соединяем
Наша переменная будет работать как триггер. Мы нажали на нее, произошло действие и
она сбросилась.
Добавьте в редактор переменную DynamicMat. Выберите Get.
Вытяните линию из ноды DynamicMat и выберите Set Vector Parameter Value.
Нажимаем Compile и Save. Переходим в свойства объекта, выставляем любой цвет и при
нажатии на галочку Change Color. У нас меняется цвет освещения на тот, который мы
выбрали.
Давай теперь добавим возможность задавать таким образом интенсивность свечения, а
также сделаем, чтобы основной цвет перекрашивался в случайный. Возвращаемся в
Blueprint и выводим линию от ноды DynamicMat и добавляем следующие ноды Set
Vector Parameter Value и Set Scalar Parameter Value
Соединим
Для проверки ПЗ, присылайте скриншоты с Material Editor, Blueprint Editor и скриншоты
с окна игры.