Skip to content

06 — Демонстраційний контент

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

Відкрийте Content Browser → Settings → Show Plugin Content → InteractionSystem Content → Demo → InteractionLab → Maps → InteractionLab та натисніть Play.

Три предмети на стенді демонструють proximity-маркери, точний вибір променем, E-текстуру та emissive overlay. Двері праворуч демонструють звичайну серверну дію Interaction без захоплення. HUD підказує доступну дію та стан захоплення; під час утримання предмета кнопка F з написом THROW з'являється праворуч від панелі пояснень.

Коли одна рука тримає куб, інші куби не показують E або Nearby для цієї руки: вона вже зайнята. Натисніть F, щоб відпустити куб і вибрати наступний. У VR вільна друга рука може вибирати окремо.

Кубики використовують Alignment=Align: після натискання E їхній корінь переходить до долоні на налаштованій відстані від камери (70 см уперед і 15 см униз). Це також розвертає предмет за напрямком погляду. Якщо потрібно зберігати початкову відстань і кут на момент захоплення, змініть Manipulation → InlineSettings → Alignment на KeepOffset.

Ввід Дія
WASD Переміщення
Миша Огляд
E Захопити предмет або відкрити/закрити двері
F Кинути захоплений предмет

Персонаж демо використовує Enhanced Input: дії й контекст IMC_DemoDesktop створюються в коді, коли гравець отримує керування, і прибираються, коли він його втрачає. Тому демо працює в будь-якому проєкті й не змінює його налаштувань введення. Для власної гри робіть так само або створіть ассети Input Action (11).

Для мережевої перевірки виберіть Play → Advanced Settings → Multiplayer Options, два гравці та Play As Client. Кожен клієнт має власний фокус; захопити один предмет може лише один гравець. Щоб бачити, що відбувається, введіть на клієнті EnableCheats, потім InteractionOverlay (15).

Модуль InteractionSystemDemo містить character, HUD, door, game mode, приклад метання списа та VR Lab. Він використовує публічні API Core/World, Engine, Enhanced Input, XRBase/HeadMountedDisplay і UMG/Slate; Core та World не залежать від Demo. Карти, meshes і текстури знаходяться під /InteractionSystem/Demo, а спільні матеріали — під /InteractionSystem/Shared/Materials. Оригінальні кнопки — текстури T_InteractE, T_NearbyGreen, T_NearbyYellow і T_ReleaseF у /InteractionSystem/Demo/InteractionLab/UI: E/F мають непрозоре тло, а обидва маркери близькості — лише кольорову точку на прозорому тлі. InteractionLab використовує жовту точку з чорною обводкою; зелена залишається доступною як альтернативна текстура.

Базові графи, батьківські інстанси та яскрава палітра обох VR-карт лежать у /InteractionSystem/Shared/Materials. VRLab і VRLabBP посилаються на ті самі MI_Cobalt, MI_Cyan, MI_Gold, MI_HoneyWood та інші колірні варіанти. InteractionLab і SpearRange мають власні дочірні інстанси для своїх окремих прикладів. Для зміни спільної VR-палітри відредагуйте відповідний інстанс у Content Browser.

VR Lab

Карта /InteractionSystem/Demo/VRLab/Maps/VRLab демонструє сім станцій: сокира й поліно, гвинтівка, бінокль, масштабований двигун зі знімним поршнем, просторова UI-панель, лук зі стрілами та бункерні двері з червоним трипроменевим маховиком. Утримання й поведінка задаються профілями та компонентами; конкретні demo-актори додають візуальний відгук.

Готову карту можна редагувати в Unreal Editor: геометрія, collision, sockets, профілі та input assets збережені як звичайний контент плагіна. Gameplay працює у C++ модулях плагіна. Управління Quest Touch та емулятора наведене в 08 — VR-маніпуляції.

Окрема карта VRLabBP містить сім яскравих майданчиків і Blueprint-актори з Event Graphs для кнопки, лука, бункерного колеса та розколювання поліна. Розколоте поліно реплікується, тож його бачать усі гравці, зокрема ті, хто приєднався пізніше.

Виключення з packaged game

У проєкті, що використовує плагін, додайте до Config/DefaultGame.ini:

[/Script/UnrealEd.ProjectPackagingSettings]
+DirectoriesToNeverCook=(Path="/InteractionSystem/Demo")

Якщо ви додали демонстраційні карти до MapsToCook у своєму проєкті, при виключенні Demo приберіть ці записи й виберіть власну стартову карту. Для пакування будь-якої демонстраційної карти додайте її до MapsToCook.

Налаштування виключає контент, але не C++ Runtime-модуль. Щоб прибрати також код у source-поставці, видаліть запис InteractionSystemDemo з .uplugin, каталог Source/InteractionSystemDemo і Content/Demo. Core та World від нього не залежать.

Модуль налагодження InteractionSystemDemo не потребує: InteractionSystemDebug — окремий листовий модуль, який у Shipping-збірці нічого не реєструє. Як прибрати і його — у 15. Тести плагіна пропускають перевірки демо й налагодження, якщо відповідних модулів немає.