ИНСТРУМЕНТЫРЕЖИМ ОТЛАДКИ
Режим отладки
Режим отладки — это панель для проверки плагина на живом кузове без тест-драйва. Crushform.DebugMode открывает её поверх игры. Панель даёт свободную камеру, цель и инструменты, которые наносят вмятины и грязь, смывают её, разбивают стекло и роняют кузов, а также оверлеи, которые показывают решётку, зоны жёсткости и шины. Чтобы закрыть панель, выполните команду ещё раз.
Что она делает
Заголовок раздела «Что она делает»Панель называется CRUSHFORM DEBUG. Её разделы подписаны заглавными буквами: TARGET, TOOLS, DAMAGE, DIRT, WORLD, VIEW, TIME и INFO.
- TARGET: нажмите Pick, затем прицельтесь, удерживая правую кнопку мыши, и кликните по кузову. Или переключайтесь между кузовами уровня клавишами
<и>. - TOOLS: Ball бросает мяч в кузов, Dent вмятит его при выбранной скорости удара, Dirt наносит грязь, Wash смывает её, а Glass трескает или разбивает стекло в прицеле.
- DAMAGE: Light, Medium, Heavy и Wreck наносят набор ударов. Repair выправляет кузов, Wash его очищает, а Drop поднимает кузов на заданную высоту и даёт ему упасть.
- DIRT: Dusty, Muddy, Snowy и Wet заполняют кузов этой смесью с Amount, который вы задаёте.
- WORLD: Reset world, Respawn props и Clear debris.
- VIEW: четыре переключателя оверлеев, описанных в разделе «Как это работает»: Lattice, Zones, Tyres и Hit markers.
- TIME: Pause, Resume и Step (один кадр) управляют паузой мира. Кнопки скорости 1, 0.5, 0.25 и 0.1 задают замедление времени. Когда игра или другой игрок держит паузу, панель сообщает об этом.
- INFO: Profile цели, её Parts, которые выключены или погнуты, счётчики Glass и Dirt at aim.
Как это работает
Заголовок раздела «Как это работает»Режим работает на вашем локальном игроке. Пока вы удерживаете правую кнопку мыши, вы летаете и целитесь: клавиши W, A, S, D, E и Q двигают камеру, а колесо мыши меняет скорость полёта. Левая кнопка мыши использует выбранный инструмент в прицеле. Отпускание правой кнопки мыши останавливает полёт.
Панель обновляет состояние цели, пока открыта. Её раздел INFO показывает профиль, детали, которые выключены или погнуты, счётчик стёкол и грязь в прицеле.
Кнопки повреждений и ремонта, а также кнопки мира выполняются на сервере через ретрансляцию плагина. Клиент может ими пользоваться, только когда сервер это разрешает. Сервер всегда разрешает своему игроку, а удалённым клиентам — по умолчанию; см. раздел «Основные настройки». Если сервер отказывает, панель выводит Server tools unavailable.
Раздел VIEW включает и выключает четыре оверлея:
- Lattice (
Crushform.Debug): Off, Damaged или All. Рисует узлы решётки и балки между ними. - Zones (
Crushform.ShowZones): зоны жёсткости каждого повреждаемого кузова в виде боксов. - Tyres (
Crushform.Tire.Debug): Off, Counts или Rays. Counts показывает количество шин на экране. Rays также рисует лучи каждой деформирующейся шины. - Hit markers (
crushform.Impact.LogHits): маркер в точке каждого удара.
Настройка
Заголовок раздела «Настройка»Ничего создавать не нужно. Режим работает с любым кузовом, у которого есть компонент деформации Crushform, например с автомобилем с адаптером или с объектом.
- Используйте сборку, отличную от Shipping. Модуля отладки нет в сборках Shipping, поэтому
Crushform.DebugModeтам отсутствует. Режим работает во всех сборках, кроме Shipping, а также в редакторе. - Откройте уровень с кузовом Crushform. В
/Crushform/ProvingGround/Maps/Lvl_ProvingGroundон есть, и на вашем уровне он появится, когда вы настроите автомобиль, как описано на странице Свой автомобиль. - Нажмите Play In Editor. Откройте консоль клавишей тильда и выполните
Crushform.DebugMode. - Нажмите Pick в разделе TARGET. Удерживайте правую кнопку мыши, чтобы прицелиться в кузов, затем нажмите левую кнопку: кузов под прицелом станет целью, а инструмент вернётся к тому, который был выбран. Или перейдите к кузову клавишами
<и>. Затем нажмите Heavy в DAMAGE.
Использование
Заголовок раздела «Использование»В Blueprint. У режима нет функций Blueprint. Из Blueprint запустите консольную команду узлом Execute Console Command из категории Development. Граф ниже запускает её из пользовательского события:
В C++. Получите режим у локального игрока и вызывайте его функции. Режим является ULocalPlayerSubsystem:
#include "CFDebugModeSubsystem.h"
UCFDebugModeSubsystem* Mode = LocalPlayer->GetSubsystem<UCFDebugModeSubsystem>();if (IsValid(Mode)){ Mode->Toggle(); // Enters the mode when it is off, exits it when it is on. const bool bOn = Mode->IsActive();}Enter() и Exit() делают то же без переключения. Модуль CrushformDebug не собирается в Shipping; правила зависимостей см. страницу Установка.
Основные настройки
Заголовок раздела «Основные настройки»| Свойство | Что делает | По умолчанию |
|---|---|---|
Crushform.DebugMode.AllowClients | Разрешает ли сервер запускать инструменты отладки для удалённых клиентов (1) или только для своего локального игрока (0). | 1 |
Crushform.Debug | Оверлей решётки: 0 выключен, 1 повреждённые узлы, 2 все узлы. | 0 |
Crushform.ShowZones | Оверлей зон жёсткости: 0 выключен, 1 включён. | 0 |
Crushform.Tire.Debug | Оверлей шин: 0 выключен, 1 количество, 2 лучи. | 0 |
crushform.Impact.LogHits | Маркеры ударов: 0 выключены, 1 включены. | 0 |
Раздел VIEW задаёт эти CVar, поэтому панель и консоль показывают одно и то же.
Проверка работы
Заголовок раздела «Проверка работы»Выполните Crushform.DebugMode в Play In Editor. Откроется панель CRUSHFORM DEBUG с разделами и подсказкой об оверлеях внизу экрана. Нажмите Pick, удерживайте правую кнопку мыши, прицельтесь в кузов Crushform и нажмите левую кнопку. Строка TARGET покажет его имя, а INFO — профиль. Нажмите Heavy: кузов получит вмятину, а при Lattice, установленном в All в разделе VIEW, вы увидите, как двигаются узлы решётки. Чтобы закрыть панель, выполните Crushform.DebugMode ещё раз.
Решение проблем
Заголовок раздела «Решение проблем»Crushform.DebugMode ничего не делает в упакованной сборке.
Причина: модуль CrushformDebug не входит в сборки Shipping, поэтому команда там не зарегистрирована.
Решение: используйте сборку, отличную от Shipping. Не делайте код для релиза зависимым от этого модуля.
В Output Log выводится строка:
Crushform.DebugMode: no local player in this world.Причина: команда выполнилась в мире без локального игрока, например на выделенном сервере. Решение: выполните команду в окне клиента или в окне Play In Editor.
Панель показывает Server tools unavailable, а серверные кнопки серые.
Причина: на сервере Crushform.DebugMode.AllowClients установлен в 0, а вы удалённый клиент.
Решение: установите его в 1 на сервере или запускайте инструменты на собственном игроке сервера.
Кнопки вмятин серые. Причина: цель отсутствует либо у её профиля выключены Dents. Тогда рядом с именем цели панель показывает Dents off. Решение: выберите кузов, у которого профиль с включёнными вмятинами, либо включите Dents в его профиле.



