Це дещо спрощений та урізаний варіант відео-урока від пана Graeme Bull, як додати до мапи Fortnite свій кастомний лутбокс.
Будемо вважати, що у вас вже є модель котру ви хотіли би використати в якості лутбокса, в форматі fbx або glb. Імпортуємо цю модель в Content Drawer, бажано в окрему теку, щоб все було більш структуровано. Після імпорту у вас скоріш за все буде 3 файли. Додаємо в цюж теку новий Blueprint Class - Building Pror. У вікні що відкрилось ліворуч обираємо пункт Static Mesh Components і в блоці налаштувань праворуч, в розділі Static Mesh обираємо нашу модель (вона буде тієїж назви що і файл моделі.). Компілемо та зберігаємо. Зачиняємо це віконце.
Далі, додаємо девайси Button та Item Granter, перетаскуємо наш створений матеріал та розташуємо наш лутбокс поряд з Item Granter (звісно якщо ви не хочете бігти за лутом в інший кінець мапи). Кнопку Button "втискаємо" в середину моделі лутбокса, для інтерактивності, знімаємо чекбокс Visible During Game та задаємо Interaction Radius (радіус навколо кнопки коли вона стає активною) на той котрий вам потрібен, ви побачите візуально його.
Для Item Granter On Grant Action краще виставити Keep All, Grant - Current Item, в Item List додаємо все що ви забажаєте щоб було в луті, Drop Items at Player Location логічніше буде виставити в значення Always. Всі інші налаштування можете робити на свій розсуд.
Створюємо Verse скрипт. У верхній панелі переходимо Verse - Verse Explorer та клікаємо правою кнопкою миші обираємо Add new Verse file in Project. У новому попапі обираємо тип Verse Device, називаємо його, на приклад box_manager, тиснемо Create та робимо ось таке наповнення.
using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/Diagnostics }
box_manager := class(creative_device):
@editable
var LootBoxButton:button_device = button_device{}
@editable
LootGranter:item_granter_device = item_granter_device{}
OnBegin<override>()<suspends>:void=
LootBoxButton.InteractedWithEvent.Subscribe(OnLootBoxButton)
OnLootBoxButton(Agent:agent):void=
spawn:
RotateBoxLid(Agent)
RotateBoxLid(Agent:agent)<suspends>:void=
LootBoxButton.Disable()
loop:
LootGranter.GrantItem(Agent)
break
Зберігаємо файл, переходимо на Verse - Build Verse Code, це буде свого рода компіляція нашого скрипта, якщо немає ніяких помилок то все чудово, йдемо далі.
В Content Drawer, в теці з ім'ям вашого проекту з'явиться нова іконка Verse Class з ім'ям з нашого прикладу - box_manager. Перетягуємо будь куди на мапу, хоча щоб нічого не переплутати краще поставити біля нашого лутбокса. Клікаємо на девайсі та бачимо декілька налаштувань девайсу.
Відразу прибираємо чекбокс з Visible in Game, щоб не свитити робочими девайсами в грі, та переконуємось що є чекбокс біля Enable At Game Start. Нижче бачимо налаштування для обирання нашої "скритої" кнопки для лутбокса та для Item Granter. Раджу відразу задати унікальні імена для баттона та ітем грантера (права кнопка миші по об'єкту в Outliner - Edit - Rename) та згодом просто через селект знайти потрібну кнопку та грантер за цим ім'ям.
Зберігаємо всі наші зміни, та запускаємо сессію з мапою для перевірки.
Звісно, якщо у вас буде бажання, можете знайти цей урок на YouTube та зробити повністью його, з відкриванням кришки, візуальними ефектами, але для цього вам знадобиться відповідна модель.