Добро пожаловать на Wargaming.net Wiki!
/
Создание звуковых модов (Wwise)

Создание звуковых модов (Wwise)

Перейти к: навигация, поиск

Автор оригинальной статьи: night_dragon_on

Часть 1: Создание звукового банка (контейнера), *.bnk

1) Скачиваем дистрибутив Wwise, устанавливаем и запускаем.
2) Создаем новый проект (снимаем галки в разделе «Import assets to project”, вводим название проекта в поле «Name»
3) В открывшемся проекте переходим во вкладку «SoundBanks»
4) Создаем новый банк (контейнер)
5) Вводим название и убеждаемся в создании банка (контейнера)

Обратите внимание – название банка можно редактировать только непосредственно в редакторе, при последующем переименовании собранного банка он потеряет свой функционал

6) Переходим во вкладку "Audio", в разделе "Actor-Mixer Hierarchy" создаем новую группу. Правой кнопкой мыши находим его во всплывающем меню, выбираем пункт "Actor-Mixer"
7) Создаем группы для каждого вида звуков в клиенте:

"gui" - интерфейс
"vehicles" - техника
"voice" - голосовые уведомления
"effects" - эффекты
"ambient" - окружающая среда
"music" - музыка в бою
"music_hangar"- музыка в ангаре

8) Теперь зададим зависимость громкости проигрываемых звуков от положения ползунков в игровом клиенте
9) Переходим во вкладку "Game Syncs". Добавляем новую группу с наименованием "Settings" в категории "Game Parameters". Правой кнопкой мыши на группе "Settings" открываем окно создания параметра, выбираем пункт "Game Parameter"
10) Создаем пункты под каждый ползунок присутствующий в меню клиента, а именно:

RTPC_ext_menu_volume_master
RTPC_ext_menu_volume_gui
RTPC_ext_menu_volume_vehicles
RTPC_ext_menu_volume_voice
RTPC_ext_menu_volume_ambient
RTPC_ext_menu_volume_effects
RTPC_ext_menu_volume_music
RTPC_ext_menu_volume_music_hangar

11) Левой кнопкой мыши выбираем один из пунктов для его настройки. Задаем параметры минимального, максимального и дефолтного уровня громкости. Проделываем аналогичную операцию для остальных пунктов
12) Переходим во вкладку "Audio". Далее мы будем описывать добавление звукового файла оповещения перезарядки орудия, он относится к категории "интерфейс". Два раза кликаем левой кнопкой мыши на группе "gui" открылось окно параметров воспроизведения
13) Переходим во вкладку "RTPC"
14) Создаем два параметра "Voice Volume"
15) Одному присваиваем нашу ранее созданную клиентскую зависимость "gui", другой привязываем к общему ползунку "master"

16) Зависимость громкости проигрываемого звука от положения ползунков в игровом клиенте добавлена
17) Аналогичные операции проделываем для оставшихся групп, после присвоения свойств в окне "Contents Editor" возле каждой группы будет подсвечен голубой знак
18) Добавляем звуковые файлы, левой кнопкой мыши нажимаем на группу
19) Нажимаем кнопку "Add Files"
20) Выбираем звуковые файлы на диске

21) Убеждаемся в добавлении звука
22) Название автоматически создается по названию аудио файла на диске, при необходимости можно изменить
23) Переходим во вкладку "Events"
24) Создаем новое событие
25) Вводим название (продолжаем создание события перезарядки орудия)

Обратите внимание - Название события выбирается таким образом чтобы оно не совпадало с клиентским. К примеру стандартное наименование события для перезарядки орудия выглядит так:

gun_reloaded

Чтобы отделить стандартное клиентское событие от созданного нами в его названии достаточно добавить приставку или окончание. Далее все примеры будут описаны с единой приставкой "SM_", вы вправе выбрать любое приемлемое для себя, все ограничивается лишь вашей фантазией

SM_gun_reloaded
mod_gun_reloaded
audio_gun_reloaded
gun_reloaded_mod
gun_reloaded_audio
и т.п.

26) Привязываем новосозданное событие к ранее добавленному звуковому файлу, нажимаем кнопку "Browse"
27) Выбираем звук из раздела "Actor-Mixer Hierarchy", группы "gui"
28) Проверяем привязку звука к событию в окне "Event Editor"
29) Переходим во вкладку "SoundBanks"
30) Два раза нажимаем кнопкой мыши на нашем банке (контейнере)

31) Переходим во вкладку "Events" (окно настройки банка должно быть открыто), перетаскиваем мышью наше событие в контейнер (все остальные параметры, в том числе и звук из вкладки "Audio" подхватятся автоматически
32) Закрываем настройки банка и переходим во вкладку "ShareSets", открываем пункт "Default Conversion Settings"
33) Открываем настройки конвертации и выбираем формат сжатия банка, "Format - Vorbis" и его качество "Quality"

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

