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

oplkill

Пользователь
2 Янв 2016
34
3
Данный гайд о том, как добавить звуки или музыку(в дальнейшем звуки) в карту правильно, чтобы все работало.

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" - это название и путь файла звука, который дота потом сохранит. Не забудьте указать подпапки, если таковые создавали.

Ie2Zp2FRSA.png

Код:
"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. Так надо проделать с каждым добавленным звуком.
GFLWhIiaoP.png


Если все правильно сделано, то у вас должны появится скомпилированные звуки и списки в папках: 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
 
Последнее редактирование модератором:

Илья

Друзья CG
25 Сен 2015
2,348
41
Добавил бы от себя, как использовать потом эти звуки (вызов, пример с таймером, по действию и т.п.), а то в основном спрашивают именно это.
 

oplkill

Пользователь
2 Янв 2016
34
3
Илья, Скоро добавлю, как только сам разберусь :)
 

WooSub

Новичок
10 Фев 2017
3
0
Не работает ! Asset Browser просто не видит звуковые файлы :'(
 

MahouShoujo

Продвинутый
3 Ноя 2016
251
23
Когда не видит файлы помогает просто перезапустить тулс. У меня было так что обнаруживалось только 10 из 80 файлов или вроде того, после перезапуска все нормализуется.
 

Илья

Друзья CG
25 Сен 2015
2,348
41
Насчет фалов:

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

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

HK.Nears

Пользователь
12 Фев 2017
47
7
boosty.to
Проект
Rebellion of the Monsters, The Dungeon, Hide&Kill, Memes of Dota, Memes of Dota 2, Unreal Defense
Делал всё по гайду, ничего не работает, пытался рекомпильнуть файл описания звуков, не получается, ошибка(Cannot Recompile: Source file not present.) а саму музыку вообще не находит. Помогите пожалуйста.
 

I_Explorer

Друзья CG
30 Июл 2016
318
16
Проект
Жизнь в тюрьме
Запишите видео-гайд всё сразу станет ясно и понятно.
 

Son1cPr00wer

Пользователь
23 Сен 2017
43
2
vk.com
Проект
Whack-A-Meepo
Плюсую к вопросу, как правильно использовать звуки (уже имеющиеся в доте) с кастомными скиллами\абилками.
Наткнулся на такие строчки, а разобрать не могу, почему не воспроизводится (прекэш делал, звуки стандартные).
Ну и еще сам формат записи не всегда понятен, действовать наобум не хочется, а списка пока не нашел.
Код:
--В 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"
 
Последнее редактирование модератором:

Илья

Друзья CG
25 Сен 2015
2,348
41
В dd "FireSound" очень простой, но чтобы его правильно использовать, нужно понимать, когда его можно вызывать.
Читайте:
https://customgames.ru/forum/index.php?topic=169.0
http://moddota.com/forums/discussion/13/datadriven-ability-events-modifiers

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

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

Son1cPr00wer

Пользователь
23 Сен 2017
43
2
vk.com
Проект
Whack-A-Meepo
В dd "FireSound" очень простой, но чтобы его правильно использовать, нужно понимать, когда его можно вызывать.

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

vulkantsk

Супермодератор
Команда форума
21 Июн 2017
1,137
196
www.dotabuff.com
Проект
Roshan defense
Столкнулся с такой проблемой , после компиляции всех звуков файл vsndevts_c в папке мода не появлялся , в связи с этим пришлось искать другое решение и я его нащел.
Оказывается есть отдельный рекомпилятор для подобных файлов по адресу "game/bin/win64/resourcecompiler.exe"
Через эту прогу можно как звуковые файлы(mp3) так и списки (vsndevts).
 
Последнее редактирование модератором:

I_GRIN_I

Друзья CG
15 Мар 2016
1,335
105
vulkantsk,
Откройте Dota Asset Browser (Список всего содержимого в вашей карте) и найдите добавленные вами звуки:
И откройте контекстное меню(Правой кнопкой мыши), где будут пункты: Full recompile и Reload
Надо сперва выбрать пункт Full recompile, а затем Reload. Так надо проделать с каждым добавленным звуком.
Что тебе здесь не понятно?
 

vulkantsk

Супермодератор
Команда форума
21 Июн 2017
1,137
196
www.dotabuff.com
Проект
Roshan defense
[quote author=vulkantsk link=topic=733.msg11877#msg11877 date=1507987289]
после компиляции всех звуков файл vsndevts_c в папке мода не появлялся
[/quote]
 

vulkantsk

Супермодератор
Команда форума
21 Июн 2017
1,137
196
www.dotabuff.com
Проект
Roshan defense
Зачем вообще это было писать ?
Если свою проблему я решил , причем намного эффективнее , чем описано в гайде.
То есть без запуска ассет браузера , я получил абсолютно тот же результат.
 

I_GRIN_I

Друзья CG
15 Мар 2016
1,335
105
vulkantsk, с учетом того, что ассет браузер запускается с самой дотой, а ты еще что то качал и ставил, лол
 

vulkantsk

Супермодератор
Команда форума
21 Июн 2017
1,137
196
www.dotabuff.com
Проект
Roshan defense
[quote author=I_GRIN_I link=topic=733.msg11910#msg11910 date=1508159676]
vulkantsk, с учетом того, что ассет браузер запускается с самой дотой, а ты еще что то качал и ставил, лол
[/quote]
Это прога встроенная , добавляется вместе с воркшопом !
 
Реклама: