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

ПОВЕРХНОСТИFX И ЗВУК КАЧЕНИЯ

FX и звук качения

Шина на гравии звучит как гравий, на грязи разбрызгивает грязь, а на снегу издаёт собственное шипение. Плагин проигрывает звук качения каждого колеса и показывает его эффект качения по поверхности под этим колесом. Звук и эффект усиливаются со скоростью, а торможение заставляет эффект разбрасывать сильнее. На этой странице описано, как они следуют за грунтом, как их настроить и как добавить свою поверхность.

Rolling Sound
Rolling Sound
AttenuationSA_CF_TireRolling
Sound ClassNone
Priority0.1
Speed Parameter NameSpeed
Tuning
Cabin Volume Scale0.8
Cabin Low Pass Frequency3000.0 Hz
Rolling FX
Rolling FX
FX Intensity ParameterIntensity
FX Tuning
Группы Rolling Sound и Rolling FX в настройках проекта, в разделе Plugins > Crushform Wheels.

У каждого колеса есть свой звук качения и свой эффект качения. Каждый из них следует за поверхностью под колесом и нарастает по мере ускорения колеса. Звук — это петля звука качения поверхности, а эффект — её система Niagara. Оба существуют только для отображения: они проигрываются на каждом инстансе, который отрисовывает автомобиль, а выделенный сервер не проигрывает ни то ни другое.

Седан тормозит на полосе MUD, за колёсами поднимается коричневое облако грязи, а на боку налипла свежая грязь.
Торможение на полосе MUD: эффект качения грязи разбрасывает её за колёсами.
  • Два компонента. UCFRollingAudioComponent проигрывает звук качения, а UCFRollingFXComponent показывает эффект. Адаптер автомобиля создаёт их под флагами Rolling Sound и Rolling FX. Каждый из них читает колёса с host-объекта автомобиля и работает поколёсно.
  • Звук на каждом колесе. У каждого колеса есть голос, который следует за звуком качения поверхности под ним и перетекает на новый звук, когда эта поверхность удерживается под колесом в течение Surface Hold Time. Громкость нарастает линейно от Min Audible Speed KPH до Full Volume Speed KPH, а высота тона растёт от Pitch at Min Speed до Pitch at Full Speed на скорости Full Pitch Speed KPH. Небольшое случайное смещение высоты не даёт одинаковым колёсам звучать в фазе.
  • Слышимость. Колесо молчит, если слушатель не находится в пределах действия затухания, поэтому далёкий автомобиль остаётся тихим.
  • Эффект на каждом колесе. Эффект — это система Niagara, по одной на колесо, которую берут из строки поверхности. Её интенсивность — скорость колеса или автомобиля, делённая на Full Intensity Speed KPH, но не больше 1, умноженная на Brake Boost, пока колесо тормозит. Торможение, задаваемое через SetBraking, поднимает её выше 1, но не выше этого усиления.
  • Засыпание. Все эффекты автомобиля останавливаются, пока и кузов, и самое быстрое стоящее на земле колесо медленнее Sleep Speed KPH. Автомобиль, застрявший в грязи, сохраняет свой эффект, потому что его буксующее колесо быстрое.
  • Салон. SetCabinMuffled на адаптере приглушает звук качения для слушателя внутри салона: громкость умножается на Cabin Volume Scale, а фильтр нижних частот срезает всё выше Cabin Low Pass Frequency. Тот же вызов приглушает звук двигателя, если у адаптера он есть; об этом рассказано на странице Звук двигателя. Никто не вызывает его за вас, поэтому игра сообщает адаптеру, когда слушатель находится в салоне.
  • Настройки. Значения по умолчанию для всех автомобилей находятся в Project Settings > Plugins > Crushform Wheels. Автомобиль может переопределить настройки звука и эффекта на своём адаптере или на самом компоненте.
  1. В Project Settings > Plugins > Crushform Wheels поставьте галочку у Attenuation. По умолчанию это SA_CF_TireRolling. Задайте Sound Class, если он у вас есть. Оставьте поле пустым, чтобы использовать класс по умолчанию.
  2. В таблице поверхностей задайте каждой строке Rolling Sound и Rolling FX. Звук должен быть зацикленным ассетом (см. раздел «Устранение неполадок»). О таблице подробнее написано на странице Колёса и поверхности.
  3. На адаптере автомобиля поставьте галочки Rolling Sound и Rolling FX. Обе включены по умолчанию.
  4. Чтобы сделать свой эффект, создайте систему Niagara с пользовательским параметром типа float Intensity, который является значением проекта по умолчанию. Задайте её как Rolling FX в строке. Если параметр называется иначе, задайте Rolling FX Intensity Parameter в этой строке равным его имени.
  5. Чтобы настроить отдельный автомобиль, поставьте галочку Override Rolling Sound Tuning или Override Rolling FX Tuning на его адаптере и задайте значения там.

