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

НАЧАЛО РАБОТЫБЫСТРЫЙ СТАРТ

Быстрый старт

Это руководство даёт автомобилю Chaos вмятины, износ краски и грязь. Вы подключаете три функции материала к материалам кузова и колёс, затем добавляете один компонент к автомобилю. Код не нужен.

Вам понадобится:

  • Установленный плагин. См. Установка.
  • Пешка на основе AWheeledVehiclePawn с UChaosWheeledVehicleMovementComponent.
  • Колёса в виде mesh-компонентов на костях колёс. Колесо, которое есть только костью, не получает деформацию шины и грязь на колесе.
  • Автомобиль, на котором ещё ничего не настроено: нет адаптера Crushform и не подключены материалы.
  • Unreal Engine 5.6, 5.7 или 5.8.

Скриншоты в этом руководстве показывают седан из плагина, BP_VehicleAdvSedan, настроенный по шагам с нуля. Выполняйте шаги на своём автомобиле. Готовый седан лежит в плагине по пути /Crushform/Blueprints/Sedan/BP_VehicleAdvSedan, с ним можно сравнить свой.

  1. Откройте мастер-материал краски, родитель её экземпляров.
Мастер-материал краски, родитель её экземпляров, до какого-либо подключения.
  1. Добавьте MF_CF_Deform и MF_CF_Paint. Щёлкните правой кнопкой по графу и найдите каждое имя.
  2. Проверьте на своём материале следующее, прежде чем что-либо соединять:
    • Ваш собственный World Position Offset остаётся. Добавьте его к World Position Offset MF_CF_Deform через узел Add и выведите сумму в World Position Offset материала.
    • Карта нормалей или другой источник нормали подключается ко входу Normal MF_CF_Deform, а не к материалу.
    • Материал, который использует Material Attributes, подключается через узлы Break Material Attributes и Set Material Attributes. Выходы Break Material Attributes идут на входы обеих функций и на узел Add. Выходы MF_CF_Deform (Normal и сумма смещений) и MF_CF_Paint (Base Color, Roughness, Metallic) подаются на соответствующие пины Set Material Attributes, который передаёт их в материал.
    • Материал должен использовать Tangent Space Normal. Нормаль в мировом пространстве не подключается.
    • Стекло и внутренние детали, которые используют меш кузова, получают только MF_CF_Deform. Они мнутся вместе с кузовом и сохраняют свой вид.
    • Каждый материал каждого меша, который должен гнуться, нужно подключить. Детали, которые двигаются относительно кузова, например двери и рулевое колесо, добавьте в Exclude Tags профиля.
    • Материал может использовать не больше двух коллекций параметров. MF_CF_Paint использует одну из них, поэтому материал, который уже использует две, после подключения не компилируется.
    • Каждый материал, который использует подключённые функции, тратит ресурсы на вычисления вершин, даже если вмятин нет.
  3. Сделайте десять соединений, по одному в каждой строке. Строка Scratch необязательна: без неё краска изнашивается, но потёртость не рисует линий. Сначала запомните, что сейчас подаётся на Base Color, Roughness и Metallic материала.
ОтК
Ваш базовый цветBase Color у MF_CF_Paint
Ваша шероховатостьRoughness у MF_CF_Paint
Ваша металличностьMetallic у MF_CF_Paint
Wear Depth у MF_CF_DeformWear Depth у MF_CF_Paint
Scratch у MF_CF_DeformScratch у MF_CF_Paint
Base Color у MF_CF_PaintBase Color материала
Roughness у MF_CF_PaintRoughness материала
Metallic у MF_CF_PaintMetallic материала
World Position Offset у MF_CF_DeformWorld Position Offset материала
Normal у MF_CF_DeformNormal материала
  1. В Details материала, в разделе Usage, включите Used with Skeletal Mesh, если кузов — Skeletal Mesh.
  2. В Details материала задайте для Max World Position Offset Displacement (в категории World Position Offset) значение, равное сумме Max Displacement профиля, который использует автомобиль, и входа Fold Amplitude у MF_CF_Deform. Амплитуда складок по умолчанию равна 3 см. Если у материала уже есть своя граница, добавьте ту же сумму к ней.
  3. Нажмите Apply, затем Save.
