ПРОЦЕДУРНАЯ СИСТЕМА ЗВУКА ДВИГАТЕЛЯ
Полностью процедурная система звука двигателя, основанная на физическом моделировании внутреннего сгорания. Вместо использования заранее записанных семплов система математически вычисляет давление сгорания, события клапанов и пульсации выхлопа — затем сохраняет результаты в компактную 2D-волновую таблицу (wavetable) для эффективного воспроизведения в реальном времени.
Плагин принимает на вход RPM и положение дросселя от любого игрового движка или аудио-мидлвара и выдает непрерывный, бесшовный звук двигателя. Поддерживается любая конфигурация четырехтактного двигателя — при наличии реальных спецификаций (число цилиндров, порядок работы, диаметр цилиндра, ход поршня, тип коленвала) система способна воспроизвести акустическую сигнатуру практически любого серийного двигателя.
Разработано Александром Хилько как внутренний R&D-проект студии AK Audio на основе более семи лет исследований в области синтеза звука двигателей для игр с техникой.
Проблема
Традиционное игровое аудио двигателей опирается на заранее записанные семплы на фиксированных диапазонах RPM с кроссфейдом при воспроизведении. Такой подход требует дорогостоящих полевых записей, дает слышимые артефакты зацикливания на статичных оборотах и плохо масштабируется — для каждой новой единицы техники нужен новый набор записей.
Двигатели танков Второй мировой войны представляют особую сложность: они низкооборотистые, и заставить их держать стабильные обороты во время записи крайне трудно. Приходится постоянно бороться с исходным материалом.
Во время производства World of Tanks: HEAT некоторые единицы техники не удалось записать вовсе — локдауны COVID сделали полевые записи невозможными, а некоторые танки были недоступны по политическим или логистическим причинам. Мы ресинтезировали звуки двигателей с помощью аддитивного синтеза, смешивая их с имеющимся семпл-материалом. Например, американский M1 Abrams оснащен газотурбинным двигателем — очень характерным, который вполне поддается ресинтезу. Но даже тогда мы использовали результат как статичные семплы. У нас просто не было ресурсов, чтобы написать кастомный плагин-синтезатор реального времени для Wwise на тот момент.
Этот опыт подтвердил необходимость подхода на основе синтеза, способного генерировать любой звук двигателя исключительно на основе спецификаций — процедурно, в реальном времени, внутри любого аудио-мидлвара.
Как это работает
В основе лежит физическая модель четырехтактного двигателя внутреннего сгорания. Симуляция вычисляет:
Геометрию поршня — объем камеры, площадь сечения цилиндра, перемещение поршня — для получения мгновенного объема камеры сгорания при любом угле поворота коленвала.
Давление в цилиндре — динамику давления на протяжении всего четырехтактного цикла: впуск, сжатие, сгорание, выпуск.
События клапанов и пульсации выхлопа — моделирование открытия/закрытия клапанов и результирующей волны давления на выходе выхлопной трубы.
Выходной аудиосигнал представляет собой отклонение давления выхлопной трубы от атмосферного давления — то есть именно то, что физически слышит человек от реальной выхлопной трубы.
Все входные параметры берутся из открытых спецификаций двигателя: тип коленвала, порядок работы, число цилиндров, диаметр цилиндра, ход поршня и другие механические характеристики. Чем точнее исходные данные, тем точнее результирующий звук.
Поскольку вся система основана на математике и физике, при наличии полной спецификации двигателя теоретически можно воссоздать все что угодно. Система была протестирована на пяти различных конфигурациях двигателей с стабильными результатами — технология выглядит очень масштабируемой.
Оптимизация 2D Wavetable
Хотя физическая модель может работать в реальном времени на настольном CPU, игровое производство требует минимальных накладных расходов. Решение: предварительно вычислить полные циклы сгорания по двумерной сетке RPM × положение дросселя и сохранить их в компактную бинарную волновую таблицу.
Плотность дискретизации неравномерная — плотнее на низких RPM, где тональные изменения наиболее заметны, и реже на высоких RPM, где звук по природе более гладкий. Это было настроено эмпирически для оптимального соотношения качества к размеру.
Для двигателя Pontiac G8 полная высококачественная таблица занимает примерно 22 МБ — покрывая все диапазоны RPM и положения дросселя. В рантайме плагин интерполирует между предвычисленными циклами, обеспечивая физически точный звук при минимальных вычислительных затратах.
Полная аудиосистема техники
Синтезатор двигателя — это один компонент полной аудиосистемы техники, продемонстрированной в Unity с физическим контроллером VPP. Контроллер передает на удивление хорошие данные в Wwise — переходы дросселя, поведение под нагрузкой/без нагрузки, изменения RPM — все ощущается отзывчиво и реалистично.
Полная система включает несколько дополнительных слоев:
Конволюция выхлопа — сырой сигнал сгорания проходит через конволюционный этап с импульсной характеристикой, имитирующей акустику выхлопного тракта. Замена IR меняет характер выхлопа — тип глушителя, длину трубы, профиль резонанса. Некоторые процедурные решения моделируют звук математически через весь выхлопной тракт, но для модульной системы замена IR практичнее и гибче, чем замена всей матрицы двигателя.
Система столкновений — импульс удара измеряется в точках столкновения, нормализуется и мапится на интенсивность звука. Легкое касание — короткий удар. Сильное столкновение — более тяжелый, резонансный звук.
Аудио подвески — импульсы подвески модулируют выделенный звуковой слой пропорционально интенсивности неровности. Большая кочка — громче и выразительнее отклик.
Система шин / поверхностей — тип поверхности и скорость техники управляют переключением слоев для различных типов грунта.
Пространственная конволюция — кастомный конволюционный реверб обеспечивает окружающую акустику, заменяя встроенные реверб-плагины мидлвара для экономии на лицензионных расходах.
Производительность
Плагин синтезатора двигателя работает примерно на 5–6% CPU. Полная аудиосистема техники — двигатель, несколько конволюционных ревербов, столкновения, подвеска, шины — достигает пика около 8% CPU.
Оптимизация для NPC-техники пока не реализована и может существенно снизить стоимость на единицу техники. Подход на основе wavetable по своей природе легковесный — это интерполяция по таблице, а не симуляция в реальном времени — что делает его подходящим для проектов с большим количеством одновременной техники на экране.
Совместимость
Плагин воспроизведения wavetable может быть скомпилирован под любую целевую платформу и мидлвар:
Аудио-мидлвар: Wwise, FMOD Studio
Игровые движки: Unity, Unreal Engine
Инструменты звукового дизайна: REAPER (для тестирования, прототипирования и проектирования сценариев на основе огибающих)
Бинарный формат wavetable не зависит от движка. Одни и те же вычисленные данные двигателя работают на всех платформах без модификаций. При наличии полного набора спецификаций — конфигурация коленвала, порядок работы, число цилиндров, диаметр, ход поршня — новый двигатель можно вычислить и развернуть за несколько часов.
ИНТЕРЕСУЕТ КАСТОМНЫЙ ЗВУК ДВИГАТЕЛЯ ДЛЯ ВАШЕГО ПРОЕКТА?
Расскажите нам о вашем парке техники, мидлваре и пайплайне доставки — мы обсудим, как эта система может вписаться в ваше производство.


