НАЧАЛО РАБОТЫБЫСТРЫЙ СТАРТ
Быстрый старт
Это руководство даёт автомобилю 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. Щёлкните правой кнопкой по графу и найдите каждое имя. - Проверьте на своём материале следующее, прежде чем что-либо соединять:
- Ваш собственный 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использует одну из них, поэтому материал, который уже использует две, после подключения не компилируется. - Каждый материал, который использует подключённые функции, тратит ресурсы на вычисления вершин, даже если вмятин нет.
- Ваш собственный World Position Offset остаётся. Добавьте его к World Position Offset
- Сделайте десять соединений, по одному в каждой строке. Строка Scratch необязательна: без неё краска изнашивается, но потёртость не рисует линий. Сначала запомните, что сейчас подаётся на Base Color, Roughness и Metallic материала.
| От | К |
|---|---|
| Ваш базовый цвет | Base Color у MF_CF_Paint |
| Ваша шероховатость | Roughness у MF_CF_Paint |
| Ваша металличность | Metallic у MF_CF_Paint |
Wear Depth у MF_CF_Deform | Wear Depth у MF_CF_Paint |
Scratch у MF_CF_Deform | Scratch у MF_CF_Paint |
Base Color у MF_CF_Paint | Base Color материала |
Roughness у MF_CF_Paint | Roughness материала |
Metallic у MF_CF_Paint | Metallic материала |
World Position Offset у MF_CF_Deform | World Position Offset материала |
Normal у MF_CF_Deform | Normal материала |
- В Details материала, в разделе Usage, включите Used with Skeletal Mesh, если кузов — Skeletal Mesh.
- В Details материала задайте для Max World Position Offset Displacement (в категории World Position Offset) значение, равное сумме Max Displacement профиля, который использует автомобиль, и входа Fold Amplitude у
MF_CF_Deform. Амплитуда складок по умолчанию равна 3 см. Если у материала уже есть своя граница, добавьте ту же сумму к ней. - Нажмите Apply, затем Save.
2. Подключите материал колеса
Заголовок раздела «2. Подключите материал колеса»- Откройте материал колеса. Поставьте
MF_CF_WheelDirtмежду цветом колеса и Base Color, Roughness и Metallic. Цвет, шероховатость и металличность колеса подаются на входы с такими же именами, а три выхода функции управляют тремя свойствами. - Не добавляйте
MF_CF_DeformиMF_CF_Paintв материал колеса. Custom Primitive Data колеса хранит его грязь, а не данные вмятин кузова. - Деформация шины — отдельная функция,
MF_CF_TireDeform, и её подключение не входит в это руководство. В материале шины оставьте Always Evaluate WPO выключенным. - Готовый пример плагина —
M_CF_Wheel. Откройте его для сравнения.
3. Добавьте адаптер
Заголовок раздела «3. Добавьте адаптер»- Откройте Blueprint автомобиля. Нажмите Add и выберите Crushform Chaos Vehicle Adapter. Он находится в категории Crushform. Не выбирайте Crushform Vehicle Adapter: у него колёса нужно перечислять вручную.
- Нажмите Compile, затем Save.
-
Адаптер создаёт свои компоненты на каждом инстансе под фиксированными именами. У каждого есть собственный переключатель:
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.
Адаптер берёт колёса из компонента движения, поэтому перечислять их не нужно.
-
Пустой Deform Profile берёт значение по умолчанию из Project Settings, в разделе Plugins, Crushform, Default Profile (
DA_CF_DefaultProfile). Пустой Tire Profile берёт значение по умолчанию из Project Settings, в разделе Plugins, Crushform Tire, Default Profile.
| Crushform | ||
|---|---|---|
| Authority | ||
| Deform Profile | DA_CF_DefaultProfile | |
| Tire Profile | DA_CF_DefaultTireProfile | |
| Ram Allowance Mps | 15.0 m/s | |
| Features | ||
| Dirt and Dents | ||
| Glass | ||
| Tires | ||
| Rolling Sound | ||
| Rolling FX | ||
| Engine Sound | ||
| Impact Feedback | ||
| Breaks Props | ||
4. Задайте поверхность земли
Заголовок раздела «4. Задайте поверхность земли»- Грязь, звук качения и 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. Если поле очистить, звук качения остаётся выключенным.
5. Запустите игру и врежьтесь
Заголовок раздела «5. Запустите игру и врежьтесь»- Нажмите Play и направьте автомобиль в стену или забор. На демо Proving Ground есть заборы для проверки.
- Проедьте по грязи на поверхности
PM_CF_Mud. Колёса и нижняя часть кузова испачкаются.
Ключевые настройки
Заголовок раздела «Ключевые настройки»Они находятся в адаптере. Адаптер Chaos наследует их от UCFVehicleAdapterComponent.
| Свойство | Что делает |
|---|---|
UCFVehicleAdapterComponent::DeformProfile | Вмятины и грязь кузова. Пусто: профиль проекта по умолчанию. |
UCFVehicleAdapterComponent::TireProfile | Шины. Пусто: профиль шин проекта по умолчанию. |
UCFVehicleAdapterComponent::Authority | Server (по умолчанию): сервер симулирует автомобиль и оценивает его удары. 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.
Другие случаи описаны в Решение проблем.