Мастер-материал с подключёнными MF_CF_Deform и MF_CF_Paint.
  1. Откройте материал колеса. Поставьте MF_CF_WheelDirt между цветом колеса и Base Color, Roughness и Metallic. Цвет, шероховатость и металличность колеса подаются на входы с такими же именами, а три выхода функции управляют тремя свойствами.
  2. Не добавляйте MF_CF_Deform и MF_CF_Paint в материал колеса. Custom Primitive Data колеса хранит его грязь, а не данные вмятин кузова.
  3. Деформация шины — отдельная функция, MF_CF_TireDeform, и её подключение не входит в это руководство. В материале шины оставьте Always Evaluate WPO выключенным.
  4. Готовый пример плагина — M_CF_Wheel. Откройте его для сравнения.
Материал колеса с MF_CF_WheelDirt между его цветом и выходами.
  1. Откройте Blueprint автомобиля. Нажмите Add и выберите Crushform Chaos Vehicle Adapter. Он находится в категории Crushform. Не выбирайте Crushform Vehicle Adapter: у него колёса нужно перечислять вручную.
  2. Нажмите Compile, затем Save.
Панель Components с открытым списком Add, где в категории Crushform выбран Crushform Chaos Vehicle Adapter.
Add › Crushform Chaos Vehicle Adapter, в категории Crushform.
  1. Адаптер создаёт свои компоненты на каждом инстансе под фиксированными именами. У каждого есть собственный переключатель:

    • CF_Deform создаёт вмятины и грязь кузова. Нужен Dirt and Dents.
    • CF_Glass создаёт стеклянные панели. Нужны Glass и Dirt and Dents.
    • CF_Tires создаёт деформацию шин. Нужен Tires.
    • CF_RollingAudio и CF_RollingFX создают звук качения и FX качения. Нужны Rolling Sound и Rolling FX.
    • CF_EngineAudio создаёт звук двигателя. Нужен Engine Sound, а также настройка звука двигателя в Project Settings в разделе Crushform Engine.
    • CF_PropContact ломает объекты. Нужен Breaks Props.
    • CF_ImpactFeedback проигрывает звуки и эффекты ударов. Нужен Impact Feedback. CF_PartImpactFeedback делает то же для навесных деталей и тоже нуждается в Dirt and Dents.

    Адаптер берёт колёса из компонента движения, поэтому перечислять их не нужно.

  2. Пустой Deform Profile берёт значение по умолчанию из Project Settings, в разделе Plugins, Crushform, Default Profile (DA_CF_DefaultProfile). Пустой Tire Profile берёт значение по умолчанию из Project Settings, в разделе Plugins, Crushform Tire, Default Profile.

Crushform
AuthorityServer
Deform ProfileDA_CF_DefaultProfile
Tire ProfileDA_CF_DefaultTireProfile
Ram Allowance Mps15.0 m/s
Features
Dirt and Dents
Glass
Tires
Rolling Sound
Rolling FX
Engine Sound
Impact Feedback
Breaks Props
Категория Crushform у Crushform Chaos Vehicle Adapter. Все её переключатели функций включены.
  • Грязь, звук качения и FX качения берутся из физического материала поверхности земли. Задайте Phys Material материала земли одним из семи материалов плагина: PM_CF_Asphalt, PM_CF_Dirt, PM_CF_Grass, PM_CF_Mud, PM_CF_Swamp, PM_CF_Snow или PM_CF_Water.
  • Физический материал без строки в таблице Surfaces (DA_CF_Surfaces) получает строку Default. Для собственных физических материалов можно добавить свои строки.
  • Звук качения играет через Attenuation в Project Settings, в разделе Plugins, Crushform Wheels. По умолчанию это SA_CF_TireRolling. Если поле очистить, звук качения остаётся выключенным.
  1. Нажмите Play и направьте автомобиль в стену или забор. На демо Proving Ground есть заборы для проверки.
