Создавайте динамический интерфейс с меняющимися материалами, которые обновляются с учётом событий игрового процесса и данных. Чтобы сделать интерфейс динамическим, нужно использовать комбинацию материалов интерфейса, просмотра привязок и трёх функций преобразования преобразования Задать параметр материала (задать текстуру, скалярное значение и параметр вектора).
В Unreal Editor для Fortnite (UEFN) вам доступен базовый материал с рядом параметров. Используйте устройство «Управление заданиями» для отслеживания устранений в виджете в стиле шкалы прогресса в качестве примера материала, который динамически обновляется в зависимости от вашего прогресса в устранении врагов.
Создание экземпляра материала
Подробнее об экземплярах материалов см. в разделе Создание и использование экземпляров материалов в документации Unreal Engine.
Все ресурсы, используемые для создания этих экземпляров материалов, можно найти в UEFN. Чтобы узнать, как создать материал в этом примере, см. раздел Материал шкалы в разделе Уроки по материалам.
Создайте экземпляр материала M_Tracker, назовите экземпляр материала MI_TrackerExample.
В новом экземпляре материала измените значения IconScaleX и IconScaleY по своему усмотрению. Для каждого материала в этом примере задано значение 0,7.
Значки находятся в папке Fortnite по пути: Текстуры > Значки.
Настройка виджета «Управление заданиями»
Вы создадите в UMG пользовательский отслеживающий виджет, на который можно будет ссылаться в устройстве «Управление заданиями» и отслеживать устранения игроков в пользовательском интерфейсе устранений.
Нажмите правой кнопкой мыши в Каталоге ресурсов и выберите: Пользовательский интерфейс > Схема создания виджетов > Пользовательский виджет.
Создайте простой виджет «Управление заданиями», который отображает материал устройства «Управление заданиями» и название устройства «Управление заданиями», как показано в примере ниже.
Перетащите Наложение в граф виджета. Эта настройка позволяет накладывать слои на все части виджета. Также она позволяет определять, в каком месте на экране будет отображаться виджет.
Вложите Стековое поле внутри Наложения, чтобы можно было расположить материал устройства «Управление заданиями» и название слева направо.
Вложите Наложение внутрь стекового поля, чтобы создать материал устройства «Управление заданиями» для наложения на стековое поле с простым тёмным фоном.
Внутри Наложения вложите два виджета Изображение. Нажмите F2 для переименования их в TrackerBackground и TrackerMaterial.
Выберите TrackMaterial, чтобы открыть его настройки на панели «Сведения». На панели Сведения выберите Кисть > Изображение и найдите материал MI_TrackerExample, который вы создали.
Установите ниже Размер изображения X=96,0, Y=96,0. Оно должно быть достаточно большим, чтобы его было видно в игре.
Материал устройства «Управление заданиями» настроен, и нужно создать для него фон, чтобы он был более удобочитаемым.
Выберите TrackerBacking и в Иерархии, а затем на панели Сведения выберите Кисть > Отрисовывать как > Скруглённая область.
Задайте для параметра Оттенок выше нейтральный цвет для большей удобочитаемости. В этом примере в поле для оттенка было задано значение 3A3A3AFF в поле Hex sRGB.
Задайте для параметров Выравнивание по горизонтали и Выравнивание по вертикали значение Заполнить. Это гарантирует, что TrackerBacking заполнит контейнер, содержащий TrackerMaterial.
Теперь у вас есть фон для TrackerMaterial, который легко читается на любой внутриигровой сцене!
Настройка текста устройства «Управление заданиями»
После ссылки на материал устройства «Управление заданиями» в отслеживающем виджете можно настроить текст, сообщающий игроку о том, какие данные будут отслеживаться в интерфейсе.
Вложите Текстовый блок в стековое поле, содержащее наложение. Переименуйте текстовый блок в TrackerTitle.
Выберите TrackerTitle в Иерархии, а затем на панели Сведения задайте для параметра Выравнивание по вертикали значение Выровнять по центру по вертикали. Так текст всегда будет выравниваться по центру TrackerMaterial.
Внесите некоторые стилевые изменения в шрифт, уменьшив размер, добавив контур или изменив вид шрифта, чтобы он соответствовал вашей тематике.
В данном примере внесены следующие изменения: Размер шрифта = 24 Вид шрифта = Жирный Контур = Тёмно-красный
После внесения последних изменений вы сможете настроить TrackerMaterial и TrackerTitle.
Чтобы добавить расстояние между двумя элементами, добавьте отступ справа от наложения, содержащего материал TrackerMaterial:
Выберите Наложение.
На панели Сведения разверните параметр Отступ.
Задайте для параметра Отступ справа значение 16 пикселей.
Между изображением и текстом будет добавлен пробел.
Если вы хотите быстро изменить расстояние между несколькими объектами, вы можете вставить виджет изображения в стековое поле, которое содержит эти объекты, задать для размера изображения нужное вам значение и включить параметр «Не отрисовывать». В результате изображение не будет отображаться, но всё равно займёт место в стековом поле!
Так вы можете легко управлять расстоянием между объектами и не выискивать отступы в каждом виджете.
Настройка параметров заданного материала
Далее, привяжем значения устройства «Управление заданиями» к параметрам материала в отслеживаемом виджете.
Добавление модели просмотра
Добавьте модель просмотра Управление заданиями виджету, выбрав: Окно > Модель просмотра в главном меню.
В окне «Модель просмотра» выберите +Модель просмотра.
Во всплывающем окне выберите Устройство: модель просмотра «Управление заданиями».
В строке меню выберите Окно > Просмотр привязок, чтобы открыть панель Просмотр привязок.
Теперь можно привязать данные из устройства «Управление заданиями» для управления виджетом.
Настройка скалярного параметра
Скалярный параметр принимает значение типа int или float. К примеру, шкала прогресса заполняется TrackerMaterial с учётом количества устранений, которые отражены в устройстве «Управление заданиями».
Материал настроен на преобразование количества устранений из устройства «Управление заданиями» для заполнения TrackerMaterial. Вам просто нужно будет привязать эти данные к параметру материала прогресса в MI_TrackerExample.
Прогресс 3,0 по сравнению с 8,0 в MI_TrackerExample. Это очень удобно!
Выберите виджет TrackerMaterial, а затем нажмите +Добавить виджет в окне Просмотр привязок.
В левом поле выберите TrackerMaterial > Кисть.
В правом поле (содержащем данные, которые нужно привязать к кисти TrackerMaterial), выберите: Функции преобразования > Задать скалярный параметр.
Это позволит запустить функцию Задать скалярный параметр для параметра Кисть. Поскольку у вашей кисти сейчас есть MI_TrackerExample, она будет искать указанный вами скалярный параметр и передаст значение в него.
Введите TrackerProgress в поле Название параметра, что позволит заполнять материал в соответствии с прогрессом устройства «Управление заданиями».
Важно не допустить ошибок в параметре, иначе эта функция не сможет найти нужный параметр в вашем материале. Если вы забыли, как называется параметр, откройте экземпляр материала — все параметры находятся справа.
Нажмите на значок ссылки рядом со Значением, выберите: MVVM_UEFN_Tracker > Значение из выпадающего меню. Это позволит привязать текущий прогресс в устройстве «Управление заданиями».
Теперь вы можете использовать текущий прогресс в устройстве «Управление заданиями» непосредственно в материале! Материал устройства «Управление заданиями» будет постепенно заполняться, когда игрок, назначенный для этого устройства, будет устраняться!
Установка векторного параметра
Параметр вектора принимает значение Vector4. Векторы обычно используются для цветов — RGBA (четыре вектора), и вы будете использовать Vector4 для изменения цвета значка в зависимости от настроек в устройстве.
Дополнительную информацию о векторах см. в разделе Векторные выражения материалов в документации Unreal Engine.
Выберите TrackerMaterial в Иерархии, затем откройте окно Просмотр привязок и выберите +Добавить виджет.
Выберите свойства TrackerMaterial > Кисть в пустом поле слева.
В пустом поле справа выберите Функции преобразования > Задать параметр вектора.
Как объяснялось выше, эта привязка получает Кисть из TrackerMaterial (в данном случае MI_TrackerExample) и задаёт Параметр вектора, который вы укажете для этого экземпляра материала. Вы можете выбрать цвет значка с учётом любых настроек, заданных в устройстве «Управление заданиями».
Наберите IconColor в поле Название параметра.
Нажмите на значок ссылки рядом со значением, а затем выберите MVVM_UEFN_Tracker > Цвет. Это позволит привязать значение к свойству цвета значка из модели просмотра «Управление заданиями».
В материал будет передаваться любой цвет значка, заданный в устройстве «Управление заданиями». Если вы хотите оранжевый значок, просто настройте его в устройстве и оно изменит цвет значка! Материал, используемый в данном примере, уже настроен соответствующим образом.
Задать параметр текстуры
Параметр текстуры принимает значение Texture2D. Текстуры обычно используются для изображений или значков, поэтому мы будем использовать их, чтобы изменять значок с учётом настроек устройства!
Чтобы больше узнать о текстурах, см. раздел Текстуры в документации на Unreal Engine.
Выберите TrackerMaterial в Иерархии, затем в окне Просмотр привязок выберите +Добавить виджет.
В пустом поле слева выберите: MVVM_UEFN_Tracker > Кисть.
В пустом поле справа выберите: Функции преобразования > Задать параметр текстуры.
Наберите Icon в поле Название параметра.
Избегайте ошибок при наборе названия параметра! Если вы забыли название параметра, можете посмотреть список доступных параметров в MI_TrackerExample.
Нажмите на значок ссылки рядом со Значением и выберите: MVVM_UEFN_Tracker > Значок из выпадающего меню. Это позволит привязать значение к свойству значка из модели просмотра «Управление заданиями».
Параметр текстуры задан. Теперь любой значок, заданный в вашем устройстве «Управление заданиями», будет передавать его в виджет!
Привязать текст устройства «Управление заданиями» к его названию
Далее, нужно привязать созданное вами название устройства «Управление заданиями» к такой же настройке в устройстве «Управление заданиями».
Выберите TrackerTitle в Иерархии, затем откройте окно Просмотр привязок и выберите +Добавить виджет.
В пустом поле слева выберите: TrackerTitle > Текст из выпадающего меню.
В пустом поле справа выберитеMVVM_UEFN_Tracker > Название из выпадающего меню.
Эта привязка передаёт название вашего устройства «Управление заданиями» в текстовый блок.
Настройка устройства «Управление заданиями»
Далее нужно сослаться на виджет, созданный в UMG, в устройстве «Управление заданиями». Благодаря этому интерфейс устранений будет отображаться в HUD-интерфейсе.
Добавьте устройство «Управление заданиями» в ваш проект.
Присвойте название устройству «Управление заданиями». Оно будет отображаться в тексте TrackerTitle в вашем виджете.
Добавьте свой виджет в поле Виджет HUD-интерфейса.
Измените поля Значок задания на любой значок, который вы хотите отображать в вашем устройстве «Управление заданиями». Это позволит переопределить значок инопланетянина, заданный по умолчанию, в MI_TrackerExample.
Выберите цвет в разделе Цвет значка. Настроенный выше значок приобретёт выбранный цвет.
Продолжайте настраивать другие параметры, чтобы добавить устройство «Управление заданиями» к вашему игроку.
Окончательный результат
Вот и всё! В левом верхнем углу должен появиться пользовательский виджет устройства «Управление заданиями». Неважно, кого вы будете устранять: зомби или других игроков. Виджет будет постепенно заполняться! Именно так данные игрового процесса привязываются к пользовательским виджетам с помощью функции «Задать параметры материалов».