Тормозите из Blueprint через Set Braking адаптера, значением от 0 до 1. Приглушайте салон через Set Cabin Muffled, когда слушатель садится в машину или выходит из неё. График ниже выполняется, когда срабатывает пользовательское событие SetCabinState, приглушает салон и затем выставляет тормоз на полную величину.

График выполняется, когда срабатывает пользовательское событие SetCabinState, приглушает салон и затем выставляет тормоз на полную величину.

Из C++ вызовите те же две функции на адаптере. Для вызовов нужен модуль CrushformVehicle (CFVehicleAdapterComponent.h), который добавьте в PublicDependencyModuleNames в Build.cs вашего модуля.

Adapter->SetBraking(0.8f);
Adapter->SetCabinMuffled(bInCabin);

SetCabinMuffled берёт значения салона из Crushform Wheels (для колёс) и Crushform Engine (для двигателя). Поставьте галочку Override Cabin Muffling на адаптере, чтобы для обоих использовались его собственные Cabin Volume Scale и Cabin Low Pass Frequency.

СвойствоЧто делаетПо умолчанию
UCFWheelSettings::bRollingSoundГлавный выключатель звука качения. Выключен — ни одно колесо его не проигрывает.true
UCFWheelSettings::AttenuationЗатухание каждого звука качения. Пусто — и звук остаётся выключенным./Crushform/Sounds/SA_CF_TireRolling
UCFWheelSettings::SpeedParameterNameFloat-параметр звука, который принимает скорость в км/ч. None — и скорость не передаётся.Speed
FCFRollingAudioTuning::FullVolumeSpeedKPHСкорость колеса, на которой звук достигает полной громкости, в км/ч.50
FCFRollingAudioTuning::SurfaceHoldTimeСекунды, которые новая поверхность должна удерживаться под колесом, прежде чем звук перетечёт на неё.0.15
UCFWheelSettings::CabinVolumeScaleМножитель громкости звука, слышимого из салона.0.8
UCFWheelSettings::CabinLowPassFrequencyЧастота среза фильтра нижних частот для звука, слышимого из салона, в Гц.3000
UCFWheelSettings::bRollingFXГлавный выключатель эффекта качения. Выключен — ни одно колесо его не показывает.true
UCFWheelSettings::FXIntensityParameterFloat-параметр, который принимает интенсивность колеса, для строки, которая его не называет.Intensity
FCFRollingFXTuning::FullIntensitySpeedKPHСкорость, на которой эффект достигает полной интенсивности, в км/ч.40
FCFRollingFXTuning::BrakeBoostМножитель интенсивности при торможении.2
FCFRollingFXTuning::SleepSpeedKPHСкорость, ниже которой останавливаются все эффекты автомобиля, в км/ч. 0 — эффекты никогда не засыпают.1

Запустите Lvl_ProvingGround и проведите седан с полосы ASPHALT на полосы DIRT, MUD и SNOW. Звук качения меняется на каждой поверхности, а каждое колесо показывает эффект поверхности под ним. Затормозите резко на полосе DIRT. Эффект разбрасывает сильнее, пока включены тормоза. Выполните stat CrushformWheel, чтобы вывести статистику компонентов колёс.

Причина. Звук отключают три вещи. Rolling Sound выключен на адаптере или в Crushform Wheels. Attenuation пусто, и плагин пишет об этом, когда компонент начинает играть:

%s: no Attenuation in Project Settings > Plugins > Crushform Wheels; the rolling sound stays off

Звук также молчит на выделенном сервере.

Решение. Поставьте галочку Rolling Sound на адаптере, задайте Attenuation в Crushform Wheels и проверяйте на клиенте или на слушающем сервере.

Причина. Колесо проигрывает звук, только пока слушатель находится в пределах максимальной дистанции затухания. Так задумано, чтобы далёкий автомобиль ничего не стоил.

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

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

%s: rolling sound '%s' is not looping - it will cut out between restarts. Set bLooping on the asset.

Решение. Задайте Looping на звуковом ассете.

Поверхность издаёт звук, но не показывает эффекта

Заголовок раздела «Поверхность издаёт звук, но не показывает эффекта»

Причина. Поле Rolling FX в строке пусто или не является системой Niagara. Колесо на такой строке останавливает свой эффект.

Решение. Укажите в Rolling FX этой строки систему Niagara, например NS_CF_Rolling_Mud.

Эффекты останавливаются, пока машина ползёт

Заголовок раздела «Эффекты останавливаются, пока машина ползёт»

Причина. Эффекты засыпают, пока и кузов, и самое быстрое стоящее на земле колесо медленнее Sleep Speed KPH, которая по умолчанию равна 1 км/ч.

Решение. Уменьшите Sleep Speed KPH в настройках или задайте 0, чтобы эффекты никогда не засыпали.