Хилько о звуке для взрослых
894 subscribers
57 photos
196 videos
1 file
236 links
Я саунд-дизайнер, композитор, руководитель студии саунд-дизайна и основатель школы игрового звука. Мне 41 год. А это мой личный блог.
https://хилько.рф/
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
Недавно, подбирая звук костра для сцены, я обратил внимание, что один звук хорошо (приятно) звучит в общей картинке микса, а другой нет. Сложно объяснить на пальцах, как это чувствуется - просто внутренне я ощущаю, что именно вот этот звук прям хорошо подходит, а другой - не очень. У меня зародилась мысль: а как, блин, померить сочетаемость нетональных звуков? Я уже раньше рассказывал, что есть математика для измерения диссонансов - даже посчитал, какой аккорд самый диссонансный. Если вдруг вы увернулись от этого задротства, то рекомендую посмотреть это видео. Но вот чтобы посчитать сочетаемость нетональных звуков - я такого не встречал. Определённо это можно посчитать, ведь наш мозг одинаково распознаёт как тональные, так и нетональные звуки (они отличаются своей периодичностью и частотным распределением), но я не встречал каких-то конкретных исследований на этот счёт.

Но моя исследовательская натура требовала того, что это определённо нужно сделать. Я пошёл искать, какие вообще существуют исследования на тему нетональных звуков, их восприятия людьми и так далее.

И в результате я нашёл следующее:
- Мы определённо можем посчитать спектральное сходство двух сигналов по определённым полосам.
- Мы можем взвесить сходство именно в наиболее "важных" для нашей базилярной мембраны (часть внутреннего уха, отвечающая за распознавание частотных диапазонов) в полосах частот.
- Мы можем сравнить динамическую составляющую двух сигналов, разбив сигнал на диапазоны и измерив их психоакустическую сопоставимость.
- Можем рассчитать такой параметр, как roughness (шероховатость, наверное, так это можно перевести) - это когда частоты расположены близко друг к другу на определённом удалении и вызывают диссонансное биение звука.

В общем, есть возможность математически посчитать отношение звуков, но чтобы понять, что делать с этими цифрами, нужно всё равно сидеть и слушать.

Для этого я написал JSFX-плагин для Reaper, который слушает мастер-микс и сравнивает его со звуком определённой дорожки (решается это простым роутингом). В результате у нас получается целый набор метрик:
- Bark overlap - насколько схожи по спектру звуки в психоакустических полосах
- Weighted overlap - то же самое, но с учётом "важности" полос для уха
- Mask A→B и mask B→A - насколько звуки маскируют друг друга
- Mask sym - среднее значение маскировки двух сигналов
- Spec cosine - косинусная схожесть двух векторов
- Flatness A / B - геометрическое/арифметическое по bark-энергии
- Flatness proximity - упрощённая похожесть (1 - оба либо шумы, либо оба тональные; 0 - по характеру не совпадают)
- Sethares compat - спектральный диссонанс по Сетаресу, о котором я говорил в прошлых видео

Я решил проверить все эти данные. Взял звук близкой речки с птицами + ветер + звук костра и сравнил с записью фортепиано. По логике, все эти звуки нам должны нравиться, но как интерпретировать цифры, я пока не понял. Возможно, смотря запись, кто-то из вас подскажет, куда далее двигаться.

Но у меня в любом случае есть ответ заранее: нечего пытаться измерить человеческие эмоции. Человек - слишком сложная система, и пытаясь горделиво "посчитать", мы всего лишь обманываемся. Но я всё-таки попробую.
1511
LinkedIn (соцсеть для "профессионалов") всегда меня поражала множеством высокоэффективных (это слово я использую в нарицательном значении) людей, которые занимаются доказыванием друг другу, что они профессионалы. Поздравляют друг друга с работой или сертификатиками, делают очень, как им кажется, серьёзные публикации в ленте. Ну вот если представить себе школьников, которые пытаются друг на друга произвести впечатление - это похоже на мою ленту LinkedIn, кроме тех случаев, когда там выкладывают всякий офигенчик мои коллеги. Но количество офигенчика стремится к минимуму за всем остальным шумом.

Меня всегда смешил западный подход к нетворкингу: добавляются к вам и сразу шлют заготовленное сообщение. Причем сейчас это стало прямо плохо получаться - вместо прелюдии просто шлют полотно со ссылками на себя хорошего.

Но недавно появился новый тип "специалистов". В этом месяце ко мне добавился "англоязычный" товарищ с русским именем и фамилией. И пишет мне: "Давай пообщаемся, Александр. Может быть на следующей неделе?". У обычного человека мозг начинает здесь сбоить. Я отвечаю: "Да, ок. Давай." (мы общаемся по-английски). Спустя несколько недель пишет:
"Готов пообщаться сегодня. У тебя есть какое-нибудь портфолио, которое я могу посмотреть? Музыкальные системы и диалоговые системы интересны более всего". Я офигел с такого подхода - ни минуты, потраченной впустую, сразу по делу. Нифига, думаю, какой интересный товарищ. Далее он заявляет: "Я доступен для общения сегодня до 11 часов PST".

