Portal 2

Portal 2

26 ratings
Портирование звука в Source
By Alivebyte!
Подробный гайд о портировании(внедрении) звука в Source.
   
Award
Favorite
Favorited
Unfavorite
Начало
Итак,всем привет!С вами Alivebyte!.И это уже (о боже мой) 3 гайд по работе с кастомным контентом для Source.Прошлым гайдом было создание и портирование текстур в Source,но сегодня мы будем портировать звук.Итак какая же софтина нам для этого всего понадобиться?
1.Audacity[audacity.audio] - для работы и конвертирования звука.
2.Сам звук.
3.Игра для которой вы хотите портировать звук.
4.Wavosaur[www.wavosaur.com] - тоже звуковой редактор,но его мы будем использовать только для того чтобы сделать метки для повторения звука(см. раздел "Создание повторящего звука(Looping).
5.Прямые руки.
В принципе это всё,что нам нужно.Итак,начнём!
Теория.
Всё,абсолютно все треки в Source сделаны в формате .WAV для поддержки звука как в игре так и в самом редакторе карт.Теоретически некоторые игры Source c 2009 года могут поддерживать звуки и в .MP3,проблема в том,что звука не будет в редакторе и проверить это будет довольно тяжело.Так же в играх Source 2009+ есть такая фича как аудио кэш.Аудио кэш - это 0,152 секунды вашего трека.Данная фича создана для того,чтобы сохранить память и увеличить производительность на консолях.Так же стоит ещё учитывать один момент.Cэмпл рэйт(Частота дискретизации) в Source - 44100 Hz.Выше или ниже частота не должна быть.И ещё,нужно учесть тот факт,что Source читает ттолько 16-битные треки.Если частота будет выше,то Source не воспроизведёт звук,а это печально.Но на самом деле тут ничего сложного нет.Ну,в принципе можно приступать к практике.
Практика
Вот мы и перешли от теории к практике.Нам нужно взять какой-нибудь трек и вшить его в Source.Для того чтобы его вшить нужно его обязательно сначала "прогнать" через Audacity дабы снизить или повысить частоту или если трек в формате .MP3 сконвертировать в .WAV.Для гайда я решил взять какую-нибудь музыку для конвертации.
Открываем Audacity:

Нажимаем Открыть и выбираем наш саунд должно выйти так:

Перед экспортированием обязательно нужно убедиться,что наша частота дискретизации равна 44100 герцами,иначе Source тупо не сможет прочитать звук.У меня к счастью частота нужная.

Экспортируем в .WAV.Для этого нажимаем File > Export и выбираем тип файла WAV 16-bit PCM.Если по какой-то причине звук сохранился в 32-bit float,то вместо WAV выберите "Другие несжатые файлы" и нажмите "Параметры".В этой менюшке выберите заголовок WAV(Microsoft),а кол-во битов Signed 16-bit.Теперь нам нужно зайти в корневую папку игры(или мода над которым вы работаете).В моём случае,заходим в steamapps/common/Portal 2/portal2 и заходим в папку sound.Внимание!!!Ни в коем случае не кидайте звук в эту папку,а создайте в ней свою папку,например,названием своей карты.я решил назвать свою папку sp_soundtut.И туда кидаем наш готовый трек.
Теперь всё готово можно проверить звук на карте и в игре.И так,зайдём на карту и создадим по-быстрому кнопку и ambient_generic.Как привязывать кнопку к амбиенту,думаю знаете.В свойствах ambient_generic просто выберите свойство Sound Name и нам кликнуть Browse.В поле Sound Type выберите Raw и в поле Filter впишите название папки куда вы закинули трек или название самого трека.
Итак пробуем запустить звук в игре.Если в вашей игре звук запустился то всё отлично,а вот у меня звук как бы это странно не запустился.И давайте глянем что пишет консоль.
А консоль нам пишет то,что никакого звука hurtswonderfullife и в помине нет.Вернёмся снова к теории.Я говорил в начале гайда,что игры на Source 2009+ имеют некий аудиокэш который является переносчиком файлов между .vpk файлами.Как не странно но суть нашей проблемы в том что в кэше отсутствует наш звук,но не беда.Для того чтобы обновить аудио кэш нужно просто прописать команду snd_updateaudiocache.В консоли вы увидете,что как раз нашёлся наш звуковой файл и он вписался в кэш.
Пробуем запустить звук заново.Для этого просто нажмём ещё раз на кнопку.И аллилуя!Звук заработал.Если у вас не работает звук и появляется ошибка Can't create a mixer,то нужно ребилдить аудиокэш для этого введите snd_rebuildaudiocache.Если же по какой-то причине консоль выдаёт ошибку частоты дискретизации,то в Audacity нажмите на вкладку "Дорожки" и выберите "Сменить частоту дискретизации".В этой менюшке выберите частоту дискретизации 41400 Гц.Увы изобразить работу звука я смог только введя snd_visualize 1 и snd_show 1.

Теперь нам остаётся только вшить этот звук в карту ну а как это делать вы узнаете в моих предыдущих гайдах а с вами был Alivebyte!
БОНУС!:Создание повторного звука(Looping).
Это раздел для тех,кто хочет сделать звук который будет непрерывно повторяться в игре.Увы, убрать галочку с флага в ambient_generic Is NOT Looped недостаточно звук повторятся не станет.Для этого нужно в музыкальной программе установить специальные "маркеры" начала и конца повтора.После них звук будет непрерывно повторятся в этих местах.Для этих дел отлично подходится Wavosaur.Открываем его:
Жмём File > Open и открываем звук который нам нужен.

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

Как мы видим в программе появились метки Loop start и Loop end.Это значит,что мы пометили "маркерами" повтор звука.Сохраняем и кидаем в игру.Внимание!Не забудьте убрать флажок Is NOT Lopped у ambient_generic перед компиляцией.
Обратите внимание на то,что в таблице текущих звуков напротив нашего звука написано looped(1).Это значит,что мы всё сделали правильно и звук будет непрерывно повторятся.
11 Comments
PaRus Pro 2 Jun, 2024 @ 11:53am 
Спасибо, что ответил, но я разобрался с проблемой. Почему-то этот пробел был только в хаммере, но после того как я выложил карту в воркшоп, этот пробел пропал. А звук у меня wav по умолчанию...не люблю mp3
Alivebyte!  [author] 2 Jun, 2024 @ 8:36am 
Скорее, всего у вас звук в mp3, а должен быть в wav
PaRus Pro 30 May, 2024 @ 10:23am 
не знаю, должно ли быль так, но когда приходит время лупа, появляется неприятный пробел между концом и началом. В вавозавре всё прекрасно, но в самой игре происходит пробел
Alivebyte!  [author] 2 Feb, 2024 @ 8:02am 
Можно также использовать ambient_generic, он обычно для озвучки используются vcd файлы сцен и они проигрываются через logic_choreographed_scene
Sfraderist 11 Mar, 2023 @ 5:07am 
есть вопросик, а как сделать так чтобы в начале и при прохождении головоломки (конце) говорил записанный голос?
.๖ۣۜRusheR 9 Nov, 2022 @ 6:26am 
странно, но некоторую музыку он нормально пропускает, но некоторые после этого начинают не совсем музыку играть, а звуки просто производятся разные (я всё по гайду делал)
Кислый Голубь 6 Dec, 2020 @ 3:59pm 
как называть папку и собсна сам звук. С халфой там чуть попроще, через папку кастом, а тут чёт как-то иначе
Кислый Голубь 6 Dec, 2020 @ 3:56pm 
Я хочу заменить звук выстрела из порталки. В принципе через ГЦФСкейп корень я нашёл, но судя по твоему гайду я не до конца понимаю, куда нужно будет экспортировать аудиофайл
artixs 28 May, 2020 @ 9:03am 
Классно спасибо помог
soufi 16 Jan, 2019 @ 7:35am 
2к19 А я досехпор использую твои гайды:)