Седан плагина с помятым капотом и передним бампером, помятыми дверями и распахнутыми дверями.
Кузов вмялся в месте удара, а краска стёрлась там, где сместился металл.
  1. Проедьте по грязи на поверхности PM_CF_Mud. Колёса и нижняя часть кузова испачкаются.
Седан плагина с бурой грязью на нижней части кузова, дверях и колёсах, стоящий на светло-коричневой земле Proving Ground.
Грязь на кузове и колёсах после заезда по поверхностям Proving Ground.

Они находятся в адаптере. Адаптер Chaos наследует их от UCFVehicleAdapterComponent.

СвойствоЧто делает
UCFVehicleAdapterComponent::DeformProfileВмятины и грязь кузова. Пусто: профиль проекта по умолчанию.
UCFVehicleAdapterComponent::TireProfileШины. Пусто: профиль шин проекта по умолчанию.
UCFVehicleAdapterComponent::AuthorityServer (по умолчанию): сервер симулирует автомобиль и оценивает его удары. Owning Client: инстанс, на котором игрок управляет автомобилем, симулирует его и сообщает о своих ударах, а сервер их проверяет.
UCFVehicleAdapterComponent::bDirtAndDentsКузов получает вмятины и грязь. Стеклянные панели и грязь на колёсах требуют этой настройки.
UCFVehicleAdapterComponent::bGlassСтеклянные панели автомобиля трескаются и разбиваются. Нужен Dirt and Dents.
UCFVehicleAdapterComponent::bTiresШины деформируются на мешах колёс.
UCFVehicleAdapterComponent::bRollingSoundКаждое колесо проигрывает звук качения своей поверхности. Только отображение: на выделенном сервере молчит.
UCFVehicleAdapterComponent::bRollingFXКаждое колесо показывает FX качения своей поверхности. Только отображение.
UCFVehicleAdapterComponent::bEngineSoundДвигатель проигрывает свой звук. Только отображение. Также нужна настройка звука двигателя в Crushform Engine.
UCFVehicleAdapterComponent::bImpactFeedbackУдары проигрывают звуки и эффекты ударов на каждом инстансе.
UCFVehicleAdapterComponent::bBreaksPropsАвтомобиль ломает разрушаемые объекты, в которые въезжает.
  • Откройте консоль клавишей тильда и выполните Crushform.Stats. Автомобиль есть в списке, со своим счётчиком hits. Строки имеют такой вид. Каждая строка автомобиля начинается с имени эктора, затем указано, держит ли этот инстанс решётку или её вид:
Crushform atlas: N of M slots used, N waiting, N evictions, N uploads.
Actor name: server lattice or client view, generation N, N pending, N chunks | hits N, sent N, accepted N, rejected N, ...
  • Выполните Crushform.DebugImpact 15, затем часть имени другого автомобиля с Crushform на уровне. Имя пишется после скорости. Команда вомнёт тот автомобиль прямо с вашего места, если он в пределах 100 м, с изменением скорости 15 м/с, без вождения. Без имени она ударяет по повреждаемому эктору под прицелом. Она никогда не бьёт по пешке, которой вы управляете, поэтому проверяйте свой автомобиль, въезжая в стену, как в шаге 5.
  • Выполните Crushform.Debug 1. Команда рисует узлы решётки вмятин на кузовах.
  • Проедьте по поверхности PM_CF_Mud. Колёса и нижняя часть кузова испачкаются.
  • Эти команды работают в редакторе и во всех сборках, кроме Shipping, где они удаляются при компиляции.
  • Ничего не мнётся: проверьте подключение на шаге 1 и убедитесь, что Exclude Tags профиля не скрывают меш кузова.
  • Колёса остаются чистыми: колёса должны быть mesh-компонентами на костях колёс.
  • Земля не даёт грязи и звука качения: её Phys Material должен быть одним из материалов плагина или иметь строку в таблице Surfaces.
  • Материал не компилируется: проверьте ограничение в две коллекции на шаге 1.

Другие случаи описаны в Решение проблем.