CustomGames.ru - Dota 2 пользовательские игры

[Гайд] Добавляем звуки/музыку

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн oplkill

  • 34
  • Мощь: 0
  • Jungle race и Simple Dota 2 Editor
Данный гайд о том, как добавить звуки или музыку(в дальнейшем звуки) в карту правильно, чтобы все работало.

1. Формат звукового файла
Дота в данный момент распознает только 2 формата: mp3 и wav.

2. Папка хранения звуков в карте
Все звуки хранятся в этой папке: content\dota_addons\ADDON_NAME\sounds (Если папки sounds - нет, то создайте)

3. Список всех звуков
Просто скопировать звуки в папку, будет недостаточно. Игра требует, списка используемых звуков.
Списков может быть несколько, советую разбивать списки по категориям.
Списки хранятся в этой папке: content\dota_addons\ADDON_NAME\soundevents (Если этой папки - нет, то создайте)
Сам список представляет собой txt файл типа kv. (Ключ-значение)
Название файла списка, может быть любым, но формат файла должен быть .vsndevts!

Пример содержания файла:
Код
"SoundStringName"
{
    "operator_stacks"
    {
        "update_stack"
        {
            "reference_operator"
            {
                "operator"              "sos_reference_stack"
                "reference_stack"       "dota_src1_3d"
                "operator_variables"
                {
                    "vsnd_files"
                    {
                        "value"
                        {
                              "value0"        "sounds/FileName.vsnd"
                        }
                    }
                    "volume"            {   "value"     "10.00000"  }
                    "pitch_rand_min"    {   "value"     "-0.05000"  }
                    "pitch_rand_max"    {   "value"     "0.050000"  }
                    "pitch"             {   "value"     "1.000000"  }
                    "soundlevel"        {   "value"     "100.00000" }
                    "distance_max"      {   "value"     "1600.000"  }
                    "event_type"        {   "value"     "1.000000"  }
                }
            }
        }
    }
}
[свернуть]
Где "SoundStringName" - это название звука, который должен быть следующего вида: "AddonName.Название" (Название - это произвольное название) (В дальнейшем, чтобы воспроизвести звук вам надо будет воспроизвести звук по этому полному названию)
Где "sounds/FileName.vsnd" - это название и путь файла звука, который дота потом сохранит. Не забудьте указать подпапки, если таковые создавали.

пример

Код
"SlideNinjaSlide.NumbEncore"
{
        "operator_stacks"
        {
                "update_stack"
                {
                        "reference_operator"
                        {
                                "operator"              "sos_reference_stack"
                                "reference_stack"               "src1_2d"
                                "operator_variables"
                                {
                                        "vsnd_files"
                                        {
                                                "value"
                                                {
                                                        "value0"                "sounds/04-jay-z_and_linkin_park-numb-encore-kzt.vsnd"
                                                }
                                        }
                                        "volume_min"
                                        {
                                                "value"         "1.000000"
                                        }
                                        "volume_max"
                                        {
                                                "value"         "1.000000"
                                        }
                                        "pitch_min"
                                        {
                                                "value"         "1.000000"
                                        }
                                        "pitch_max"
                                        {
                                                "value"         "1.000000"
                                        }
                                        "chan_type"
                                        {
                                                "value"         "0"
                                        }
                                        "memory_type"
                                        {
                                                "value"         "0"
                                        }
                                }
                        }
                }
        }
}

"SlideNinjaSlide.Faint"
{
        "operator_stacks"
        {
                "update_stack"
                {
                        "reference_operator"
                        {
                                "operator"              "sos_reference_stack"
                                "reference_stack"               "src1_2d"
                                "operator_variables"
                                {
                                        "vsnd_files"
                                        {
                                                "value"
                                                {
                                                        "value0"                "sounds/faint.vsnd"
                                                }
                                        }
                                        "volume_min"
                                        {
                                                "value"         "1.400000"
                                        }
                                        "volume_max"
                                        {
                                                "value"         "1.400000"
                                        }
                                        "pitch_min"
                                        {
                                                "value"         "1.000000"
                                        }
                                        "pitch_max"
                                        {
                                                "value"         "1.000000"
                                        }
                                        "chan_type"
                                        {
                                                "value"         "0"
                                        }
                                        "memory_type"
                                        {
                                                "value"         "0"
                                        }
                                }
                        }
                }
        }
}

"SlideNinjaSlide.TheHellSong"
{
        "operator_stacks"
        {
                "update_stack"
                {
                        "reference_operator"
                        {
                                "operator"              "sos_reference_stack"
                                "reference_stack"               "src1_2d"
                                "operator_variables"
                                {
                                        "vsnd_files"
                                        {
                                                "value"
                                                {
                                                        "value0"                "sounds/the_hell_song.vsnd"
                                                }
                                        }
                                        "volume_min"
                                        {
                                                "value"         "1.000000"
                                        }
                                        "volume_max"
                                        {
                                                "value"         "1.000000"
                                        }
                                        "pitch_min"
                                        {
                                                "value"         "1.000000"
                                        }
                                        "pitch_max"
                                        {
                                                "value"         "1.000000"
                                        }
                                        "chan_type"
                                        {
                                                "value"         "0"
                                        }
                                        "memory_type"
                                        {
                                                "value"         "0"
                                        }
                                }
                        }
                }
        }
}
[свернуть]

4. Конвертирование или компиляция звуков
Откройте Dota Asset Browser (Список всего содержимого в вашей карте) и найдите добавленные вами звуки:
И откройте контекстное меню(Правой кнопкой мыши), где будут пункты: Full recompile и Reload
Надо сперва выбрать пункт Full recompile, а затем Reload. Так надо проделать с каждым добавленным звуком.


Если все правильно сделано, то у вас должны появится скомпилированные звуки и списки в папках: game\dota_addons\ADDON_NAME\sounds\ и в game\dota_addons\ADDON_NAME\soundevents\ соответственно.

5. Предзагрузка(preload) звуков перед использованием
Перед тем как воспроизвести звуки, надо их предзагрузить.
Указывать сами звуки не надо, надо указать только файл списка.
Код
PrecacheResource("soundfile", "soundevents/НАЗВАНИЕ_СПИСКА.vsndevts", context )

Дополнение
Гайд является вольным переводом-адаптацией с сайта http://moddota.com/forums/discussion/174/adding-and-playing-custom-sounds
В качестве примера были использованы материалы из карты SlideNinjaSlide. Спасибо автору за многие наработки и предоставление исходного кода на гитхабе: https://github.com/ynohtna92/SlideNinjaSlide
« Последнее редактирование: 11-02-2016, 21:23:24 от oplkill »

Оффлайн CryDeS

  • Друзья CG
  • 1212
  • Мощь: 12
Re: [Гайд] Добавляем звуки/музыку
« Ответ #1 : 12-02-2016, 09:32:22 »
Отличный гайд, репу апнул.

Оффлайн Илья

  • Супермодератор
  • 2131
  • Мощь: 21
Re: [Гайд] Добавляем звуки/музыку
« Ответ #2 : 12-02-2016, 10:06:53 »
Добавил бы от себя, как использовать потом эти звуки (вызов, пример с таймером, по действию и т.п.), а то в основном спрашивают именно это.

Оффлайн oplkill

  • 34
  • Мощь: 0
  • Jungle race и Simple Dota 2 Editor
Re: [Гайд] Добавляем звуки/музыку
« Ответ #3 : 12-02-2016, 11:18:54 »
Илья, Скоро добавлю, как только сам разберусь :)

Оффлайн WooSub

  • 3
  • Мощь: 0
Re: [Гайд] Добавляем звуки/музыку
« Ответ #4 : 10-02-2017, 13:07:15 »
Не работает ! Asset Browser просто не видит звуковые файлы  :'(

Оффлайн MahouShoujo

  • Продвинутый
  • 201
  • Мощь: 3
Re: [Гайд] Добавляем звуки/музыку
« Ответ #5 : 10-02-2017, 16:21:22 »
Когда не видит файлы помогает просто перезапустить тулс.  У меня было так что обнаруживалось только 10 из 80 файлов или вроде того, после перезапуска все нормализуется.

Оффлайн Илья

  • Супермодератор
  • 2131
  • Мощь: 21
Re: [Гайд] Добавляем звуки/музыку
« Ответ #6 : 10-02-2017, 16:56:26 »
Насчет фалов:

Цитировать
4. Конвертирование или компиляция звуков
Откройте Dota Asset Browser (Список всего содержимого в вашей карте) и найдите добавленные вами звуки:
И откройте контекстное меню(Правой кнопкой мыши), где будут пункты: Full recompile и Reload
Надо сперва выбрать пункт Full recompile, а затем Reload. Так надо проделать с каждым добавленным звуком.

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

Оффлайн HK.Nears

  • 5
  • Мощь: 0
Re: [Гайд] Добавляем звуки/музыку
« Ответ #7 : 12-02-2017, 08:01:39 »
Делал всё по гайду, ничего не работает, пытался рекомпильнуть файл описания звуков, не получается, ошибка(Cannot Recompile: Source file not present.) а саму музыку вообще не находит. Помогите пожалуйста.

