Для создания пользовательского представления отряда за основу берётся дизайн виджета таблички с именем игрока. Виджет «Стековое поле» преобразует представление игрока в представление отряда, воспроизводя виджет сведений об одном игроке с использованием модели просмотра.
Стековое поле — это контейнер, в котором копии виджета игрока располагаются линейно, слева направо или сверху вниз. Это придаёт отряду единообразный вид.
В этом примере при представлении отряда игроки располагаются в форме столбца (сверху вниз).
Пример размещения отряда слева направо: Пользовательский интерфейс: сведения об игроке на странице документации по «Черепашкам-ниндзя».
Виджет «Сведения об игроке»
Чтобы использовать сведения об игроке, полученные от членов команды, для виджета Player_Info нужно настроить Устройство: модель просмотра сведений об игроке в устройстве управления интерфейсом. Эта настройка создаёт отдельные виджеты для контролирующего игрока и его отряда/команды на основе свойств блока «Устройство: модель просмотра сведений об игроке данных в устройстве управления интерфейсом» для каждого виджета.
Вы можете и дальше использовать параметры для настройки привязок из руководств «Панель» и «Здоровье и щит», чтобы привязать необходимые сведения об игроке.
Ниже описаны шаги по созданию виджета стека отряда, который привязывает модели просмотра списка сведений об игроке команды/отряда к значку игрока, имени игрока, здоровью и щитам.
Создание пользовательского виджета
Следуйте указаниям, приведённым в разделе «Всплывающие окна интерфейса», чтобы создать пользовательский виджет.
Присвойте пользовательскому виджету название Squad_View.
Дважды нажмите на миниатюру пользовательского виджета, чтобы открыть Редактор событий в Unreal Motion Graphics (UMG).
Планировать и компоновать интерфейс для представления отряда вы будете в Редакторе виджетов. После проработки макета вы сможете добавить материалы, чтобы персонализировать свой интерфейс.
Теперь в вашем Каталоге ресурсов должно быть два пользовательских виджета — Player_Info и Squad_View.
Создание макета представления отряда
Рекомендуем переносить полностью функциональный виджет Player_Info в виджет Squad_View, используя стековое поле в качестве контейнера. Это обеспечит единообразие за счёт воспроизведения дизайна представления игрока внутри стекового поля, причём этот дизайн будет повторяется в направлении сверху вниз или справа налево.
Вы добавите виджет игрока в модель просмотра, а затем займётесь компоновкой в графе событий через стековое поле.
Выполните следующие действия:
Перетащите наложение под Squad_Info и назовите его Container_Overlay.
Измените размер Container_Overlay на 2560 x 1440. Это оптимальный размер для всех экранов.
Вложите стековое поле в Container_Overlay.
Измените следующие настройки стекового поля на панели Сведения:
Отступ = 25
Ориентация = Вертикальная
Стековое поле имеет отступ в 25 пикселей от края экрана.
В строке главного меню выберите Окно > Модели просмотра, чтобы открыть панель «Модель просмотра».
Нажмите +модель просмотра, затем выберите Устройство: список сведений об игроке команды/отряда в устройстве управления интерфейсом > Выбрать. Так вы создадите модель просмотра для устройства «Управление интерфейсом».
На панели «Сведения» нажмите +добавить расширение модели просмотра. Откроются настройки, которые позволят динамически сгенерировать виджет отряда в виджете Squad_View с учётом количества игроков в вашей команде/отряде.
В настройке Класс Виджета при входе выберите виджет Player_Info из выпадающего меню и задайте для параметра Модель просмотра записи значение HUDPlayerInfoListViewModel.
Разверните параметр Шаблон ячейки и настройте расстояние между виджетами каждого игрока. Добавьте или удалите виджеты и скорректируйте выравнивание. Используйте эти настройки, чтобы визуализировать виджеты в игре.
Если элементы интерфейса слишком большие для доступного пространства, вернитесь в виджет Player_Info и уменьшите размер виджетов изображения, чтобы они соответствовали виджету Squad_View.
Далее необходимо добавить привязки, чтобы полностью настроить интерфейс для отрядов.
Привязки для отряда
Чтобы привязать сведения об отряде к виджету Squad_View, нужно сослаться на сведения об участнике отряда через просмотр привязок. Привязки сообщают виджету, какие сведения ему нужно получить от привязанных устройств и для какого игрока. Затем сведения о каждом игроке переносятся в интерфейс через устройство управления интерфейсом.
Выберите «Стековое поле» на панели «Иерархия», а затем откройте Просмотр привязок и выберите +добавить виджет. Так вы добавите стековое поле в качестве виджета на панель «Просмотр привязок».
Выберите Squad_View > Выбрать из выпадающего меню виджета. Так вы выберете виджет отряда и все его внутренние виджеты для привязки.
В поле Squad_View слева выберите Squad_View > Стековое поле > Модель просмотра стекового поля > Настроить элементы > Выбрать. Это позволит передать массив моделей просмотра сведений об игроке в новое настроенное расширение с помощью функции Настроить элементы.
Если вы не видите функцию «Настроить элементы» на этом этапе, скомпилируйте виджет и проверьте ещё раз.
Если в списке нет PlayerInfoStack_Viewmodel_Extension, нажмите на «Скомпилировать» — после этого расширение должно появиться.
В пустом поле справа выберите Squad_View > HUDPlayerInfoListViewModel > Массив сведений об игроке команды/отряда > Выбрать. Это позволит передать массив моделей просмотра сведений об игроке в новое настроенное расширение с помощью функции Настроить элементы.
Нажмите Скомпилировать. Ваш виджет готов к добавлению в устройство интерфейсом.
Добавьте виджет в устройство управления интерфейсом и выполните игровой тест проекта.
Настройка устройства управления интерфейсом
Есть несколько важных настроек устройства управления интерфейсом, которые нужно изменить. Вы замените эти элементы стандартного HUD-интерфейса Fortnite на виджеты собственной разработки.
Перетащите устройство управления интерфейсом в проект и оставьте его выбранным, чтобы заполнить его настройки на панели «Сведения».
На панели «Сведения» установите следующие параметры:
Отображать интерфейс = Да
Переопределение виджета информации об игроке = Название вашего виджета
Нажмите на значок Сохранить, чтобы сохранить изменения.
Выберите Запуск сеанса, чтобы выполнить игровой тест пользовательского интерфейса.
Выполните игровой тест с двумя или более игроками, чтобы проверить, что ваш макет работает и выглядит должным образом на созданном вами острове.