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

ИНТЕГРАЦИЯНАСТРОЙКИ ПРОЕКТА

Настройки проекта

У Crushform семь классов настроек. Каждый отображается в Project Settings › Plugins под своим отображаемым именем. Шесть сохраняются в Config/DefaultGame.ini. Zone Editor сохраняет в Config/DefaultEditor.ini. Храните эти файлы под контролем версий, чтобы вся команда использовала один набор значений.

Списки ниже перечисляют свойства, которые проект меняет в первую очередь. Каждое значение по умолчанию — это значение, которое задаёт код. Все свойства перечислены в справочнике API.

Crushform (UCFSettings) хранит атлас, ассеты по умолчанию, грязь, виды материалов, навесные детали и коллизию.

  • UCFSettings::Atlas: Render Target, который читают все деформируемые меши. По умолчанию: /Crushform/Atlas/RT_CF_LatticeAtlas. Его размер задаёт, сколько повреждённых кузовов рисуется одновременно; см. Производительность.
  • UCFSettings::SlotWidth и UCFSettings::SlotHeight: тексели одного слота, по умолчанию 256 в ширину и 8 в высоту. Решётка помещается, когда её ResX, умноженный на ResZ, не больше SlotWidth, а её ResY не больше SlotHeight.
  • UCFSettings::CustomDataOffset, UCFSettings::WheelCustomDataOffset, UCFSettings::TireCustomDataOffset и UCFSettings::GlassCustomDataOffset: с какого места начинается каждый блок Custom Primitive Data. По умолчанию 0, 34, 0 и 18. При изменении одного из них пересобираются функции материалов, которые его запекают. Сохраните эти функции или выполните Crushform.RebakeOffsets и сохраните их.
  • UCFSettings::Surfaces: одна строка на каждый физический материал. По умолчанию: /Crushform/Surfaces/DA_CF_Surfaces. Без него ни одно тело не загрязняется.
  • UCFSettings::DefaultProfile: профиль деформации для кузова, который не указывает свой. По умолчанию: /Crushform/Presets/DA_CF_DefaultProfile.
  • UCFSettings::DirtAtlas и UCFSettings::DirtFreshAtlas: Render Target грязи. По умолчанию: /Crushform/Atlas/RT_CF_DirtAtlas и /Crushform/Atlas/RT_CF_DirtFreshAtlas.
  • UCFSettings::ScratchAtlas: Render Target RG8 размером с атлас решётки, где хранятся покрытие линиями царапин и их направление. По умолчанию: /Crushform/Atlas/RT_CF_ScratchAtlas. Без пригодного атласа краска не рисует линий царапин; см. Краска и царапины.
  • UCFSettings::DirtLayerOrder: Fixed (по умолчанию) укладывает каналы грязи по их ZOrder. Most Recent on Top требует атлас свежей грязи.
  • UCFSettings::DustChannel, UCFSettings::MudChannel, UCFSettings::SnowChannel и UCFSettings::WetChannel: имя, смешивание и скорость очистки каждого канала. По умолчанию пыль, грязь и снег смешиваются как слои, а влага смешивается как оверлей.
  • UCFSettings::BodyDirtLook, UCFSettings::WheelDirtLook и UCFSettings::GlassCrackLook: функции материалов, которые заменяют встроенный вид грязи кузова, грязи колёс и трещин стекла. Если значение не задано, встроенный вид остаётся.
  • UCFSettings::DefaultGlassShardSystem: Niagara-система, которая бросает осколки стеклянной панели, чьё определение не называет Shard System. По умолчанию: /Crushform/Glass/NS_CF_GlassShards. Находится в группе Glass. См. Стекло.
  • UCFSettings::LoosePartCollisionProfile: профиль коллизии, который получает навесная деталь, когда она начинает качаться или отваливается. None использует собственный профиль плагина, которому ничего не требуется от проекта.
  • UCFSettings::SwingSpring (0), UCFSettings::SwingDamping (1) и UCFSettings::StopBounce (0): как качающуюся деталь возвращают, гасят и останавливают.
  • UCFSettings::DetachedLifetime (60 с) и UCFSettings::DetachedSinkTime (2 с): сколько времени лежит деталь, которая отвалилась, и сколько времени она погружается.
  • UCFSettings::CollisionRebuildThreshold (2 см), UCFSettings::CollisionRebuildInterval (0.5 с) и UCFSettings::MaxCollisionBlocks (96): когда коллизия деформированного кузова строится заново и на сколько блоков всего разрезаются боксы и выпуклые формы одного кузова.
  • UCFSettings::bDeformCollision (вкл.): следует ли коллизия за вмятинами в этом проекте. Выкл.: каждый автомобиль сохраняет коллизию из ассета, что бы ни говорил его профиль, а вмятины только рисуются. Читается, когда у автомобиля начинается игра. Записывается в Crushform.Collision.Deform, поэтому профиль устройства может выключить её для слабых устройств. Каждый инстанс читает своё значение, и оно не реплицируется: вмятины и оторванные детали по-прежнему доходят до всех инстансов, а инстанс с выключенной настройкой сталкивается так, будто вмятин нет. Разные значения в одном матче дают инстансам разную физику в аварии.
  • UCFSettings::CollisionDeferFrames (1): сколько кадров тяжёлая сборка коллизии может идти вне игрового потока, прежде чем оказаться на кузове, 0 или 1. Имеются в виду вырез для оторванной детали, перестройка кузова с вмятиной и оболочка оторванной детали. 0 строит всё в кадре удара. Значение больше 1 читается как 1. Консольная переменная Crushform.Collision.DeferFrames хранит это значение во время работы; см. Консольные команды.
  • UCFSettings::AutoRepairDelay: секунды после последнего повреждения, через которые кузов ремонтирует себя. По умолчанию 0, то есть кузов никогда не ремонтирует себя.