34) Переходим во вкладку "SoundBanks", нажимаем правой кнопкой мыши на нашем банке (контейнере), переходим в пункт сборки банка
35) Банк (контейнер) собран
36) Открываем папку созданного проекта, по умолчанию находится в папке пользователя в разделе документы, WwiseProjects
37) Открываем папку "GeneratedSoundBanks", забираем наш готовый файл

Часть 2: Конвертация банка (контейнера) с расширением *.bnk в контейнер *.pck

1) Проделываем операции с пункта 1 по 22 (из части 1)
2) Задаем параметр "Stream" для добавленного аудио файла
3) Проделываем операции с пункта 23 по 33 (из части 1)
4) Перед компиляцией проекта зададим вывод метаданных в файл .*xml
5) Переходим в пункт "Project > Project Settings"
6) Отмечаем поля "Generate Metadata File" и "Generate XML Metadata"
7) Проделываем операции с пункта 34 по 37 (из части 1)
8) Далее в контексте будет использован банк (контейнер) с наименованием "SM_gun_reloaded"
9) В выходной директории собран наш банк, файл метаданных к нему и запакованные аудио файлы в формате *.wem

10) Теперь нам нужно запустить утилиту "FilePackager.App", которая расположена по пути:

{Wwise Install Folder} \ x86 \ Release \ bin \ tools \ FilePackager.App.exe

11) В открытом окне программы в разделе "Packages" удаляем дефолтный пакет

12) В пункте "SoundsBanks Info file" указываем путь до папки с нашим банком (контейнером), выбирая файл метаданных
13) Создаем в разделе "Packages" новый шаблон для *.bnk контейнера (по наименованию нашего банка (контейнера) *.bnk)
14) Выбираем в разделе "Default file assignments" наш шаблон, в параметрах "Streams" и "Streamed files"
15) В разделе "File to package" выбираем данные от нашего банка (контейнера) с префиксом "StreamedFile", нажимаем кнопку "Add to current package"
16) В пункте "Output directory" указываем путь куда будет сохранен собранный контейнер *.pck
17) Переходим в пункт "Generate > All packages", собираем наш контейнер
18) Открываем папку, забираем наш готовый файл

Часть 3: Создание эвента (события) со случайным воспроизведением звука

1) Проделываем операции с пункта 1 по 17 (из части 1)
2) В 18 пункте в группе "gui" создаем рандомный контейнер, правой кнопкой мыши находим его во всплывающем меню
3) Контейнер создан
4) Добавляем звуковые файлы, левой кнопкой мыши нажимаем на созданный рандомный контейнер
5) Проделываем операции с пункта 19 по 22 (из части 1)
6) Звуки добавлены
7) Проделываем операции с пункта 23 по 26 (из части 1)
8) В 27 пункте выбираем звуки из созданного рандомного контейнера
9) Звуки добавлены
10) Проделываем операции с пункта 28 по 37 (из части 1), банк (контейнер) готов

Часть 4: Добавление своего звукового файла на события (из примеров включенных в готовый проект для Wwise)

1) Скачиваем готовый проект.
2) Скачиваем программу Wwise, устанавливаем, запускаем.
3) Открываем наш проект, игнорируем всплывающую ошибку о нехватке файлов в проекте (это нормально, незатронутые файлы проекта в процессе редактирования не были помещены в архив с примером, добавляются автоматически при открытии)
4) Главное окно программы
5) Далее продемонстрирую пример замены оповещения повреждения вашей боеукладки, выбираем в списке наш файл
6) Удаляем текущий звуковой файл привязанный к событию, левой кнопкой мыши выделяем файл в окне "Contents Editor"
7) Импортируем свой звуковой файл

8) Нажимаем кнопку "Add Files"
9) Выбираем звуковые файлы на диске
10) Убеждаемся в добавлении звука, нажимаем кнопку "Import"
11) Переходим во вкладку "SoundBanks", нажимаем левой кнопкой мыши на нашем банке (контейнере), переходим в пункт сборки банка
12) Банк (контейнер) собран
13) Открываем папку проекта, переходим в подпапку "GeneratedSoundBanks", забираем наш готовый файл
14) Заменяем файл банка в папке "audioww" для соответствующего оповещения

Загрузка банка клиентом игры

Загрузка стандартными средствами клиента

Для подхвата вашего банка (контейнера) игровым клиентом вы должны внести его в список конфигурационного файла: audio_mods.xml

<audio_mods.xml>
...
<loadBanks>
<bank>sound_mod.bnk</bank>
</loadBanks>
...
</audio_mods.xml>

Где, "sound_mod.bnk" - наш банк (контейнер) который мы хотим подключить. Банк (контейнер) должен быть помещен вместе с загрузочным файлом audio_mods.xml по пути: res_mods/X.Y.Z/audioww
где X.Y.Z - папка с названием текущей версии игрового клиента.

Загрузка в модификации XVM (eXtended Visualization Mod)

Для загрузки банка (контейнера) клиентом необходимо прописать его в настройках файла модификации sounds.xc