В пересказе я не убирал приветствия, не сокращал общение. Просто такой чувак заходит с ноги: Так, у меня есть пять минут - удиви меня. То есть это дешёвая пародия на "elevator pitch": когда к вам напрашиваются и пытаются навязать, что вам нужно кого-то в чём-то убедить, пока поднимается воображаемый лифт.

Я замечаю в людях, которые ярко имитируют эффективность, что им нужно чем-то мериться друг с другом. Так как реальные доказательства своей офигенности есть не у всех, нужно мериться тем, что доступно. А это демонстрация занятости. Также поступают эйчарки обоих полов, когда вдумчиво ищут в своём расписании "слот, чтобы созвониться". И чем более заполненный календарь, тем более они считают себя профессионалами.

Я считаю, что если ваш календарь заполнен - то вы себе не принадлежите. Самое драгоценное, что у вас есть - это время. Всем отведён определённый отрезок времени - жизнь. Кто-то его меняет выгоднее, а кто-то нет. Но когда ваше время принадлежит другим, это точно показатель не профессионализма, а наоборот, насколько глубоко вам загнали дрын. Насколько сильно вы принадлежите другим людям.

Насмотревшись интервью всяких эффективных людей (сейчас не снимает интервью только ленивый), они стараются подражать поведению, которое транслируют интервьюируемые. По сути, нужно же людям показать, что за успехом и мастерством не труд и 10 000 часов, а какая-то уникальная техника, позволяющая быть сверхэффективными.

У Пелевина есть хорошая фраза: «Ничто так не выдаёт принадлежность человека к низшим классам общества, как способность разбираться в дорогих часах и автомобилях». Я бы её дополнил словами, что ещё - знание и подражание всяким "эффективным" техникам.
28108
Media is too big
VIEW IN TELEGRAM
К этому тексту меня подтолкнул комментарий моего друга: он поиграл в недавно вышедшую хитовую игру Escape From Duckov и сказал: «Очень шкодная и залипательная. Но, блин, саунд-дизайн просто никакой». В такие моменты я всегда настораживаюсь: если не аудиодизайнер говорит, что звук плохой, значит, там действительно что-то выбивается из восприятия. Мне стало интересно разобраться, что именно слышат люди, которые не связаны с игровым звуком, и почему у них складывается впечатление,что звук бедный и несбалансированный.

Я прошёл небольшой туториал, сделал пару каток - и картина довольно быстро сложилась. Первое ощущение - звук очень бедный, без текстуры. Базовые механики озвучены, то есть звуки инпутов (реакции на нажатия), но у них почти нет деталей и текстурности. Из-за этого весь звук воспринимается как плоский фон.

Хорошая аналогия: это как сфотографироваться на фоне картинки с водопадом, напечатанной на плохом принтере. Формально водопад «есть», но глубины нет. В игре получилось также - окружение сделано в один слой, без дополнительных элементов, без вторичных эмбиентных слоёв, без микродеталей, которые создают ощущение живого мира. Когда и окружение, и основные игровые механики звучат в один слой, слухом вообще не за что зацепиться. Звук вроде есть, но ценности игре он не придаёт.

В Escape From Duckov очень легко заметить, что шаги собраны из небольшого набора вариаций - условно 5-6 сэмплов, которые просто воспроизводятся рандомом. Обычно 5-10 вариаций одной поверхности - норма, но чтобы они звучали натурально (не вырезанными из контекста), всё должно смешиваться с другими системами игры. То есть проблема не в количестве сэмплов, а в том, что сами шаги тоже однослойные: нет подмешанной экипировки, нет мелкой текстуры одежды, нет читаемой смены поверхностей. Поэтому мозг быстро распознаёт паттерн - и всё, погружение развалилось.

Самая большая техническая проблема в звуке этой игры - это настройки аттенюации (как звук ведёт себя на расстоянии - как становится тише). На выстрелах это слышно лучше всего. Когда противник стреляет где-то в стороне от игрока, мы слышим тот же самый звук выстрела, что и у персонажа, только чуть тише и спозиционированный в сторону противника. И в этот момент мы теряемся: звук звучит достаточно громко и близко, а персонажа мы не видим.

Для оружия можно было бы собирать звук из двух основных частей:
1. Ближний слой - сам взрыв пороховых газов, атака, тело выстрела.
2. Эхо-хвост - эхо от пространства.