Оффлайн I_Explorer

  • 231
  • Мощь: 4
Re: [Гайд] Добавляем звуки/музыку
« Ответ #8 : 12-02-2017, 09:00:10 »
Запишите видео-гайд всё сразу станет ясно и понятно.
Мой недо-мод для ДотА2 - steamcommunity.com/...ils/?id=765024602

Оффлайн Son1cPr00wer

  • 22
  • Мощь: 0
  • H3110 W0Я1D
Re: [Гайд] Добавляем звуки/музыку
« Ответ #9 : 25-09-2017, 09:38:24 »
Плюсую к вопросу, как правильно использовать звуки (уже имеющиеся в доте) с кастомными скиллами\абилками.
Наткнулся на такие строчки, а разобрать не могу, почему не воспроизводится (прекэш делал, звуки стандартные).
Ну и еще сам формат записи не всегда понятен, действовать наобум не хочется, а списка пока не нашел.
Спойлер
Код
--В Lua
EmitSoundOn(keys.sound2, caster.missile)
--
keys.caster:EmitSound("Hero_Invoker.ChaosMeteor.Cast")
--
keys.caster:EmitSound("Hero_Invoker.ChaosMeteor.Loop")
--

--В datadriven
"FireSound"
        {
        "EffectName" "Hero_ChaosKnight.ChaosStrike"
        "Target" "CASTER"
        }
--
"sound" "Hero_Gyrocopter.HomingMissile"
[свернуть]

Оффлайн Son1cPr00wer

  • 22
  • Мощь: 0
  • H3110 W0Я1D
Re: [Гайд] Добавляем звуки/музыку
« Ответ #10 : 25-09-2017, 09:50:41 »
Видимо, пора идти спать ;D ;D ;D ;D ;D
Используй d2modkit, там можно посмотреть название все такие из vsdn файла.

Оффлайн Илья

  • Супермодератор
  • 2131
  • Мощь: 21
Re: [Гайд] Добавляем звуки/музыку
« Ответ #11 : 25-09-2017, 10:16:40 »
В dd "FireSound" очень простой, но чтобы его правильно использовать, нужно понимать, когда его можно вызывать.
Читайте:
customgames.ru/fo...x.php?topic=169.0
moddota.com/forum...-events-modifiers

А в луа несколько способов проиграть звук и каждый используется для своих целей. Ищите здесь по sound:
developer.valvesoftware.com/...ting/API

Если не понимаете, как это использовать, читайте гайды по lua.

Оффлайн Son1cPr00wer

  • 22
  • Мощь: 0
  • H3110 W0Я1D
Re: [Гайд] Добавляем звуки/музыку
« Ответ #12 : 25-09-2017, 15:40:07 »
В dd "FireSound" очень простой, но чтобы его правильно использовать, нужно понимать, когда его можно вызывать.

Мда. Всё дело было в том, что я саунд позже эффекта поставил? Чёт совсем сурово, хотя есть в этом логика. Прекэш вернул в AddonGameMode.lua.
И всё. Спасибо кстати на ссылку на моддота в другой теме, почему-то не натыкался, кое-что нашел интересное для себя.

Оффлайн vulkantsk

  • 179
  • Мощь: 4
  • Дотер - игрушка дьявола в руках Габена
Re: [Гайд] Добавляем звуки/музыку
« Ответ #13 : 14-10-2017, 13:21:29 »
Столкнулся с такой проблемой , после компиляции всех звуков файл vsndevts_c в папке мода не появлялся , в связи с этим пришлось искать другое решение и я его нащел.
Оказывается есть отдельный рекомпилятор для подобных файлов по адресу "game/bin/win64/resourcecompiler.exe"
Через эту прогу можно как звуковые файлы(mp3) так и списки (vsndevts).
Денег нет, но вы держитесь !
G ??? ??? D Gabe , W :D LL Pay :D D !

Оффлайн I_GRIN_I

  • Продвинутый
  • 608
  • Мощь: 11
  • Научиться бы скриптить...
Re: [Гайд] Добавляем звуки/музыку
« Ответ #14 : 14-10-2017, 14:03:29 »
vulkantsk,
Цитировать
Откройте Dota Asset Browser (Список всего содержимого в вашей карте) и найдите добавленные вами звуки:
И откройте контекстное меню(Правой кнопкой мыши), где будут пункты: Full recompile и Reload
Надо сперва выбрать пункт Full recompile, а затем Reload. Так надо проделать с каждым добавленным звуком.
Что тебе здесь не понятно?