АВТОМОБИЛЬАДАПТЕР CHAOS
Адаптер Chaos
Назначение
Заголовок раздела «Назначение»Crushform Chaos Vehicle Adapter — адаптер для колёсного автомобиля Chaos: AWheeledVehiclePawn с компонентом движения Chaos. Он берёт колёса, двигатель и нагрузки колёс из этого компонента движения, поэтому список колёс вы не заполняете. Именно этот адаптер использует седан плагина. Всё, что адаптер автомобиля делает с кузовом, стёклами, шинами, звуками и ударами, он делает и здесь. Эта страница описывает то, что добавляет адаптер Chaos.
Как это работает
Заголовок раздела «Как это работает»Колёса. Адаптер читает настройки колёс и состояния колёс из компонента движения. Меш колеса — это меш-компонент, прикреплённый к мешу машины у кости этого колеса. Колесо, у кости которого нет меша, не имеет шины для деформации и не получает грязи на колесе. Адаптер всё равно читает его контакт с землёй.
Шины. Шина уходит вниз вдоль направления «вверх» машины. Это применяется после того, как кости сдвинулись, потому что кость колеса вращается и поворачивается. Выталкивание, которое сдвигает колесо от препятствия, применяется вместе с этим уходом вниз, в системе координат владельца; см. Деформация шин. Кроме того, адаптер задаёт каждой шине отношение нагрузки её колеса к номинальной доле. Нагрузка берётся из силы пружины подвески, поэтому колесо, которое несёт больший вес, получает большую нагрузку.
Двигатель. В Chaos нет зажигания. Двигатель работает, пока существует компонент движения. Его обороты берутся из скорости двигателя компонента движения, а холостой ход и максимальные обороты — из настройки двигателя компонента движения. Нагрузка берётся из газа водителя, а когда машина едет задним ходом — из педали тормоза. Машина, которой управляет другой инстанс, не получает нагрузки от педалей на вашем инстансе, поэтому звучит как накат.
Скрытые настройки. Адаптер Chaos скрывает список колёс обычного адаптера, Ground Channel и Ground Probe Margin, потому что компонент движения даёт колёса и контакты с землёй. Эти настройки здесь ничего не делают.
Проверка настройки. Если владелец не является AWheeledVehiclePawn с компонентом движения Chaos, адаптер пишет ошибку в лог и не сообщает ни о каких колёсах. Остальная часть адаптера всё равно создаёт свои компоненты.
Настройка
Заголовок раздела «Настройка»Начните с колёсной пешки, которая уже соответствует требованиям Быстрого старта. Шаги добавления адаптера описаны в его шаге 3, здесь — только то, что отличается.
-
Добавьте адаптер, как в шаге 3 Быстрого старта: Crushform Chaos Vehicle Adapter, а не обычный адаптер. Скомпилируйте и сохраните.
-
Выберите адаптер. Задайте Deform Profile и Tire Profile или оставьте их пустыми, чтобы взять значения проекта по умолчанию.
-
Проверьте переключатели функций. Каждый выключает компонент, который в нём назван, как в таблице адаптера автомобиля.
| Crushform | ||
|---|---|---|
| Authority | ||
| Deform Profile | None | |
| Tire Profile | None | |
| Ram Allowance Mps | 15.0 m/s | |
| Features | ||
| Dirt and Dents | ||
| Glass | ||
| Tires | ||
| Rolling Sound | ||
| Rolling FX | ||
| Engine Sound | ||
| Impact Feedback | ||
| Breaks Props | ||
- Проверьте, что меш каждого колеса сидит на своей кости. Колесо, которое представлено только костью, не получит деформации шины и грязи на колесе.
Использование
Заголовок раздела «Использование»Прочитайте обороты двигателя в 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::bDirtAndDents | Dirt and Dents: кузов покрывается вмятинами и грязнеет. | вкл. |
UCFVehicleAdapterComponent::bGlass | Glass: нужен Dirt and Dents. | вкл. |
UCFVehicleAdapterComponent::bTires | Tires: шины деформируются на мешах колёс. | вкл. |
UCFVehicleAdapterComponent::bRollingSound | Rolling Sound. | вкл. |
UCFVehicleAdapterComponent::bRollingFX | Rolling FX. | вкл. |
UCFVehicleAdapterComponent::bEngineSound | Engine Sound: также нужен переключатель звука двигателя в Crushform Engine. | вкл. |
UCFVehicleAdapterComponent::bImpactFeedback | Impact Feedback. | вкл. |
UCFVehicleAdapterComponent::bBreaksProps | Breaks Props. | вкл. |
UCFVehicleAdapterComponent::EngineSoundProfile | Звук двигателя. Пусто берёт значение по умолчанию из Crushform Engine. | пусто |
UCFVehicleAdapterComponent::EngineSoundOffset | Где звучит двигатель относительно корня владельца. | ноль |
UCFVehicleAdapterComponent::Wheels | Скрыто в панели Details и не используется: колёса даёт компонент движения. | пусто |
UCFVehicleAdapterComponent::GroundChannel | Скрыто и не используется: контакты даёт компонент движения. | Visibility |
UCFVehicleAdapterComponent::GroundProbeMargin | Скрыто и не используется. | 2 см |
Значения настройки на машину, пороги ударов и значения для салона работают так же, как на странице Адаптер автомобиля.
Проверка работы
Заголовок раздела «Проверка работы»- Нажмите Play, проедьте на машине и откройте консоль. Выполните
stat CrushformChaos. Появятся времена Chaos Adapter Wheel Contacts и Chaos Adapter Tyre Offsets. - Выполните
Crushform.Stats. После аварии строка вашей машины показывает счётчикhitsбольше 0. - Проедьте по полосе грязи. Колёса загрязнятся, а под колёсами появятся брызги от земли.
Консольные команды есть во всех сборках, кроме Shipping, и в редакторе.
Решение проблем
Заголовок раздела «Решение проблем»В логе написано, что владелец не является колёсным автомобилем Chaos, и адаптер не сообщает ни о каких колёсах
Заголовок раздела «В логе написано, что владелец не является колёсным автомобилем Chaos, и адаптер не сообщает ни о каких колёсах»Причина. Эктор не является AWheeledVehiclePawn с UChaosWheeledVehicleMovementComponent. Адаптер не находит компонент движения, из которого мог бы читать.
Решение. Сделайте родительским классом машины колёсную пешку с компонентом движения Chaos, как требует Быстрый старт. Обычный адаптер автомобиля используйте только для эктора, который не является автомобилем Chaos.
У колеса нет деформации шины и грязи на колесе
Заголовок раздела «У колеса нет деформации шины и грязи на колесе»Причина. Колесо представлено только костью. Адаптер находит меш колеса только как меш-компонент, прикреплённый к мешу машины у кости колеса, а у этого колеса такого компонента нет.
Решение. Прикрепите меш-компонент колеса к мешу машины, с костью колеса как сокетом.
Двигатель стоит на холостых, и показания остаются на холостых
Заголовок раздела «Двигатель стоит на холостых, и показания остаются на холостых»Причина. Обороты двигателя равны 0, пока компонент движения не симулирует двигатель. Тогда звук играет на холостых.
Решение. Проверьте, что двигатель машины симулируется и что настройка двигателя содержит холостой ход и максимальные обороты.
Машины других игроков звучат так, будто катятся накатом
Заголовок раздела «Машины других игроков звучат так, будто катятся накатом»Причина. Адаптер читает газ и тормоз с педалей локального водителя. У машины, которой управляет другой инстанс, эти педали дают 0, поэтому звук двигателя остаётся на громкости наката.
Решение. Это ожидаемое поведение адаптера Chaos. Чтобы слышать нагрузку на чужих машинах, переопределите GetEngineLoad в Blueprint-подклассе адаптера и отвечайте реплицированным газом вашей собственной машины.