"sounds": {
"soundBanks": {
"battle": ["xvm://audioww/xvm.bnk", "xvm://audioww/sound_mod.bnk"],
"hangar": ["xvm://audioww/xvm.bnk"]
}

Добавив свой банк (контейнер) в поле "hangar" вы загрузите его в ангарном интерфейсе, в "battle" - в боевом интерфейсе. В примере наш банк с наименованием "sound_mod.bnk", который расположен по пути: res_mods/mods/shared_resources/xvm/audioww

Загрузка посредством дополнения - BanksLoader

Подробные сведения можно узнать в статье автора на сайте koreanrandom: BanksLoader (Polyacov_Yury).

Список кодов ошибок, возникающих при загрузке банка (контейнера)

0 - NotImplemented
1 - Success
2 - Fail
3 - PartialSuccess
4 - NotCompatible
5 - AlreadyConnected
6 - NameNotSet
7 - InvalidFile
8 - AudioFileHeaderTooLarge
9 - MaxReached
10 - InputsInUsed
11 - OutputsInUsed
12 - InvalidName
13 - NameAlreadyInUse
14 - InvalidID
15 - IDNotFound
16 - InvalidInstanceID
17 - NoMoreData
18 - NoSourceAvailable
19 - StateGroupAlreadyExists
20 - InvalidStateGroup
21 - ChildAlreadyHasAParent
22 - InvalidLanguage
23 - CannotAddItseflAsAChild
24 - TransitionNotFound (The transition is not in the list).
25 - TransitionNotStartable (Start allowed in the Running and Done states).
26 - TransitionNotRemovable (Must not be in the Computing state).
27 - UsersListFull (No one can be added any more - could be MaxReached).
28 - UserAlreadyInList (This user is already there).
29 - UserNotInList
30 - NoTransitionPoint
31 - InvalidParameter
32 - ParameterAdjusted
33 - IsA3DSound
34 - NotA3DSound
35 - ElementAlreadyInList
36 - PathNotFound
37 - PathNoVertices
38 - PathNotRunning
39 - PathNotPaused
40 - PathNodeAlreadyInList
41 - PathNodeNotInList
42 - VoiceNotFound
43 - DataNeeded
44 - NoDataNeeded
45 - DataReady
46 - NoDataReady
47 - NoMoreSlotAvailable
48 - SlotNotFound
49 - ProcessingOnly
50 - MemoryLeak
51 - CorruptedBlockList
52 - InsufficientMemory
53 - Cancelled
54 - UnknownBankID
55 - IsProcessing
56 - BankReadError
57 - InvalidSwitchType
58 - VoiceDone
59 - UnknownEnvironment
60 - EnvironmentInUse
61 - UnknownObject
62 - NoConversionNeeded
63 - FormatNotReady
64 - WrongBankVersion
65 - DataReadyNoProcess
66 - FileNotFound
67 - DeviceNotReady
68 - CouldNotCreateSecBuffer
69 - BankAlreadyLoaded
71 - RenderedFX
72 - ProcessNeeded
73 - ProcessDone
74 - MemManagerNotInitialized
75 - StreamMgrNotInitialized
76 - SSEInstructionsNotSupported
77 - Busy
78 - UnsupportedChannelConfig
79 - PluginMediaNotAvailable
80 - MustBeVirtualized
81 - CommandTooLarge
82 - RejectedByFilter
83 - InvalidCustomPlatformName

Вопросы и ответы

Q: Файлы какого формата можно упаковать в банк (контейнер) звуков?
A: Программа Wwise поддерживает входные файлы следующих форматов: *.wav, *.mid


Q: Как прослушать и извлечь звуковые файлы из альтернативной готовой озвучки (либо стандартные звуки) из банков (контейнеров)?
A:
1. Для начала нам понадобится программа: RavioliGameTools
2. Скачиваем и распаковываем (для работы программы понадобится наличие .NET Framework 4.0, Visual C++ 2005 SP1 Runtime).
3. Открываем нужный вам звуковой банк в программе.
4. После нахождения нужного вам звука отмечаем его и переходим в меню "Extract", выбираем папку для извлекаемого файла и нужный формат (*.wav или *.ogg).

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

"Sound conversion failed (FMOD error! ERR_FORMAT - Unsupported file or audio format. ). Extracting file without conversion."

Вам может помочь последующая конвертация звуковых файлов:
1. Скачиваем архив: convert_IMA_ADPCM.zip
2. Распаковать содержимое архива в папку с извлеченными из банка (контейнера) *.wav файлами.
3. Запустить .bat файл дождаться завершение операции.
4. Файлы перекодированы.

Q: Переименовал банк (контейнер) теперь звуки не воспроизводятся?
A: Редактировать название банка (контейнера) можно только в процессе его создания в Wwise

Q: Добавил свой эвент (событие) в банк (контейнер), прописываю его в конфигурационном файле, а в клиенте звук воспроизводится стандартный?
A: Названия эвентов (событий) прописываемые при создании банка (контейнера) не должны совпадать с клиентскими, добавляйте приставку или окончание в начале своего эвента (события), например:

gun_reloaded >>> SM_gun_reloaded

Полезные ссылки