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

АВТОМОБИЛЬАДАПТЕР CHAOS

Адаптер Chaos

Crushform Chaos Vehicle Adapter — адаптер для колёсного автомобиля Chaos: AWheeledVehiclePawn с компонентом движения Chaos. Он берёт колёса, двигатель и нагрузки колёс из этого компонента движения, поэтому список колёс вы не заполняете. Именно этот адаптер использует седан плагина. Всё, что адаптер автомобиля делает с кузовом, стёклами, шинами, звуками и ударами, он делает и здесь. Эта страница описывает то, что добавляет адаптер Chaos.

Седан плагина со смятым передом, вмятым капотом и кузовом и двумя открытыми дверями на ровной тестовой площадке.
Седан после ударов: вмятины на кузове и капоте.

Колёса. Адаптер читает настройки колёс и состояния колёс из компонента движения. Меш колеса — это меш-компонент, прикреплённый к мешу машины у кости этого колеса. Колесо, у кости которого нет меша, не имеет шины для деформации и не получает грязи на колесе. Адаптер всё равно читает его контакт с землёй.

Шины. Шина уходит вниз вдоль направления «вверх» машины. Это применяется после того, как кости сдвинулись, потому что кость колеса вращается и поворачивается. Выталкивание, которое сдвигает колесо от препятствия, применяется вместе с этим уходом вниз, в системе координат владельца; см. Деформация шин. Кроме того, адаптер задаёт каждой шине отношение нагрузки её колеса к номинальной доле. Нагрузка берётся из силы пружины подвески, поэтому колесо, которое несёт больший вес, получает большую нагрузку.

Двигатель. В Chaos нет зажигания. Двигатель работает, пока существует компонент движения. Его обороты берутся из скорости двигателя компонента движения, а холостой ход и максимальные обороты — из настройки двигателя компонента движения. Нагрузка берётся из газа водителя, а когда машина едет задним ходом — из педали тормоза. Машина, которой управляет другой инстанс, не получает нагрузки от педалей на вашем инстансе, поэтому звучит как накат.

Скрытые настройки. Адаптер Chaos скрывает список колёс обычного адаптера, Ground Channel и Ground Probe Margin, потому что компонент движения даёт колёса и контакты с землёй. Эти настройки здесь ничего не делают.

Проверка настройки. Если владелец не является AWheeledVehiclePawn с компонентом движения Chaos, адаптер пишет ошибку в лог и не сообщает ни о каких колёсах. Остальная часть адаптера всё равно создаёт свои компоненты.

Начните с колёсной пешки, которая уже соответствует требованиям Быстрого старта. Шаги добавления адаптера описаны в его шаге 3, здесь — только то, что отличается.

  1. Добавьте адаптер, как в шаге 3 Быстрого старта: Crushform Chaos Vehicle Adapter, а не обычный адаптер. Скомпилируйте и сохраните.

  2. Выберите адаптер. Задайте Deform Profile и Tire Profile или оставьте их пустыми, чтобы взять значения проекта по умолчанию.

  3. Проверьте переключатели функций. Каждый выключает компонент, который в нём назван, как в таблице адаптера автомобиля.

Crushform
AuthorityServer
Deform ProfileNone
Tire ProfileNone
Ram Allowance Mps15.0 m/s
Features
Dirt and Dents
Glass
Tires
Rolling Sound
Rolling FX
Engine Sound
Impact Feedback
Breaks Props
Категория Crushform у адаптера Chaos. Его список колёс, Ground Channel и Ground Probe Margin скрыты.
  1. Проверьте, что меш каждого колеса сидит на своей кости. Колесо, которое представлено только костью, не получит деформации шины и грязи на колесе.

Прочитайте обороты двигателя в C++. Получите адаптер Chaos у пешки, затем вызовите геттеры. Каждая сигнатура — та, что в заголовке. Ваш модуль должен перечислить модули Crushform в Build.cs, как в Установке.

#include "CFChaosVehicleAdapterComponent.h"
void AMyVehicle::UpdateHud()
{
if (const UCFChaosVehicleAdapterComponent* Adapter = FindComponentByClass<UCFChaosVehicleAdapterComponent>())
{
const float Rpm = Adapter->GetEngineRPM();
const float IdleRpm = Adapter->GetEngineIdleRPM();
const float MaxRpm = Adapter->GetEngineMaxRPM();
HudRpmFraction = (MaxRpm > IdleRpm) ? (Rpm - IdleRpm) / (MaxRpm - IdleRpm) : 0.f;
}
}

