ПОВЕРХНОСТИFX И ЗВУК КАЧЕНИЯ
FX и звук качения
Шина на гравии звучит как гравий, на грязи разбрызгивает грязь, а на снегу издаёт собственное шипение. Плагин проигрывает звук качения каждого колеса и показывает его эффект качения по поверхности под этим колесом. Звук и эффект усиливаются со скоростью, а торможение заставляет эффект разбрасывать сильнее. На этой странице описано, как они следуют за грунтом, как их настроить и как добавить свою поверхность.
| Rolling Sound | ||
|---|---|---|
| Rolling Sound | ||
| Attenuation | SA_CF_TireRolling | |
| Sound Class | None | |
| Priority | 0.1 | |
| Speed Parameter Name | Speed | |
| Tuning | ||
| Cabin Volume Scale | ||
| Cabin Low Pass Frequency | 3000.0 Hz | |
| Rolling FX | ||
| Rolling FX | ||
| FX Intensity Parameter | Intensity | |
| FX Tuning | ||
Что это делает
Заголовок раздела «Что это делает»У каждого колеса есть свой звук качения и свой эффект качения. Каждый из них следует за поверхностью под колесом и нарастает по мере ускорения колеса. Звук — это петля звука качения поверхности, а эффект — её система Niagara. Оба существуют только для отображения: они проигрываются на каждом инстансе, который отрисовывает автомобиль, а выделенный сервер не проигрывает ни то ни другое.
Как это работает
Заголовок раздела «Как это работает»- Два компонента.
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. Автомобиль может переопределить настройки звука и эффекта на своём адаптере или на самом компоненте.
Настройка
Заголовок раздела «Настройка»- В Project Settings > Plugins > Crushform Wheels поставьте галочку у Attenuation. По умолчанию это
SA_CF_TireRolling. Задайте Sound Class, если он у вас есть. Оставьте поле пустым, чтобы использовать класс по умолчанию. - В таблице поверхностей задайте каждой строке Rolling Sound и Rolling FX. Звук должен быть зацикленным ассетом (см. раздел «Устранение неполадок»). О таблице подробнее написано на странице Колёса и поверхности.
- На адаптере автомобиля поставьте галочки Rolling Sound и Rolling FX. Обе включены по умолчанию.
- Чтобы сделать свой эффект, создайте систему Niagara с пользовательским параметром типа float
Intensity, который является значением проекта по умолчанию. Задайте её как Rolling FX в строке. Если параметр называется иначе, задайте Rolling FX Intensity Parameter в этой строке равным его имени. - Чтобы настроить отдельный автомобиль, поставьте галочку Override Rolling Sound Tuning или Override Rolling FX Tuning на его адаптере и задайте значения там.
Использование
Заголовок раздела «Использование»Тормозите из Blueprint через Set Braking адаптера, значением от 0 до 1. Приглушайте салон через Set Cabin Muffled, когда слушатель садится в машину или выходит из неё. График ниже выполняется, когда срабатывает пользовательское событие 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::SpeedParameterName | Float-параметр звука, который принимает скорость в км/ч. None — и скорость не передаётся. | Speed |
FCFRollingAudioTuning::FullVolumeSpeedKPH | Скорость колеса, на которой звук достигает полной громкости, в км/ч. | 50 |
FCFRollingAudioTuning::SurfaceHoldTime | Секунды, которые новая поверхность должна удерживаться под колесом, прежде чем звук перетечёт на неё. | 0.15 |
UCFWheelSettings::CabinVolumeScale | Множитель громкости звука, слышимого из салона. | 0.8 |
UCFWheelSettings::CabinLowPassFrequency | Частота среза фильтра нижних частот для звука, слышимого из салона, в Гц. | 3000 |
UCFWheelSettings::bRollingFX | Главный выключатель эффекта качения. Выключен — ни одно колесо его не показывает. | true |
UCFWheelSettings::FXIntensityParameter | Float-параметр, который принимает интенсивность колеса, для строки, которая его не называет. | 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, чтобы эффекты никогда не засыпали.