Чем дальше стреляет противник, тем меньше мы слышим ближний взрыв и тем больше - хвост. Даже если просто пропорционально смешивать эти два слоя в зависимости от дистанции до источника, уже получается более правильная и реалистичная картина. Игрок по одному только характеру выстрела понимает: «ага, он далеко».

На базе у нас стоит условный «граммофон», который крутит плейлист smooth jazz. И вот здесь слышно, что музыка просто наложена поверх общей звуковой картины и играет слишком громко относительно звуков игры. Можно было бы добавить два типа музыкальных тем:
1. Первый тип - это предзаписанные или интерактивные саундтреки с лейтмотивами, которые относятся к игре или к конкретным локациям: город, деревня, пещера.
2. Второй тип - это дроны (тягучие тональные элементы), которые не лезут вперёд, а поддерживают настроение: расслабление, тревогу, подготовку к бою. Это то, что часто делают в триллерах и хоррор-играх: музыка как бы есть, но она не конфликтует с другими звуками.

Если бы в Escape From Duckov музыка была собрана по такой схеме - мир по звуку стал бы богаче и передавал эмоции.
Ещё одна важная часть в таких играх - это как располагается листенер. Листенер - это наш условный микрофон в игре, через который мы слышим мир. Например, реальный мир мы слышим через уши - листенер в голове. В игре от позиции листенера зависят дистанции, громкости и то, как вообще считается кривая аттенюации.
41
начало

Сложность начинается, когда враги или объекты находятся за пределами экрана. У нас сверху экрана одно реальное расстояние, сбоку - другое. Если просто тупо считать дистанцию до точки, то звук справа и звук сверху будут вести себя по-разному, хотя для игрока это всё «за кадром». Отсюда ощущение странной громкости и «не там звучит». Есть рабочие подходы, как это решать. Я в своё время как раз разбирал похожую задачу в видео про screen space attenuation - ею пользуются игры вроде Diablo. Ровно такой подход подошёл бы и для Escape From Duckov.

Если собрать всё, что выше, в чек-лист, то для этой игры я бы сделал так:
- добавить текстурность к существующим эффектам (к шагам - шорох экипировки, лёгкий шум одежды/пёрышек героя, смена поверхностей);
- настроить по дистанции звуки врагов, особенно выстрелы - через два слоя и бленд;
- настроить фильтрацию на средней и дальней дистанции, чтобы у игрока считывалась дистанция до противника;
- настроить общий микс: баланс звуков окружения, звуков основных геймплейных механик и музыки;
проверить и донастроить позицию листенера и поведение звуков за экраном;
- ввести два типа музыкальных композиций (лейтмотивные и дроновые) вместо простого плейлиста.

У разработчиков получилась интересная, фановая игра. Но из-за того, что она бедно и несбалансированно звучит, для меня её мир не становится по-настоящему погружающим. Мне не хочется находиться там долго, потому что меня всё время чуть-чуть отвлекает несуразность звука: то шаги повторяются, то враг звучит слишком близко, то музыка не в тему.
751
This media is not supported in your browser
VIEW IN TELEGRAM
У моей младшей дочки появилась новая абилка - без повода генерировать крик (не плач, а просто звук), от которого просто невозможно увернуться или спрятаться. Какое-то время я пытался себе внушить, что это прекрасный голосок моей любимой булочки, но нет - это просто какая-то пытка. То есть если выдаётся минута без крика - начинаешь слышать тишину!

Вот сегодня с утра я на телефон записал фрагмент и решил проанализировать, почему так сильно режет уши.
Самое первое, что пришло в голову, - просто проанализировать спектр (на видео 00:08). И вот сразу видно, что основная энергия крика распределяется по самой чувствительной полосе частот ушей (у меня есть данные измерения ушей у сурдолога). Да и кривые Флетчера-Менсона подтверждают, что на уровне 75-80 дБ (я померил громкость крика Loudness Meter) от 2 до 6 кГц мы очень чувствительны. (Кстати, к этому диапазону частот мы чувствительны на любой громкости.)
Спектральный анализ подтверждает, что самые громкие гармоники - в диапазоне 3100-5460 Гц.

Но я захотел глубже изучить и проанализировать психоакустику бесящих звуков. Нашёл более 10 исследований на тему восприятия неприятных звуков, таких как скрип мела о школьную доску и прочее. Существуют несколько базовых математических решений:
1. Модель Цвикера, где индекс неприятности PA считается по громкости (N5), резкости, модуляциям (флуктуации/шероховатость) и тональности.
2. Эмпирические модели, которые по объективным признакам предсказывают Mean Annoyance (MA) - среднюю оценку раздражительности по шкале 0-10.
3. Интегральные индексы EEG-неприятности.
4. Спектро-темпоральная модель неприятности - многомерный регрессионный анализ по аудиторной спектро-темпоральной карте.

