Обзор Функций Материалов в Unreal Engine 4

0
22
Обзор Функций Материалов в Unreal Engine 4

обзор matfunc баннер новый UE4

Материальные функции/Material Functions – это небольшие фрагменты графиков материала, которые могут быть сохранены в пакетах и ​​повторно использованы для разных материалов. Их цель – упорядочить процесс создания материала, предоставляя мгновенный доступ к широко используемым сетям материальных узлов. Например, если вы часто создаете сеть, чтобы обрабатывать хаотическое панорамирование текстур, то гораздо быстрее сохранить эту часть вашей сети в качестве материальной функции и просто использовать ее всякий раз, когда вам нужно такое поведение.

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

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

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

Функция Наложения Экрана UE4

Как вы можете видеть выше, то, что происходит между входом и выходом, полностью зависит от вас и будет определяться любой сетью стандартных узлов выражения материала. Однако, как только вы разместите материальную функцию в материале, вы увидите только узел функции со своими входами и выходами.

Смесь Экрана В Материале UE4

Библиотека материальных функций

Когда ваша материальная функция закончена, она должна быть опубликована в библиотеке материальных функций для легкого доступа при создании материала. Библиотека функций материала – это окно в редакторе материалов, которое содержит категоризированный и фильтруемый список доступных функций материала. Этот список заполняется из любых загруженных функций, но также из любых функций, которые не были загружены, но были найдены в базе данных контент браузера, которая используется контент браузером.

библиотека функций UE4

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

Чтобы функция материала появилась в Библиотеке материальных функций, необходимо проверить ее свойство Expose To Library. Внутри функции отмените выбор всех узлов, чтобы показать базовые свойства самой функции, где вы найдете это свойство.

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

Связанные с функцией узлы

Ниже приведены узлы выражения материала, относящиеся к материальным функциям, а также их назначение:

  • MaterialFunctionCall – позволяет использовать внешнюю функцию из другого материала или функции. Входные и выходные узлы внешней функции становятся входами и выходами узла вызова функции.
  • FunctionInput – может быть помещен только в материальную функцию, где он определяет один из входов функции.
  • FunctionOutput – может быть помещен только в материальную функцию, где он определяет один из выходов функции.
  • TextureObject – необходимый для предоставления текстуры по умолчанию для входа функции текстуры внутри функции. Этот узел фактически не выводил текстуру, поэтому он должен использоваться вместе с узлом TextureSample.
  • TextureObjectParameter – определяет параметр текстуры и выводит объект текстуры, используемый в материалах, вызывающих функцию с вставками текстур. Этот узел фактически не выводил текстуру, поэтому он должен использоваться вместе с узлом TextureSample.
  • StaticSwitch – выполняет выбор времени компиляции между двумя входами на основе входного значения.
  • StaticBool – необходимый для предоставления значения по умолчанию bool для входа функции статической функции bool внутри функции. Этот узел не переключается между чем-либо, поэтому его необходимо использовать в сочетании с узлом StaticSwitch.
  • StaticBoolParameter – определяет статический параметр bool и выводит статическое значение bool, используемое в материалах, вызывающих функцию со статическими входами bool. Этот узел не переключается между чем-либо, поэтому его необходимо использовать в сочетании с узлом StaticSwitch.

Вход и выход

Поскольку материальные функции являются инкапсулированными сетями узлов, пользователь должен убедиться, что данные могут втекать в них и выходить из них. Это обрабатывается посредством узлов FunctionInput и FunctionOutput. Понимание этих узлов имеет решающее значение для использования материальных функций.

Внутри самой функции узлы FunctionInput и FunctionOutput выглядят следующим образом:

Входной выход в UE4

Однако извне, когда функция используется в материале, эти узлы служат в качестве выводов для ввода и вывода:

Входной выход без UE4

Узлы Входа Функции – FunctionInput

Как указано, входные узлы материала служат в качестве шлюза, через который данные будут вводить материальную функцию. У данной функции может быть любое количество этих входных узлов, каждое из которых соответствует входному выводу, который будет отображаться в самой функции.

входной узел UE4

Они имеют следующие свойства и данные:

