Skip to content

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

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

Плагін містить дві готові карти. Якщо корінь Plugins не видно в Content Browser, спершу увімкніть його через іконку налаштувань (шестерня) → Show Plugin Content, а потім перейдіть у Plugins → Fuzzy Logic Content → Demo, де кожне демо має власну підпапку:

  • FuzzyDroneArena/Maps/FuzzyDroneArena;
  • FuzzyTurretDefense/Maps/FuzzyTurretDefense.

Дані, Blueprints, матеріали та карти лежать у Plugins/FuzzyLogic/Content/Demo. Їхні пакети належать плагіну, тому не потрібно копіювати файли до Content вашого проєкту.

Окремий модуль демонстрації

FuzzyLogic містить ядро нечіткого висновку. Код Drone Arena винесено до окремого runtime-модуля FuzzyLogicDemo; він не є залежністю ядра та не змінює роботу систем, компонентів, JSON або UMG.

Модуль потрібен картам Drone Arena та Turret Defense. У Turret Defense ігрова поведінка турелі, цілей, снарядів і фізичних гільз зібрана у Blueprints; модуль додає лише орбітальний контролер і панель живого нечіткого висновку у viewport. Гільзи з'являються з бічного вікна гармати, реагують на фізику, накопичуються на підлозі до 14 секунд і потім автоматично зникають.

Панель Fire Control у Turret Defense

У правому нижньому куті карта показує візуалізацію системи Fire Control. Вона малює три вхідні функції належності (AimError, ThreatPriority, WeaponHeat), агреговану поверхню FireAuthorization і помаранчеві маркери поточних чітких значень. Відображається саме поверхня, яку рушій використав для дефазифікації.

  • Кнопки HIDE / SHOW — показати або сховати панель;
  • Кнопка PAUSE / RESUME — зупинити чи продовжити симуляцію;
  • V, P або Space — відповідні швидкі клавіші.

Панель увімкнена за замовчуванням. Для графіків вона використовує публічні функції FuzzyLogicUMG, тому також слугує робочим прикладом для власного HUD.

Не включати демо в запаковану гру

Щоб зберегти приклади в редакторі, але не готувати їх для гри, додайте до Config/DefaultGame.ini вашого проєкту:

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

Після цього контент Demo не потрапляє у cooked build. Плагін і FuzzyLogic працюють як звичайно.

Зверніть увагу, чого це налаштування не робить: FuzzyLogicDemo — модуль типу Runtime, тож його код усе одно компілюється й лінкується в запаковану гру, а class defaults його акторів жорстко посилаються на меші /Engine/BasicShapes, за якими кукер піде. Якщо демонстрацію треба прибрати повністю — код, класи та посилання — скористайтеся наступним розділом.

Повністю виключити код демонстрації зі збірки плагіна

Це доступно лише для збірки плагіна з вихідного коду. У FuzzyLogic.uplugin видаліть запис модуля FuzzyLogicDemo, після чого не додавайте Source/FuzzyLogicDemo та Content/Demo до свого пакета. Ядро FuzzyLogic не посилається на цей модуль і продовжить збиратися без нього.