Все эти модели описывают, насколько звук вызывает неприятное ощущение. Хотя, казалось бы, мы и так слышим, что нам неприятно.

Я решил пойти дальше и запихнуть в плагин расчёт звука на основе этих моделей. В Reaper меня уже не первый раз выручает возможность писать плагины JSFX.

В итоге я написал плагин "Анализатор раздражительности звука" (на видео 00:35), который буферизует фрагмент аудио, раскладывает его на составляющие:
- насколько громко,
- много ли режущих высоких частот,
- как сильно звук дрожит или пульсирует,
- есть ли неприятный писк.

Дальше плагин считает индекс PA по Цвикеру + Mean Annoyance и добавляет упрощённый индекс по Кумару, который специально отслеживает пульсирующую энергию в полосе 2.5-5.5 кГц. Эти два индекса я свожу в итоговую шкалу от 0 (приятно) до 100 (залейте уши воском).

Самое прикольное, что плагин реально рассчитывает бесячесть. В видео заметно, что я сравнивал коэффициент бесячести для приятных и неприятных звуков, и цифры примерно подтверждают это.

Итоговый вывод: моя дочка кричит с таким же коэффициентом mean annoyance, что и скрип металла. Поздравляю её - отличный результат!
3291
Те, кто начали меня читать недавно, возможно, не слышали про моё увлечение электроникой. Ранее я публиковал свои проекты: звонок здорового человека, контроллер 1, контроллер 2, начало разработки консоли и другие проекты.

С появлением младшей моя страсть к созданию чего-то нового как-то подостыла. Но последние месяцы у меня нарастал внутренний зуд, мне хотелось что-то проектировать, создавать, дизайнить. Немного утихомирить это внутреннее давление на время удавалось разработкой всяких инструментов для работы (вот здесь собрал свои некоторые наработки). Но напряжение всё росло. Появилась потребность в выходные полностью перекалибровать свои 3D-принтеры, чтобы что-то поделать руками и головой. На время отпустило, но теперь снова зудит.

Решил поделиться с другом своими мыслями, рассказал, что у меня есть постоянно растущая потребность, но я себя торможу, так как любой из «здравомыслящих» людей должен обосновать себе вложения времени. Я уже успел понять, что там бездна всего, что нужно изучать, и я могу там погрязнуть, а моё время должно приносить ресурс. Возможно, понадобятся тысячи часов! В общем, обычная проблема обычного человека.

На что Волков мне сказал, что то, что я испытываю, - это моя внутренняя нейронка, которая настойчиво твердит: делай это, это инвестиционная рекомендация, тебе нужно этим заняться. А я, пытаясь всё рационализировать, отмахиваюсь и пытаюсь отложить это на потом, когда, возможно, мне это уже будет не нужно.

Действовать надо прямо сейчас, и, глуша эту потребность маленькими крошками, точно счастливее не стану. Дальше внутренний голос будет нарастать, и гасить желание будет всё сложнее.

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

Позже Антон предложил мне разработать для него устройство smart knob, которое он хочет разместить в каждой комнате Башни Сборки. Ох, как же меня это вдохновило! Теперь внутренних обоснований было достаточно - есть коммерческий проект, в который можно вкладывать душу, проводить RND и реализовать свою внутреннюю потребность. Теперь всё входит в гармонию. Немногие меня могут вдохновить, но у Антона получилось.

Если у вас есть внутренний зуд, но вы себе не позволяете заняться чем-то, потому что объективные обстоятельства, я вам желаю своего Волкова!
1933
Media is too big
VIEW IN TELEGRAM
В очередной раз мы с Майей встретились, чтобы провести вдумчивый разбор Monument Valley 3 - игры, в которой всё звучит в одной тональности, и это замечают даже не музыканты. Мы попытались разобраться, как это работает, и подготовили подробный анализ на Спонсоре: https://sponsr.ru/xssracademy/124224.

В тексте:
- Почему Monument Valley 3 - это идеальный референс для любой медитативной игры и как звук здесь становится музыкальной метафорой визуала, а не просто «качественным саунд-дизайном».

- Детальный разбор главной фишки: всё в игре звучит в одной тональности - от шагов персонажа до поворотов уровня. Как реализована музыкальная логика геймплея с конкретными примерами из уровней «Искусство Оригата» и «Прелюдия».

- Практический анализ звуковой архитектуры через Wwise: как устроены Nav pings, Rotator, switch-системы и тональные подложки, используя мою методику автоматической распаковки банков для изучения звуковых решений.

- Ключевые приёмы для будущих проектов: работа с частотным балансом, vinyl crackles как стилистическое решение, эффект "диджейского кроссфейдера" при поворотах элементов и почему отсутствие тональности = отсутствие цвета в мире игры.

- Философия подхода: как через игровую механику приобщать детей к музыке, делая её естественной частью взаимодействия, а не академической дисциплиной.