НазваниеОписание
Свойства
Input NameДает имя для ввода, которое будет видно извне функции.
DescriptionДает описание этого ввода, которое будет видно, когда пользователь находится возле входного пина функции.
Input TypeГоворит о том, какой тип данных ожидать. См. ниже раздел Типы входных данных.
Preview ValueСлужит средством тестирования и способом визуализации того, что функция выполняет в процессе создания. Любое введенное здесь значение будет использоваться так, как если бы оно было отправлено через вход за пределами функции.
Use Preview Value as DefaultЭтот флажок позволяет просто использовать любые данные, установленные в значении предварительного просмотра, в качестве значения по умолчанию. Это полезно, если вы не хотите принуждать пользователя вводить ввод в функцию для этого значения.
Sort PriorityЭто число используется для управления порядком, в котором входные контакты будут перечислены на узле функции. Порядок от самого низкого до самого высокого.
Входные пины
PreviewЭтот ввод будет принимать значение, которое заменяет свойство Preview Value. Как и в случае с его ассоциированным свойством, это полезно для тестирования функции во время построения и настройки значений по умолчанию.
Выходные пины
(Unlabled)Это обеспечивает вывод для входящих данных, которые будут обрабатываться функцией.

Узлы Выхода Функции – FunctionOutput

Узлы FunctionOutput предоставляют средства, с помощью которых обработанные данные будут выходить из конечной функции для дальнейшего использования в материале. Как и в случае с узлами FunctionInput, функция может иметь любое количество этих узлов, что приводит к любому количеству потенциальных выходов.

выходной узел UE4

Узлы FunctionOutput имеют следующие свойства:

НазваниеОписание
Свойства
Input NameДает имя для ввода, которое будет видно извне функции.
DescriptionДает описание этого ввода, которое будет видно, когда пользователь находится возле выходного пина функции.
Sort PriorityЭто число используется для управления порядком, в котором входные контакты будут перечислены на узле функции. Порядок от самого низкого до самого высокого.
Входные пины
(Unlabled)Это обеспечивает ввод данных, которые были обработаны функцией. Эти данные будут отправлены из функции для использования в материале.

Типы входных данных

Входы имеют определенный тип, который требуется для любых связанных с ними выражений. Это устанавливается с помощью свойства Input Type на узле FunctionInput. Извне функции этот тип затем отображается несколькими буквами рядом с входными разъемами, когда функция используется в материале. В этом случае оба входа были Vector3, поэтому отображается V3. Все, что связано с входом при использовании в материале, должно быть преобразовано в тип ввода, иначе вы получите сообщение об ошибке.

тип ввода UE4

Ниже приведены доступные типы ввода и связанные с ними сокращения:

Тип вводаСокращение
ScalarS
Vector2V2
Vector3V3
Vector4V4
Texture2DT2D
TextureCubeTCube
StaticBoolB

Общие свойства

При проектировании функции отмена выбора всех узлов сделает доступными базовые свойства для самой функции.

НазваниеОписание
Свойства
DescriptionЭто описание будет отображаться в виде подсказки, когда пользователь нажимает на функцию в списке функций или наводит указатель мышки на тело функционального узла в редакторе материалов.
Expose to LibraryЕсли этот флажок установлен, функция материала появится в списке Функции Материала внутри редактора материалов и может использоваться в материалах. Возможно, вам придется перезапустить редактор, чтобы появилась новая функция.
Library CategoriesЭтот массив содержит все категории вкладки Функции Материала, в которых будет отображаться эта функция.

Предварительный просмотр

При редактировании материальной функции окно предварительного просмотра показывает, какой узел просматривается. Вы можете щелкнуть правой кнопкой мышки по любому узлу и выбрать Start Previewing Node, чтобы предварительно просмотреть результаты сети до этой точки.

Начать Предварительный Просмотр UE4

Большую часть времени вы будете хотеть просматривать выход функции, чтобы они были предварительно просмотрены по умолчанию.

Предварительный Просмотр Вывода UE4

У узлов ввода функций есть некоторые опции для указания значений предварительного просмотра, так как они не знают фактических значений, которые будут использоваться в материале. Каждый вход имеет встроенное Preview Value (значение предварительного просмотра), которое может использоваться для отображения константы для типов ввода с плавающей точкой. Входы функции также имеют коннектор ‘Preview’, который позволяет переопределить это встроенное значение с любым значением, которое соответствует типу ввода. В этом примере образец текстуры использовался для предоставления предварительного просмотра 3 входа для чисел типа float.

