Skip to content

Примітки до випуску

🇬🇧 English | 🇺🇦 Українська

Коротко про кожен випуск: що з'явилося, що виправлено, на що звернути увагу під час оновлення. Найновіший випуск — угорі.


1.0

Перший випуск. Unreal Engine 5.7 і 5.8.

Що вміє плагін

Предмети як дані. Тип предмета — це Data Asset зі списком фрагментів. П'ять готових фрагментів: Stackable, Equippable, Consumable, Durability, Weight. Власні пишуться у Blueprint або C++ і нічим не обмеженіші за вбудовані.

Інвентар. Слоти або необмежений режим, ліміт ваги, фільтри за тегами, обмеження окремих діапазонів слотів, стартовий набір. Додавання, вилучення, перекладання між інвентарями, поділ стеків, швидке перекладання, сортування, ущільнення стеків.

Спорядження. Слоти задаються тегами — схему тіла визначає ваш проєкт. Візуальні актори створюються локально й не коштують трафіку. Сумарні статистики по вдягненому.

Об'єкти світу. Таблиці луту з двома режимами кидка, контейнери з лінивим наповненням, предмети на землі, що зберігають стан при викиданні й підбиранні. Підбирання — одним викликом TryCollect на інвентарі гравця, який сам знаходить дорогу до сервера.

Приклади в комплекті. Сім готових Data Assets у Content/Demo/Items — меч, щит, шолом, смолоскип, зілля, руда й реліквія. Разом вони покривають усі п'ять фрагментів і всі типові комбінації; розберіть їх або видаліть.

Мультиплеєр. Один API для обох режимів: у одиночній грі виклики виконуються на місці й не створюють RPC, на клієнті — самі пересилаються на сервер. Реплікація через FFastArraySerializer — змінюється один слот, надсилається один слот.

Збереження. ExportState / ImportState віддають звичайні структури для вбудови у ваш USaveGame. Типи предметів записуються шляхами, тож збереження переживає перезапуск і патчі.

Відлагодження. Інтерактивний інспектор (InvOverlay) — не лише показує вміст, а й дозволяє видавати, використовувати, вдягати та вилучати предмети просто з панелі. Плюс 15 консольних команд, детальний лог і перевірка ассетів при старті. Усе вимикається у Shipping.

Архітектура

Плагін поділено на чотири модулі:

Модуль Призначення
InventorySystem ядро; без залежності від Slate/UMG
InventorySystemWorld скрині, предмети на землі, таблиці луту
InventorySystemDebug інспектор і команди; єдиний модуль із UI
InventorySystemTests 82 автоматичні тести (лише редактор)

Проєкт, якому потрібні лише інвентарі на персонажах, може не підключати World узагалі. Виділений сервер ніколи не лінкує UI.


Відомі обмеження

Речі, яких плагін навмисно не робить — щоб ви не витрачали час на їх пошуки.

Немає готового UI. Плагін дає дані та події; сітку, тултипи й перетягування ви малюєте самі. Жодні дві гри не показують інвентар однаково, тож вбудований віджет довелося б обходити. Як це зробити — 08 — Побудова інтерфейсу.

Немає системи ефектів. Фрагмент Consumable повідомляє теги того, що спожито, а що означає «зцілити на 50» — вирішує ваша гра. Це точка інтеграції з Gameplay Ability System або з вашою власною системою.

Немає сітки з формами предметів. Слоти однорідні; предмет займає рівно один слот незалежно від того, меч це чи каблучка. «Тетрісного» інвентаря на кшталт Diablo чи Escape from Tarkov плагін не підтримує.

Немає вбудованої системи взаємодії. Контейнери й пікапи не мають ані меша, ані колізії: гра з тригер-об'ємом, гра з трасою й гра з кліком по курсору хочуть різного. Додайте своє й викличте TryCollect на інвентарі гравця (для предметів на землі) або Open на контейнері з серверного боку вашої взаємодії.

Немає валюти як окремої сутності. Найпростіше зробити її звичайним предметом із великим стеком — 11 — Рецепти.

Інвентар не приватний. Вміст реплікується всім спостерігачам актора-власника, а не лише власнику. Це наслідок того, що той самий компонент обслуговує і рюкзак гравця, і скриню, вміст якої мають бачити всі.

Кулдаун витратних предметів простий. Спільний на тип предмета, без категорій і без збереження між сесіями. Складніші схеми будуйте на події OnConsumableUsed.


Сумісність

Плагін працює з UE 5.7 і 5.8.

Він не вимагає конкретних базових класів (Character, PlayerState, GameMode), конкретної системи вводу чи структури проєкту, тож додається до вже наявного проєкту без переробок.

Підтримуються обидва механізми реплікації підоб'єктів UE — плагін слідує тому, який обрав ваш проєкт, і нічого не нав'язує.