Также я показываю workflow по извлечению и анализу звуковых файлов из игры через BNK → WEM → WAV с последующей визуализацией в Reaper.
541
Каждому из нас нужны не просто тёплые слова «Ты сможешь, ты справишься», а поддержка действием. Такую поддержку я называю активной.

При изучении новой профессии, получении новых знаний каждый чувствовал, что хочет поддержки от окружающих (а не слов: «Да ты этой фигнёй на жизнь не заработаешь!»). И я уверен, что некоторые ломаются на том, что им просто не хватает заряда доехать до какого-то значимого результата. Даже слова окружающих могут мотивировать двигаться дальше. Например, когда люди, которые разбираются в вопросе, говорят: «А у тебя талант, очень классно получилось». Такое поглаживание прекрасно работает какое-то время.

По сути, поддержать словом - это пассивная поддержка. Она тоже работает, но это скорее лёгкий заменитель активной.

А вот когда тебя не просто хвалят или поглаживают словом, а берут и, жертвуя своим временем, реально помогают, то это уже активная поддержка.

Не стоит путать это с ситуацией, когда друг бесплатно отремонтировал вам велосипед или чайник. Или когда бесплатно помогает с вами на даче перекладывать крышу. Это не поддержка, а использование друга паразитным образом.
А вот когда ваш близкий говорит: «У тебя отлично получается, я сейчас позвоню профессору, он поможет сделать расчёты для твоего изобретения» - вот это активная поддержка.

Но самый достойный уровень веры в близкого человека - это поддержка рублём.

Например, вы открыли кофейню, и ваши друзья часто приходят к вам и за фул-прайс покупают ваш прекрасный кофе. Или вы пишете книгу, а друзья идут на ЛитРес, покупают вашу книгу и читают её. Вот такой поддержки не хватает многим. Чтобы поддержать друзей, которые делают мероприятие, нужно прийти и заплатить за билет, потому что вы верите, это крутое мероприятие, и хотите поддержать друзей рублём. Почему-то окружающие знакомые считают, что лучшей поддержкой в таком случае будет позвонить вам и напроситься бесплатно, потому что «лучшая поддержка - это их лицо на мероприятии». А ещё и для девушки будут просить проходку. Это истории из моего прошлого, когда я организовывал мероприятия.

Если у вас есть рядом близкий, который нуждается в поддержке, - поддержите не только словами (они тоже важны), а проголосуйте за него рублём.

P.S. Тут подумалось, что лайк это самый примитивный вид поддержки. И вообще не у верен, поддержка ли он. Лучше пишите слова.
23165
На днях вышла пятая книга аудиопрограммиста и технического саунд-дизайнера Гая Сомберга "Game Audio Programming 5". Книги из серии я упоминал в своём видео про виртуальные эмиттеры звука и про аттенюацию по экрану.

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

Ну вот, например, открываю оглавление пятой книги, выбираю главу "Transient-Driven Events from Game Parameters", начинаю читать абзац:
When you think about it, a simulation-type game parameter is updated synchronously just like a PCM sample. Te diference is the sample rate – in this case 240 samples per second rather than 48000 – which then accumulate into each 60 fps game update. Aside from that, though, these types of game parameters are time-based signals. My thinking was that I could apply some light signal processing to some of them, inferring the event I wanted to capture. In this case, I could also query the damage to any car component, so why not monitor the components that were likely to sufer in a crash?

И понимаю, что хочу такое же повторить у себя.

Книги серии Game Audio Programming - это прям кладезь технических решений. Единственное, так как это не художественная литература, у меня получается осваивать её, только когда повторяю руками технические задачи.

Ещё впереди меня ждёт интересная глава: "Creating Impulse Responses for Virtual Environments" - где разбирают математику и код генерации импульсов игрового пространства, а ещё "An Overview of Game Acoustics" - в ней раскрывается физика и математика окклюзии и дифракции звука.

В общем, настоятельно рекомендую к прочтению: https://www.routledge.com/Game-Audio-Programming-5-Principles-and-Practices/Somberg/p/book/9781032852850
1752
Media is too big
VIEW IN TELEGRAM
Друзья, через 2 недели стартую свой первый поток «Работа со звуком в Unreal Engine 5».

Чтобы показать, как озвучиваются игры, мы создали свою мини-игру на Unreal Engine:

- написали сценарий,
- взяли Death Stranding в качестве референса,
- добавили карту и персонажей,
- сделали саунд-дизайн,
- создали интерактивную музыку,
- написали звуковые подсистемы

и на практике будем показывать, как озвучивается игра в UE5 с помощью Metasounds.

Со мной будет преподавать Лёша Иванин, с которым мы трудимся в AK Audio.

Темы занятий можно посмотреть здесь: https://xssracademy.com/ue-promo
1032
This media is not supported in your browser
VIEW IN TELEGRAM
Чтобы персонаж в игре издавал звуки при ходьбе, используют несколько способов. Самый популярный - запуск звука из анимации движения персонажа. Берём, открываем анимацию (а таких анимаций может быть штук 100-200) и в момент, когда нога персонажа касается земли, нужно выставить маркер, который будет запускать звук. Есть анимации, в которых 6-10 шагов. Получается, нужно сидеть целый день и проставлять маркеры - обезьянья работа.

Нет ничего более весёлого, чем решить простую задачу сложным способом. По-моему, это называется оверинжинирингом. Вот таким сложновыдуманным способом я решил задачу расстановки AnimNotify в UE для движения персонажа. Меня угнетала сама мысль расставлять целый день нотифаи (маркеры запуска звука), поэтому я потратил два дня и собрал себе систему, которая за меня точно в нужный момент устанавливает AnimNotify в выбранных анимациях.

Год назад я встретил решение этой задачи в четвёртой книге упоминаемого мной ранее Guy Somberg, в 17-й главе Automatic Manual Foley and Footsteps. В книге это названо симуляцией интерна.

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


В книге предлагается такая последовательность:
1. Открыть файл анимации.
2. Найти ноги персонажа.
3. Прокручивать каждый кадр.
4. На каждом кадре проверять, касаются ли ноги земли.
5. Если на кадре нога касается земли, а на предыдущем - нет, добавить маркер.
6. Рассчитать силу обнаруженного шага.
7. На созданном маркере добавить правильный звук.
8. Если анимация не закончена, вернуться к шагу 3.
9. Сохранить файл и закрыть.

Далее там описано, как такое сделать на C++, а я решил создать подобную систему на Blueprint. Честно скажу, на C++ было бы проще, так как там многие функции и возможности доступа к данным более глубокие, но в целом принцип особо не меняется. Схема 9 шагов понятна же.

Я написал свой блюпринтовый "Автоматический расставлятор шагов". Планирую в будущем записать видео, в котором подробнее расскажу, как это работает.
2042
This media is not supported in your browser
VIEW IN TELEGRAM
Тем временем я начал работать над озвучкой лучшей игры про танки. Игры здорового человека без лутбоксов и донатного дрочилова.

Искал звучание двигателя и создал синтезатор звука двигателя на JSFX. Используется математика расчёта работы цилиндров и пропускается через свёртку системы выпуска газов.

Upd: этот (и другие мои исследования ) прототип показал, что можно синтезировать вполне сносно двигатель. Но нам в танки ДВС не подходит. Но технология интересная.
172
Сейчас будет новость для тех, кто не занимался разработкой компьютерных игр.

Множество разработчиков игр в крупных корпорациях (я говорю не о менеджерках обоего пола, а о разработке) не играют в собственную игру.

Бывало, я делал звук для игр, которые очень нравились, а также тех, в которые я бы не дал поиграть близким людям. Я их даже в портфолио не выкладываю. Я работал в командах, которые с удовольствием играли в свою игру, и даже в тех, где по вечерам играют в игру со своими детьми. Но во многих корпорациях разработчики не играют в свою же игру. Они понимают, что делают донатный трэш, но при всём при этом кушать-то хочется. Приходят на работу, сидят на стуле, стучат по клавишам, а, выходя из офиса, забывают свой продукт как страшный сон. Такие разработчики разменивают своё время (единственный личный не восполнимый ресурс) на деньги. Кто выгоднее поменял, тот и победил.

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

Но в разработке есть ещё люди, которые не только не играют в свою игру, а вообще не любят играть в компьютерные игры. Я сейчас не про людей, которые обеспечивают работу офиса, а именно про топ-менеджеров, директоров, лидов. Как можно понять игрока, если ты не являешься игроком?

В разработке часто используется принцип, когда вылизывают первый игровой час геймплея (first hour gameplay). То есть, по сути, стартовую локацию и первые квесты. Здесь и багов меньше, и продуман гейм-дизайн, и интересно сделана завязка сюжета, и продуманы реплики героев. Ну и, конечно же, хорошо сбалансированный звук. А дальше для многих разработчиков уже не так важно. Больше чем в половине игр тщательно работают только над первым часом. И в результате мы видим сотни тысяч игр, в которые не хочется возвращаться, где нужно выполнять тупые задания (возьми какой-то цветок и принеси шаману, сходи туда-то, передай письмо). Я даже скажу больше: от некоторых студий я слышал такое ТЗ по звуку, когда нужно было отшлифовать только первый час игры.

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

Для меня это похоже на то, что люди, которые работают в ресторане, в обед выходят куда-то в другое место, говоря: ой, я не буду питаться в это ресторане, потому что я знаю, как это приготовлено. Я что, враг своему здоровью, что ли?

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

Ну и вот, дорогие разработчики, скажите, играете ли вы в свою игру со своими детьми или нет?
1883
Сколько времени в день обычный человек тратит на соцсети? Я сейчас говорю не столько про рабочие чаты в телеге, сколько про бессмысленный скроллинг рилсов. Они настолько легко захватывают наше внимание, потому что алгоритмы прекрасно знают, что нам нравится, и готовы генерить для нас такой контент бесконечно.

Посмотрел статистику: в мире среднее число - 2,2 часа в день. Но в группе от 12 до 17 там вообще огонь - около 4-5 часов в день (5 * 365 = 1825 часов на рилсы и мемы).

А теперь следующий наводящий вопрос: как вы думаете, сколько времени родители проводят со своими близкими и детьми? Я говорю о времени, когда вы не просто молча сидите на диване и смотрите сериалы. Я имею в виду обмениваться переживаниями, обсуждать то, что им интересно, совместный труд или какие-то проекты. К совместному времени с детьми я не отношу делать домашку (вообще считаю это тупой тратой времени всех сторон). Ни дети не любят домашку, ни учителя, которые её проверяют, ни родители, которые делают её за детей. Уверен, реальные цифры нас ужаснут. И статистика готова помочь нам.

Отцы в будни:
Уход за детьми - 8,2 минуты
Игры и спорт - 10,8 минуты
Воспитание - 6,4 минуты
Разговоры и чтение детям - 4,2 минуты

Отцы в выходные:
Уход за детьми - 12,9 минуты
Игры и спорт - 25 минут
Воспитание - 5,6 минуты
Разговоры и чтение детям - 6,4 минуты

То есть обычный мужчина ежедневно инвестирует времени в десятки раз больше в разглядывание чужих женщин и машин, чем в разговоры со своими детьми. (не инвестиционная рекомендация)

Можно себя оправдывать, что в интернете всё очень сильно полезно и интересно. Всё это, конечно, грустно, но это уже можно начать исправлять прямо сегодня. Рецепт вообще простой и бесплатный: перестать тратить время впустую и направлять его на пользу. Например, проводить время с близкими намного полезнее, чем сливать его в дофаминовый унитаз.

Время покажет, кто правильнее инвестировал.
264
Нет ничего круче, чем как в детстве поиграть с друзьями. В целом не важно, во что, главное - с приятными людьми. Классные эмоции обеспечены. Созвонились с Антоном, Стёпой, Лёхой и решили поиграть в игру, сделанную нашими друзьями.

«Русы против Ящеров 2» прекрасно подходит для того, чтобы получить кооперативные эмоции за один вечер.

По сути, для нас игра - это всего лишь повод собраться. Здесь главное - вместе и с удовольствием.

YouTube, VK
8
Идёт пятый месяц, как я живу без календаря. Ранее писал, что сначала были неудобства (периодически забывал про договорённости), но польза для меня с каждым месяцем становится всё более ощутимой.

Главное - это чувство того, что моё время принадлежит только мне. Любая встреча спонтанна (не запланирована) и состоится только в случае, если я этого хочу. Чистая органика и приятный вайб.

И вот теперь я прочувствовал ещё один важный момент - я фокусируюсь только на главном.

Сейчас поясню. У меня много разных проектов, в которых я реализуюсь (моя школа, моя студия, мои изобретения, мои исследования). Раньше в календаре было записано много различных несвязанных встреч и дел, которые я не мог должным образом приоритизировать - если они в календаре, значит, они почему-то важны. Я не мог должным образом погружаться в каждый из проектов, так как ежечасно нужно было выныривать (выходить из фокуса) и загружать новый контекст другого проекта. Или, другими словами, выгружать из оперативной памяти одни данные и подгружать новые. А это довольно большая когнитивная нагрузка - I/O.

Теперь же с утра в домашнем кабинете я думаю, чем сегодня хочу заняться. И в дополнение с отключением всех входящих уведомлений никто не может меня выдернуть из погружения, кроме меня самого. Всё органически выстраивается таким образом, что я фокусируюсь только на важных для меня проектах, а неважные я даже не вспоминаю. Если бы я записывал в календарь, то пытался бы выполнить каждое из дел, что у меня никогда не получилось. И было ощущение постоянного долга перед собой же.

Сразу говорю - этот лайфстайл подойдёт далеко не всем. Не каждый владеет своим временем, не каждый может решать, чем сегодня заняться. Но владеть своим временем - это очень приятно и престижно.

Если хотите попробовать этот лайфстайл, то рекомендую начать постепенно, например, с выключения всех оповещений: вам дозвониться может только самый узкий круг - люди, у которых есть доступ к вам 24/7. Все оповещения от сервисов тоже выключаете. Поэтому я реагирую на сообщения только людей, которые у меня стоят в основном списке. Все другие из записной книги получают ответ только тогда, когда я готов посмотреть, что кто хотел. Все остальные просто не появляются на телефоне. Я их могу прочитать тогда, когда специально решил посмотреть, что там такого вокруг. Если вы готовы попробовать, я уверен, что через месяц вы почувствуете себя свободнее. Первые недели вы будете жить с чувством FOMO (fear of missing out) - будете бояться упустить что-то важное. Но нет ничего важнее важного для вас, как бы это банально ни звучало.

После этого рекомендую перейти к календарю.
174
Шопен — Ноктюрн ми-бемоль мажор (op.9 №2)| Chopin — Nocturne in…
Гринберг
Сегодня ночью мне приснилось, что я слушаю ноктюрн ми-бемоль мажор Шопена. И после этого на весь день в голове засела мелодия. Сейчас поймал себя на мысли, что ноктюрн продолжает играть в голове.

Кстати, у мелодии, которая засела в голове, есть название - Earworm.

Прикрепил трек, чтобы вечер классической музыки был не только у меня в голове.
1892
Прочитал сегодня интересную метафору для долгосрочного планирования в Школе Капитализма.

Большинство людей не планируют дальше Нового года, хотя жизнь - интересная штука. Мне сложно понять, почему бы не заниматься долгосрочным планированием. Возможно, лень тратить когнитивные ресурсы, но, скорее, причина в том, что долгосрочное планирование не включает всякие секси штуки. Там всё скучно, и путь к успешному и богатому будущему связан с банальными идеями: не заниматься вебленовским потреблением, не брать кредиты, прошерстить окружение, здоровая экономия и прочая скучнятина.

И вот интересная метафора г-на Макаренко, которая, как мне кажется, очень хорошо помогает понять, почему важно всегда видеть больший горизонт:

Если вы посмотрите на карту Панамского канала, вы обнаружите, что для прохода из Атлантического океана в Тихий океан кораблям нужно плыть по каналу… на восток. Представьте теперь капитана, у которого есть карманный глобус, благодаря которому он знает, что Тихий океан лежит к западу от Атлантики. Капитан ведь не дурак. Он не будет заходить в Панамский канал, чтобы двигаться на восток, к Европе: ему нужно в другую сторону. Поэтому капитан навечно застрянет в ловушке Мексиканского залива, где путь к востоку ему будут преграждать побережья США и Мексики.

Чтобы помочь капитану, надо разложить на штурманском столе карту с проложенным на ней маршрутом. Отправляемся вот из этой точки Карибского моря, проходим Панамский канал и выходим через Панамский залив в нужный нам Тихий океан. Да, господин капитан, вот тут мы делаем зигзаг, и часть пути мы формально движемся в обратном направлении. Но в конечном итоге за столько-то дней мы дойдём из точки «А» в точку «Б».


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

Хотя у всех свои цели. У кого-то цель - купить новый айфон.
442
Media is too big
VIEW IN TELEGRAM
Пока я собираю материал для вдумчивого разбора лучшего звука шутера 2025 года (я про Battlefield 6), я решил показать одну маленькую, но очень впечатляющую деталь.

Одна из эмоций, которую получают игроки Battlefield - это ощущение, что происходит что-то яркое, мощное и эпичное. Благодаря встроенному в нас мимесису мы очень легко считываем эмоции через голос и систему дыхания.
Разработчики "батлы" очень хорошо смогли передать эффектность поля боя через "диалоговую" систему - голосовую дорожку.

Я записал видео, в котором (00:00 - микс целиком со всеми звуками) сначала идёт начало сражения: все бегут, кричат, раздают команды. А затем (00:21) мы слышим только дорожку голосов. Обратите внимание, как перекрикиваются игроки и какую эмоцию это создаёт. А теперь представьте то же самое сражение, только без голосовой дорожки.

Кстати, подробно о голосах в играх я рассказывал на конференции в сентябре. Если вы смогли увернуться, я продублирую ссылку на запись моих рассуждений: https://xn--r1a.website/aleksandrkhilko/370
5
Вот еще немного внутрянки про создание звука в танках здорового человека.
4
Forwarded from Лаборатория сборки (Александр Хилько)
Media is too big
VIEW IN TELEGRAM
Когда инженеры берутся за звук, получается много интересных решений. Хочу показать вам запись нашего с Мишей обсуждения системы движения танка и тех решений, которые мы придумали:
Во-первых, это гранулярный синтез для звука поверхностей и трения.
Во-вторых, для подвески будем делать так же, как я озвучил робота в Unreal Engine: такую систему можно назвать еще процедурным фоли.

Чем система проще, тем она красивее. А эти две системы, на мой вкус, выглядят очень красиво, значит, и работать будут стабильно.
81