Crushform Wheels (UCFWheelSettings) хранит звук качения и FX качения колёс.

Crushform Tire (UCFTireSettings) хранит, какие шины деформируются, бюджет шин, поведение покоящихся колёс и то, что игнорирует трассировка шины по поверхности.

  • UCFTireSettings::Scope: по умолчанию Budgeted. ECFTireScope::RigOnly деформирует только сцепку самого зрителя. ECFTireScope::Budgeted также деформирует остальные колёса, которые выделяет бюджет. ECFTireScope::Unlimited деформирует каждое колесо каждого зарегистрированного автомобиля.
  • UCFTireSettings::bEnabled (включено): главный выключатель. При выключении каждая шина возвращается к круглой форме. Переопределяется переменной консоли Crushform.Tire.Enable.
  • UCFTireSettings::MaxWheels (30): сколько шин могут деформироваться одновременно. Собственный автомобиль зрителя деформируется всегда, даже сверх этого предела. Переопределяется переменной консоли Crushform.Tire.MaxWheels.
  • UCFTireSettings::Radius (4000 см): расстояние от камеры, в пределах которого могут деформироваться шины других автомобилей. Переопределяется переменной консоли Crushform.Tire.Radius.
  • UCFTireSettings::LodDistance1 (1500 см) и UCFTireSettings::LodDistance2 (3000 см): расстояния, с которых шина трассирует более редкий веер лучей, а затем самый редкий веер против простой коллизии. Переопределяются переменными консоли Crushform.Tire.LodDistance1 и Crushform.Tire.LodDistance2.
  • UCFTireSettings::Hysteresis (0.15): насколько расширяются границы выделенной шины, чтобы шина на границе не мерцала. Значения от 0 до 0.9. Переопределяется переменной консоли Crushform.Tire.Hysteresis.
  • UCFTireSettings::UpdateInterval (0.25 с) и UCFTireSettings::OnScreenTolerance (0.5 с): время между двумя проходами бюджета и сколько времени после последней отрисовки колесо ещё считается видимым на экране. Переопределяются переменными консоли Crushform.Tire.UpdateInterval и Crushform.Tire.OnScreenTolerance.
  • UCFTireSettings::SleepDistance (1 см) и UCFTireSettings::SleepAngleDeg (0.5 градуса): насколько близко к положению покоя колесо должно оставаться, чтобы уснуть. Отрицательное SleepDistance означает, что колесо не засыпает никогда.
  • UCFTireSettings::IgnoredObjectChannels (пусто): каналы объектов, которые трассировка шины по поверхности игнорирует, сверх каналов, которые игнорирует её собственная коллизия.
  • UCFTireSettings::DefaultProfile: профиль шины для шины, которая не указывает свой. По умолчанию: /Crushform/Presets/DA_CF_DefaultTireProfile.

Crushform Engine (UCFEngineSettings) хранит звук двигателя.

Crushform Impact Feedback (UCFImpactFeedbackSettings) хранит набор ударов, который воспроизводится, и ограничения на звук и эффекты.