Предварительный Просмотр Текстуры UE4

В этом примере узел Static Bool используется для предоставления значения по умолчанию для статического входа bool.

Предварительный Просмотр Статического Bool UE4

Обратите внимание, что на входе есть опция “Use Preview Value As Default” (Использовать предварительное значение по умолчанию). Когда это будет включено, значение предварительного просмотра будет использоваться в любое время, когда функция будет использоваться в материале, и ничто не будет связано с этим входом, вместо того, чтобы вызвать ошибку компиляции. Это делает вход дополнительным, поэтому он нарисован серым.

Параметры

Функции могут содержать типы узлов параметров, и они могут передаваться непосредственно любому Материалу для использования.

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

  • Входы дают более чистые знания о том, что происходит в ваших материалах.
  • Редактирование значений параметров по умолчанию в функции приведет к изменению любого Материала, который его использует.
  • Если две копии одной и той же функции находятся в материале, они не могут иметь уникальные значения параметров.

Оцените, стоит ли использовать параметры в ваших Материалах. Если вы хотите контролировать уникальные параметры и комбинированные материалы, см. Материальные Слои, чтобы узнать, как их настроить.

Чтобы использовать параметр текстуры с функцией, создайте вход текстуры и подключите его к переопределению объекта текстуры в узле образца текстуры:

Texture Parameter Function UE4 UE4

Затем в материале, который использует эту функцию, поместите узел TextureObjectParameter и подключите его к текстурному вводу:

Материал Параметра Текстуры UE4

Аналогично для статических параметров переключателя сделайте вход Static Bool и подключите его к узлу StaticSwitch:

Статическая Функция Переключателя UE4

Затем в материале, который использует эту функцию, поместите узел StaticBoolParameter и подключите его ко входу static bool:

Статический Материал Переключателя UE4

Организация

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

  • Описание функции – Нажмите на пустую область, чтобы увидеть свойства функции, где указано описание. Если вы собираетесь заполнить только одно поле описания, сделайте это! Оно будет отображаться в виде подсказки в любом месте, где отображается функция (Контент Браузер, библиотека функций материала, узел вызова функций).
  • Описание ввода / вывода – Они расположены на входных и выходных узлах в функции. Они отображаются в виде подсказок при наведении указателей на входы и выходы узла вызова функции.

Описание Функции заполнено:

Свойства Функции 2 UE4Соответствующая подсказка при использовании в материале:

Подсказка Функции UE4

Распространения

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

Когда вход или выход удаляется из функции и изменения распространяются, любые ссылки на эти удаленные коннекторы в материалах, которые используют эту функцию, будут нарушены! Важно осознавать это, потому что распространение нельзя отменить. Чем больше материалов используется функция, тем больше вероятность поломки, поэтому будьте осторожны.

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

Поиск с использованием материалов UE4

Функции вложений

Функции могут быть вложенными (функция внутри функции) и связаны друг с другом произвольно, за исключением того, что они не должны создавать циклическую зависимость.

Ошибки компиляции

Ошибки компиляции внутри функции будут выделять узел MaterialFunctionCall красным цветом в материалах, которые его используют. В сообщении об ошибке также будет указано, в какой функции произошла ошибка. В этом примере ошибка заключается в том, что входы функции не были подключены.

Компиляции Ошибок 0 UE4

Вышеупомянутую группу ошибок можно вообще избежать, предоставив значения предварительного просмотра для ваших входов и затем активировав свойство Use Preview Value as Default для каждого входа. Однако эта практика может выступать в качестве палки о двух концах, так как не будет особо очевидного предупреждения (например, сообщения об ошибке), чтобы напомнить вам, что вы оставили вход отключенным.

Входы функции теперь подключены, но в соответствии с сообщением об ошибке в узле OneMinus есть ошибка.

Ошибки Компиляции 1 UE4

Дважды щелкните по функции, чтобы открыть для нее редактор, где узел OneMinus выделен красным цветом из-за ошибки:

Ошибки Компиляции 2 UE4

Функции материала по умолчанию

Многие материальные функции уже созданы и включены в Unreal Engine 4. Они уже будут доступны через палитру Material Editor.

Доступ к функциям материалов по умолчанию можно получить для редактирования через Content Browser в папке Engine> Functions.

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

Для получения дополнительной информации об этих функциях по умолчанию см. Справочник по функциям материала.