Перейти к содержимому
CRUSHFORMV1.1.0
ПОЛУЧИТЬ НА FAB

ИНСТРУМЕНТЫРЕЖИМ ОТЛАДКИ

Режим отладки

Режим отладки — это панель для проверки плагина на живом кузове без тест-драйва. Crushform.DebugMode открывает её поверх игры. Панель даёт свободную камеру, цель и инструменты, которые наносят вмятины и грязь, смывают её, разбивают стекло и роняют кузов, а также оверлеи, которые показывают решётку, зоны жёсткости и шины. Чтобы закрыть панель, выполните команду ещё раз.

Панель называется CRUSHFORM DEBUG. Её разделы подписаны заглавными буквами: TARGET, TOOLS, DAMAGE, DIRT, WORLD, VIEW, TIME и INFO.

Панель CRUSHFORM DEBUG без цели: в строке TARGET написано 'No target. Aim at a body and use Pick.', а кнопки DAMAGE и DIRT серые.
Панель до выбора кузова.
  • 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.
Седан с вмятинами и оверлеем решётки на All: серые узлы не повреждены, повреждённые идут от зелёного к красному, а балки соединяют узлы.
Crushform.Debug 2 на седане с вмятинами. Серые узлы не повреждены; повреждённые переходят от зелёного к красному по мере углубления вмятины.

Режим работает на вашем локальном игроке. Пока вы удерживаете правую кнопку мыши, вы летаете и целитесь: клавиши 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): маркер в точке каждого удара.
Три зоны жёсткости в виде боксов вокруг седана: синяя сзади, зелёная вдоль кузова и красная у носа, подписаны x0.2, x1.0 и x4.0, 12 см.
Зоны профиля седана, с тремя зонами, добавленными для этого снимка, при включённом оверлее Zones.

Ничего создавать не нужно. Режим работает с любым кузовом, у которого есть компонент деформации Crushform, например с автомобилем с адаптером или с объектом.

  1. Используйте сборку, отличную от Shipping. Модуля отладки нет в сборках Shipping, поэтому Crushform.DebugMode там отсутствует. Режим работает во всех сборках, кроме Shipping, а также в редакторе.
  2. Откройте уровень с кузовом Crushform. В /Crushform/ProvingGround/Maps/Lvl_ProvingGround он есть, и на вашем уровне он появится, когда вы настроите автомобиль, как описано на странице Свой автомобиль.
  3. Нажмите Play In Editor. Откройте консоль клавишей тильда и выполните Crushform.DebugMode.
  4. Нажмите 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 ещё раз.

Полный вид с выбранным седаном: его обводит красная рамка, а прокрученная панель показывает профиль DA_CF_Profile_Sedan, навесные детали на 0 см и шесть целых стеклянных панелей в INFO.
Выбран седан. INFO показывает его профиль, детали, стекло и грязь в прицеле.

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 в его профиле.