Чтобы изменить один из ответов адаптера о колёсах в C++, переопределите его _Implementation в подклассе. В переопределении вызывайте Super:: с той же функцией _Implementation, чтобы сохранить ответ Chaos, и никогда не вызывайте событие по имени.

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

СвойствоЧто делаетПо умолчанию
UCFVehicleAdapterComponent::DeformProfileВмятины и грязь кузова. Пусто берёт значение по умолчанию из проекта.пусто
UCFVehicleAdapterComponent::TireProfileШины. Пусто берёт значение по умолчанию из проекта.пусто
UCFVehicleAdapterComponent::AuthorityКакой инстанс симулирует машину и засчитывает её удары.Server
UCFVehicleAdapterComponent::bDirtAndDentsDirt and Dents: кузов покрывается вмятинами и грязнеет.вкл.
UCFVehicleAdapterComponent::bGlassGlass: нужен Dirt and Dents.вкл.
UCFVehicleAdapterComponent::bTiresTires: шины деформируются на мешах колёс.вкл.
UCFVehicleAdapterComponent::bRollingSoundRolling Sound.вкл.
UCFVehicleAdapterComponent::bRollingFXRolling FX.вкл.
UCFVehicleAdapterComponent::bEngineSoundEngine Sound: также нужен переключатель звука двигателя в Crushform Engine.вкл.
UCFVehicleAdapterComponent::bImpactFeedbackImpact Feedback.вкл.
UCFVehicleAdapterComponent::bBreaksPropsBreaks Props.вкл.
UCFVehicleAdapterComponent::EngineSoundProfileЗвук двигателя. Пусто берёт значение по умолчанию из Crushform Engine.пусто
UCFVehicleAdapterComponent::EngineSoundOffsetГде звучит двигатель относительно корня владельца.ноль
UCFVehicleAdapterComponent::WheelsСкрыто в панели Details и не используется: колёса даёт компонент движения.пусто
UCFVehicleAdapterComponent::GroundChannelСкрыто и не используется: контакты даёт компонент движения.Visibility
UCFVehicleAdapterComponent::GroundProbeMarginСкрыто и не используется.2 см

Значения настройки на машину, пороги ударов и значения для салона работают так же, как на странице Адаптер автомобиля.

  1. Нажмите Play, проедьте на машине и откройте консоль. Выполните stat CrushformChaos. Появятся времена Chaos Adapter Wheel Contacts и Chaos Adapter Tyre Offsets.
  2. Выполните Crushform.Stats. После аварии строка вашей машины показывает счётчик hits больше 0.
  3. Проедьте по полосе грязи. Колёса загрязнятся, а под колёсами появятся брызги от земли.

Консольные команды есть во всех сборках, кроме Shipping, и в редакторе.

В логе написано, что владелец не является колёсным автомобилем Chaos, и адаптер не сообщает ни о каких колёсах

Заголовок раздела «В логе написано, что владелец не является колёсным автомобилем Chaos, и адаптер не сообщает ни о каких колёсах»

Причина. Эктор не является AWheeledVehiclePawn с UChaosWheeledVehicleMovementComponent. Адаптер не находит компонент движения, из которого мог бы читать.

Решение. Сделайте родительским классом машины колёсную пешку с компонентом движения Chaos, как требует Быстрый старт. Обычный адаптер автомобиля используйте только для эктора, который не является автомобилем Chaos.

У колеса нет деформации шины и грязи на колесе

Заголовок раздела «У колеса нет деформации шины и грязи на колесе»

Причина. Колесо представлено только костью. Адаптер находит меш колеса только как меш-компонент, прикреплённый к мешу машины у кости колеса, а у этого колеса такого компонента нет.

Решение. Прикрепите меш-компонент колеса к мешу машины, с костью колеса как сокетом.

Двигатель стоит на холостых, и показания остаются на холостых

Заголовок раздела «Двигатель стоит на холостых, и показания остаются на холостых»

Причина. Обороты двигателя равны 0, пока компонент движения не симулирует двигатель. Тогда звук играет на холостых.

Решение. Проверьте, что двигатель машины симулируется и что настройка двигателя содержит холостой ход и максимальные обороты.

Машины других игроков звучат так, будто катятся накатом

Заголовок раздела «Машины других игроков звучат так, будто катятся накатом»

Причина. Адаптер читает газ и тормоз с педалей локального водителя. У машины, которой управляет другой инстанс, эти педали дают 0, поэтому звук двигателя остаётся на громкости наката.

Решение. Это ожидаемое поведение адаптера Chaos. Чтобы слышать нагрузку на чужих машинах, переопределите GetEngineLoad в Blueprint-подклассе адаптера и отвечайте реплицированным газом вашей собственной машины.