Crushform Breakable (UCFBreakableSettings) хранит ограничения и коллизию разрушенных элементов и их обломков.

Crushform Zone Editor (UCFEditorSettings) хранит пресеты, которые предлагает Zone Editor. Это единственный класс, который сохраняется в DefaultEditor.ini.

  • UCFEditorSettings::ZonePresets: пресеты в контекстном меню Zone Editor, в этом порядке. Каждый пресет — это FCFZonePreset с Name, Stiffness, Max Depth и Edge Width (по умолчанию 20 см). Max Depth, равный 0, берёт Max Displacement профиля. По умолчанию заданы Frame (жёсткость 3, Max Depth 0), Cabin (2, 12 см), Crumple (0.5, 0) и Neutral (1, 0).

Откройте Project Settings › Plugins и найдите семь записей Crushform. Это:

  • Crushform
  • Crushform Wheels
  • Crushform Tire
  • Crushform Engine
  • Crushform Impact Feedback
  • Crushform Breakable
  • Crushform Zone Editor

Затем нажмите Play In Editor на уровне с кузовом Crushform и выполните в консоли Crushform.Stats. Первая строка, которую он выводит, — число занятых слотов атласа: Crushform atlas: <used> of <total> slots used. Процесс выделенного сервера вместо неё выводит Crushform atlas: none in this process (a dedicated server draws nothing).

Atlas
AtlasRT_CF_LatticeAtlas
Slot Width256
Slot Height8
Custom Data Offset0
Wheel Custom Data Offset34
Tire Custom Data Offset0
Glass Custom Data Offset18
Scratch AtlasRT_CF_ScratchAtlas
Network
Contact
Repair
Surfaces
Profile
Dirt
Look
Body Dirt LookNone
Wheel Dirt LookNone
Glass Crack LookNone
Loose Parts
Collision
Настройки Crushform: открыты группы Atlas и Look, остальные свёрнуты.

Plugins - Crushform Tire

Budget
ScopeBudgeted
Enabled
Max Wheels30
Radius4000.0
Lod Distance 11500.0
Lod Distance 23000.0
Hysteresis0.15
Update Interval0.25
On Screen Tolerance0.5
Sleep
Sleep Distance1.0
Sleep Angle Deg0.5
Настройки Crushform Tire: категории Budget и Sleep со значениями по умолчанию.

Plugins - Crushform Zone Editor

The stiffness zone editor's presets: Project Settings > Plugins > Crushform Zone Editor, kept in DefaultEditor.ini for the team.

Zones
Zone Presets4 Array elements
Index [ 0 ]Frame
NameFrame
Stiffness3.0
Max Depth0.0
Edge Width20.0
Index [ 1 ]Cabin
NameCabin
Stiffness2.0
Max Depth12.0
Edge Width20.0
Index [ 2 ]Crumple
NameCrumple
Stiffness0.5
Max Depth0.0
Edge Width20.0
Index [ 3 ]Neutral
NameNeutral
Stiffness1.0
Max Depth0.0
Edge Width20.0
Пресеты зон в Project Settings, в разделе Plugins > Crushform Zone Editor.

Ни одно тело не загрязняется. Причина: Surfaces (UCFSettings::Surfaces) пусто либо не указывает ассет поверхностей. Без него ни одно тело не загрязняется. Решение: задайте /Crushform/Surfaces/DA_CF_Surfaces или собственный ассет поверхностей.

Most Recent on Top переходит к ZOrder. Причина: атлас свежей грязи отсутствует или непригоден. Output Log тогда выводит No usable Crushform dirt fresh atlas (Project Settings > Plugins > Crushform > Dirt Fresh Atlas). Решение: задайте Dirt Fresh Atlas как /Crushform/Atlas/RT_CF_DirtFreshAtlas или как пригодный Render Target собственного проекта.

Нет линий царапин. Причина: атлас царапин отсутствует либо это не Render Target RG8 с размером атласа решётки. Output Log тогда выводит No Crushform scratch atlas (Project Settings > Plugins > Crushform); scratch lines stay invisible или называет атлас и нужный ему размер. Решение: задайте Scratch Atlas как /Crushform/Atlas/RT_CF_ScratchAtlas или как собственный Render Target RG8 с размером атласа решётки.

Материалы запекают неверное смещение после изменения. Причина: редактор пересобирает функции материалов при изменении Custom Data Offset, но пересобранные функции не сохранены. Решение: сохраните функции материалов или выполните Crushform.RebakeOffsets, а затем сохраните их.