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

oplkill

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

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

proxy.php?image=http%3A%2F%2Fpastexen.com%2Fi%2FIe2Zp2FRSA.png&hash=854ba8cce47cc15919656d4f8636c353

Код:
"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. Так надо проделать с каждым добавленным звуком.
proxy.php?image=http%3A%2F%2Fpastexen.com%2Fi%2FGFLWhIiaoP.png&hash=55eba11d300ee88929128bb137792712


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

CryDeS

Друзья CG
14 Июл 2015
1,210
9
38
18
Реакции
9 0 0
#2
Отличный гайд, репу апнул.
 

Илья

Супермодератор
Команда форума
25 Сен 2015
2,348
41
48
27
Реакции
41 0 0
#3
Добавил бы от себя, как использовать потом эти звуки (вызов, пример с таймером, по действию и т.п.), а то в основном спрашивают именно это.
 

oplkill

Пользователь
2 Янв 2016
34
0
6
24
Реакции
0 0 0
#4
Илья, Скоро добавлю, как только сам разберусь :)
 

WooSub

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

MahouShoujo

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

Илья

Супермодератор
Команда форума
25 Сен 2015
2,348
41
48
27
Реакции
41 0 0
#7
Насчет фалов:

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

HK.Nears

Пользователь
12 Фев 2017
15
0
1
18
Реакции
0 0 0
#8
Делал всё по гайду, ничего не работает, пытался рекомпильнуть файл описания звуков, не получается, ошибка(Cannot Recompile: Source file not present.) а саму музыку вообще не находит. Помогите пожалуйста.
 

I_Explorer

Друзья CG
30 Июл 2016
310
16
18
19
г.Чайковский
Проект
Жизнь в тюрьме
VK
https://vk.com/id202548160
Реакции
16 0 0
#9
Запишите видео-гайд всё сразу станет ясно и понятно.
 

Son1cPr00wer

Пользователь
23 Сен 2017
43
1
6
27
https://www.youtube.com/user/SonicProower/
vk.com
Проект
Whack-A-Meepo
Реакции
1 0 0
#10
Плюсую к вопросу, как правильно использовать звуки (уже имеющиеся в доте) с кастомными скиллами\абилками.
Наткнулся на такие строчки, а разобрать не могу, почему не воспроизводится (прекэш делал, звуки стандартные).
Ну и еще сам формат записи не всегда понятен, действовать наобум не хочется, а списка пока не нашел.
Код:
--В 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

Пользователь
23 Сен 2017
43
1
6
27
https://www.youtube.com/user/SonicProower/
vk.com
Проект
Whack-A-Meepo
Реакции
1 0 0
#11
Последнее редактирование модератором:

Илья

Супермодератор
Команда форума
25 Сен 2015
2,348
41
48
27
Реакции
41 0 0
#12
В 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
1
6
27
https://www.youtube.com/user/SonicProower/
vk.com
Проект
Whack-A-Meepo
Реакции
1 0 0
#13
В dd "FireSound" очень простой, но чтобы его правильно использовать, нужно понимать, когда его можно вызывать.
Мда. Всё дело было в том, что я саунд позже эффекта поставил? Чёт совсем сурово, хотя есть в этом логика. Прекэш вернул в AddonGameMode.lua.
И всё. Спасибо кстати на ссылку на моддота в другой теме, почему-то не натыкался, кое-что нашел интересное для себя.
 
Последнее редактирование модератором:

vulkantsk

Друзья CG
21 Июн 2017
676
84
28
18
https://steamcommunity.com/profiles/76561198307890
www.dotabuff.com
Проект
Roshan defense
Реакции
79 0 5
#14
Столкнулся с такой проблемой , после компиляции всех звуков файл vsndevts_c в папке мода не появлялся , в связи с этим пришлось искать другое решение и я его нащел.
Оказывается есть отдельный рекомпилятор для подобных файлов по адресу "game/bin/win64/resourcecompiler.exe"
Через эту прогу можно как звуковые файлы(mp3) так и списки (vsndevts).
 
Последнее редактирование модератором:

I_GRIN_I

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

I_GRIN_I

Друзья CG
15 Мар 2016
1,156
93
48
20
Реакции
92 0 1
#17
vulkantsk, СКОМПИЛИРУЙ САМ VSNDEVTS
 

vulkantsk

Друзья CG
21 Июн 2017
676
84
28
18
https://steamcommunity.com/profiles/76561198307890
www.dotabuff.com
Проект
Roshan defense
Реакции
79 0 5
#18
Зачем вообще это было писать ?
Если свою проблему я решил , причем намного эффективнее , чем описано в гайде.
То есть без запуска ассет браузера , я получил абсолютно тот же результат.
 

I_GRIN_I

Друзья CG
15 Мар 2016
1,156
93
48
20
Реакции
92 0 1
#19
vulkantsk, с учетом того, что ассет браузер запускается с самой дотой, а ты еще что то качал и ставил, лол
 

vulkantsk

Друзья CG
21 Июн 2017
676
84
28
18
https://steamcommunity.com/profiles/76561198307890
www.dotabuff.com
Проект
Roshan defense
Реакции
79 0 5
#20
[quote author=I_GRIN_I link=topic=733.msg11910#msg11910 date=1508159676]
vulkantsk, с учетом того, что ассет браузер запускается с самой дотой, а ты еще что то качал и ставил, лол
[/quote]
Это прога встроенная , добавляется вместе с воркшопом !
 
Реклама:
Реклама: