Хилько о звуке для взрослых
897 subscribers
57 photos
196 videos
1 file
235 links
Я саунд-дизайнер, композитор, руководитель студии саунд-дизайна и основатель школы игрового звука. Мне 41 год. А это мой личный блог.
https://хилько.рф/
Download Telegram
Сейчас можно учиться по книгам лучших преподавателей, доступны видеолекции в отличном качестве, есть информация по любой теме, даже можно брать сокращённую выжимку, сделанную нейросетями. В тиктоке за минуту вам покажут красивый химический опыт и яркими буквами покажут главный вывод. А иностранный язык можно учить в машине из приложения в телефоне, попивая кофе. Тем не менее учиться быстрее мы не стали. Молодой человек лет 100 назад сказал бы, что мы зажрались, раз не берём то, что лежит бесплатно.

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

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

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

Только после того, как я проделываю такую работу, новая информация перемещается в постоянную память. Кстати, все мои задротские видео являются результатом того, что я что-то изучаю и усложняю систему, чтобы запомнить. Так, я делаю не всегда. Только там, где мне важнее хорошо овладеть навыками.

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

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

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

Сегодня приснился сон, что у меня, когда я ехал почему-то на троллейбусе, украли телефон (сначала я думал, что потерял). Откуда-то у меня оказался телефон супруги, с которого я набрал свой номер, и мне сказали, что вернут телефон: нужно прийти в кафе (не помню название). Я пообещал вознаграждение за возврат.

Затем я, не зная города, пару часов добирался до нужного кафе: это оказалось кафе в торговом центре. Пришлось у людей спрашивать, как до него добраться. Уже в торговом центре меня останавливает молодой человек и говорит: о, привет. Какими судьбами? Я привык, что меня узнают люди, но его не мог вспомнить. Он говорит: давай телефонами обменяемся. Я: сорри, я тороплюсь и начинаю уходить. Он: давай продиктуй номер и как тебя записать. Здесь у меня во сне сработал редфлаг.

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

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

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

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

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

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

На своём основном телефоне оставить только одно банковское приложение с доступом только к ограниченной сумме. Никаких других важных для безопасности приложений. Из менеджера паролей на телефоне убрать все банковские данные и прочее. И убрать Face ID.

Друзья, может кто-то уже продумывал безопасность, поделитесь мыслями!
743
This media is not supported in your browser
VIEW IN TELEGRAM
Ранее я рассказывал о том, что решил перевести все данные моих проектов, школы и семейный альбом на свои серверы. Напомню, дома стоит Synology NAS с 12 ТБ диском, его постоянно дублирует такой же девайс в студии. В своём пространстве я получаю скорость 1 Гбит/с, из внешки мои коллеги получают доступ со скоростью интернета.

Я продолжил развивать суверенитет и на этот раз реализовал свой Git-сервер на базе этих же Synology NAS. Для тех, кто впервые слышит слово Git, поясню: это система версионного контроля проектов, которая позволяет хранить каждую итерацию (коммит) проекта и в любой момент вернуться к нужному состоянию. Это удобно даже в маленьких проектах, где вы случайно что-то сделали, а чтобы исправить ошибку, достаточно просто вернуться к версии вчерашнего дня. Такое также можно применять для больших проектов написания музыки. А в разработке игр и IT версионирование применяется постоянно. Можно, конечно, хранить это всё на всяких GitLab'ах и GitHub'ах, но для хранения больших проектов нужно иметь иностранные карты и платить подходящие тарифы, храня данные за границей.

Мой Synology DS224+ имеет достаточно мощный процессор и оперативку, так что поддерживает Docker; на нём я развернул Gitea - Git-сервер с веб-оболочкой, подобной GitHub. Gitea из коробки поддерживает LFS и позволяет без труда гонять через мой сервер большие бинарные файлы. Мы уже неделю пользуемся с коллегами - пока полёт нормальный. Для Unreal-проектов вполне хорошо подходит, и места на HDD достаточно.

Но это ещё не всё. На базе сервера я развернул Plex Server - это домашний кинотеатр. Сейчас существует много бесплатных решений, которые стримят на телевизор фильмы прямо с торрентов, но скорость всегда ограничена скоростью интернета и скоростью раздающих. В результате, чтобы смотреть на своих 65 дюймах качественные 4K UHD фильмы с Dolby Vision размером 60 гигабайт, у меня всегда возникали сложности - периодически фризы, иногда просто трансляция отваливалась. В общем, неконтролируемые процессы. И я решил качать фильмы или сериалы, которые хочу посмотреть в будущем, в домашнюю библиотеку и через Plex смотреть как в онлайн-кинотеатре, без задержек, в шикарном качестве и с удобным интерфейсом.

Уже попробовали начать смотреть на телеке, а потом продолжить с того же места, например, с телефона или ноутбука. В 2025 году этим никого не удивить, но если сравнивать с бесплатными решениями типа Vokino, Lampa, то это шикарная замена. Plex можно хостить и на винде, и на линуксе. Мне очень нравится, что для любого файла типа Klassny.film.2025.DVD-rip.Rus.En.mkv он подгружает правильное название, обложку, трейлер, актёров, комментарии пользователей и прочее. Получилась хорошая альтернатива платным решениям, но при этом получаем лучшее качество без задержек.
154
This media is not supported in your browser
VIEW IN TELEGRAM
Мы делаем для школы игру, и я решил разработать интересную систему озвучки движения робота. Суть в следующем: мы замеряем модуль скорости движения части объекта (в моем случае - движение локтя относительно спины) и этим параметром меняем громкость зацикленного звука движения робота. В контексте моего робота это звук сервоприводов, всякие механические удары и футуристичное гудение. Раньше подобным образом я озвучивал тряску танка. Вместо того чтобы в каждую анимацию добавлять анимнотифаи, которые будут воспроизводить разные звуки, мы просто один раз запускаем луп, и звук синхронизируется с движением персонажа.

Хочу заметить, что здесь нет шагов - только звук движения. А когда я добавляю шаги по разным поверхностям, звуки окружения и другие части озвучки - сцена сразу преобразится.

Такую же систему можно сделать для одежды гуманоидных персонажей, тряски подвески автомобиля, фоли движения оружия и всего гремящего-скребущего.

В последнее время я настолько привык писать обычный код (ну как писать, вы понимаете, что не сам полностью), что блюпринты стали мне казаться настолько неудобным костылём, где простейшая функция вместо одной строчки может занимать час "вышивания" лапшой. И вместо красивого кода я занимаюсь расстановкой нод, чтобы соединения пинов не переплетались. Хотя я взаимодействовал с многими программистами, которые нормально пилят блюпринты и не подавились. В 2019 году, когда я начал изучать UE, мне казалось, что "визуальное" программирование - это удобная замена для непрограммистов, но сейчас кажется неудобным костылём. Я готов предположить, что намного быстрее написать функцию замера модуля скорости одной части относительно другой, чем соединять все эти проводки. Но я замечал, что саунд-дизайнерам больше нравится именно работа с блюпринтами, так как они похожи на работу с Reaktor или M4L.
122
На прошлой неделе был на детском дне рождения моей первой дочки. Два года подряд, пока дети веселились, мне приходилось общаться с мамашами друзей дочки. Это были самые пустые разговоры: словно сервера пингуют друг другу рандомные порты и иногда отвечают true или false. Самое удивительное, что два года подряд они практически один в один повторяли диалог. Прямо как по сценарию - я прям офигел, что такое бывает у живых людей. Диалог был про фамилии и прям один и тот же диалог два года подряд.

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

Сначала я рассказал, что уже 2 года живу в режиме: входящие звонки и уведомления проходят только от людей, находящихся в моей записной книге. Рассказал о том, что эта практика позволяет не тратить внимание и фокус на ненужные звонки, помогает убрать ненужный шум из жизни.

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

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

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

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

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

Типичная история: детей загоняют в музыкальную школу, где они овладевают инструментом. Логичным шагом  преподавателям и родителям кажется пойти учиться далее, раз уже потратили время на инструмент. В итоге уже взрослый юноша или девушка на полной скорости ударяются о реальность - понимают, что потратили время на то, что нельзя применить в реальной жизни.

Особенно обидно, когда этот выбор чаще всего делают родители за детей, а не сами дети.

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

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

Лёша Томанов записал разговор с Серёгой Комаром, в котором ребята раскрывают свой творческий путь и то, как смогли применить себя в геймдеве. Очень искренний разговор двух профессионалов с хорошо записанным (было бы странно, если бы не так) голосом.

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

Очень рекомендую к просмотру:
😉 Видео Youtube
😄 Видео VK

П. С. Лёшин канал в Тг 😌
Please open Telegram to view this post
VIEW IN TELEGRAM
1541
Друзья, ощутил себя товаром сегодня. Очень неприятное липкое чувство, которое хочется сразу смыть в душе.

На прошлой неделе был на мероприятии (что-то вроде конференции), которое устроил мой друг. Там два дня люди объясняли друг другу, как понять зумеров и работать с ними. Мне больше была интересна неформальная часть конфы в баре моего друга. Там мы общались про искусство, детей и разные нецитирабельные темы.

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

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

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

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

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

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

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

И вот появилась отличная игра Peak, в которой можно с пацанами "сходить в поход".

Давно не встречал такого хорошего геймдизайна в кооперативных играх, из лучших могу только вспомнить It Takes Two.

Мы собрались с друзьями, решили поиграть. Это оказалось очень весело - так же, как в детстве во дворе, играя в уличные кооперативные игры.
123
Media is too big
VIEW IN TELEGRAM
Сегодня закончил свой вдумчивый разбор звука в игре Assassin’s Creed Odyssey. Несмотря на то что игра вышла 6 лет назад, её можно по праву считать референсом озвучивания игр с открытым миром.

Как всегда, мы созвонились с Майей, чтобы порассуждать и разобрать звуковые системы в игре. В итоге после нашего разговора получился большой текст, в котором раскрывается:

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

2. Системы передвижения персонажа
- 33 поверхности для озвучки шагов
- Из каких слоёв состоит система движения персонажа

3. Голосовая озвучка npc и персонажа
- Почему мы слышим всего 3-4 голоса одновременно?
- Общее звучание шины голоса

4. Музыка с этническими корнями из античной Греции
- Главная музыкальная тема
- Два типа музыкального сопровождения
- Какие песни поют гребцы на корабле

5. Звучание корабля и моря
- Как звучит корабль под водой
- Звуки каких кораблей были записаны
- Как звучит плавание главного героя

Приятного чтения: https://sponsr.ru/xssracademy/120444
9
This media is not supported in your browser
VIEW IN TELEGRAM
Для ещё более глубокого анализа любимых игр я сделал набор скриптов, которые позволяют распаковать банки Wwise и собрать их архитектуру в проекте Reaper со всеми звуками. Так, я могу увидеть, из каких звуков состоят ивенты, и попробовать понять, как именно устроена звуковая система в игре.

При сборке/доставке игры на Wwise некоторые разработчики не удаляют файл SoundbanksInfo.xml - в нём хранится вся структура: какие банки есть, какие ивенты в них описаны, какие сэмплы и какие switch/state-варианты привязаны к этим ивентам. Мой Python-скрипт сначала распаковывает банки и по данным из SoundbanksInfo.xml собирает полную файловую иерархию. Всё это сохраняется в файл structure.txt.

Чтобы эта структура была наглядной, я сделал скрипт для Reaper. Он парсит structure.txt, показывает банки и ивенты, и я могу выбрать только те, что хочу изучить. Обычно аудиодизайнеры соблюдают нейминг-полиси (например, amb_, level_, mus_, button_, ui_ и т.д.), поэтому по названиям очень быстро видно, какие системы и подсистемы есть в проекте. Для выбранных ивентов Reaper строит такую же древовидную структуру треков и папок, как она описана в Wwise (мы это знаем из SoundbanksInfo.xml) и подгружает нужные OGG.

Всегда интересно поковыряться своими руками в проекте, когда анализируешь игру. Можно многому научиться!
- 00:00 - ищу банки в файлах игры Monument Valley 3 (Steam);
- 00:09 - копирую банки в папку со своим скриптом;
- 00:23 - запускаю Python-скрипт, начинается распаковка и раскладка по структуре;
- 00:47 - открываю скрипт для Reaper и указываю structure.txt;
- 00:56 - выбираю звуковые ивенты из банков, которые хочу послушать;
- 01:35 - можно изучать.
101
This media is not supported in your browser
VIEW IN TELEGRAM
В процессе донастройки своего скрипта для распаковки звуковых банков игр я столкнулся со следующим нюансом. Внутри каждого банка или pck-архива находится солянка из неорганизованных wem-файлов. Название файла состоит из его уникального id, с которым работает аудиодвижок.

Чтобы понять назначение того или иного файла, конечно, хочется иметь правильное название, так как большинство профессиональных аудиодизайнеров придерживаются концепции выбранного naming policy - как называть файлы.

Например, amb_darkcave_waterdrops будет, очевидно, звуком капель, используемых в эмбиенте уровня или локации darkcave; mus_prelude_boatride_titles_v2 - скорее всего, будет музыкальной композицией в стартовом уровне игры, когда герой плывёт на лодке и идут титры.

Чтобы при распаковке банков названия файлов были не просто id-цифрами, а полноценными системными названиями, нужно поковыряться в ассетах игры в поисках SoundbanksInfo.xml - файла, в котором записана полная архитектура проекта с названиями всех файлов, свитчей, параметров и т.д. Некоторые девелоперы вырезают этот файл при публикации игры, но в некоторых он всё-таки остаётся. Например, из тех, что я уже описывал на проекте, - это Monument Valley 3 и Somerville (правда, они зачем-то переименовали файл SoundbanksInfo.xml в sound.info, возможно, чтобы защититься от стандартных парсеров).

Теперь у меня есть распаковщик, который распаковывает все wem-файлы, затем читает весь файл SoundbanksInfo.xml, смотрит, какому id соответствует какой файл, и переименовывает их, параллельно раскладывая по папкам так, как это сделано в проекте.

В первой итерации распаковщик просто разбирал каждый банк и затем строил архитектуру в рамках саунд-банка. Но когда я попробовал этим скриптом собрать звуки другой игры, я увидел, что для большинства звуков не найдены их имена. Тогда выяснилось, что SoundbanksInfo.xml в разных версиях Wwise может иметь разную структуру.
<SoundBanksInfo Platform="Windows" BasePlatform="Windows" SchemaVersion="12" SoundbankVersion="140">

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

Ну и самое приятное: когда я добавляю структуру в Reaper, я могу визуально представить, как создавались все звуковые подсистемы, какие звуки делались лейерингом, где использовалось много рандома, а где - всего пару вариаций. По сути, попробовать залезть в голову аудиодизайнерам.


Решил дать доступ к этому скрипту на Sponsr для подписчиков уровня Expert: https://sponsr.ru/xssracademy/121121/
83
Позавчера мне супруга прислала картинку со словами "ты выполнил". На картинке были написаны признаки роскоши 2025:
1. Пустой календарь
2. Тихий телефон
3. 8 часов сна
4. Прогулка без цели
5. Обед без телефона

В этот список я бы ещё добавил передвигаться пешком, а в скором времени ещё и секс, как предрекает ув. дор. Мараховский:

Фактически, как представляется, лет через 5-10 «палеосексуальность», то есть восприятие похоти, секса и социального сопровождения секса как целого и единого явления, станет явлением редким и эксклюзивным. И, пожалуй, основательно элитизируется.


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

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

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

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

Кстати, вдогонку, Антон Волков рассказал нам, что сегодня в стране выходной.
1242
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