XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов> Желтая пресса: обучающие статьи
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

 
Blackdoom

offline
Опыт: 1,973
Активность:
Как проигрывать MID файлы в ВарКрафте
Вместо вступления

Задумал как-то я сделать картишку в ВарКрафте. Придумал сценарий, кучу интересных фичей и дрррр. Чтобы добавить в нее атмосферности «позаимствовал» несколько треков в mid формате. Не буду рассказывать, как я перегонял их в mp3, ужимал и сколько места они занимали в итоге – злостное и неблагодарное это было занятие.
Без музыки моя карта теряет свой неповторимый стиль , и я стал поднимать темы на форумах в поисках способа использования mid’и в ВарКрафте. На XGM я нашел две темы по этому вопросу, но единственное возможное решение предлагало импортировать в карту кроме mid и модифицированной slk еще и dls библиотеку, размер которой меньше мегабайта ну никак не может быть. При чем нужно было создавать свой dls из стандартного, встроенного в Виндовс gm.dls, т.к. сам он весит всего лишь 3,5 мб. (подробнее о dls ). Этот способ вполне мог прокатить в кампании, но в одной карте, рассчитанной на мультиплеер, уже нет.
В этой статье я расскажу о том как заставить звучать миди, не трогая dls вообще, спасибо DioD’у, за любезно предоставленную ссылку на тему с решение данной проблемы. Ссылка на оригинал.
Ниже я выложу архив с модифицированным MIDISounds.slk и reg-ключем, а также карту-пример.
Преимущество данного метода налицо: вместо одного mp3 файла, длиной в минуту, с битрейтом 48 kbps и 22 kHz, можно импортировать 10-30 треков такой же длины, но с более высоким качеством звучания, если конечно mid файлы нормальные.
Метод может пригодиться тем, в первую очередь тем, кто делает проекты с использованием музыки из старых игр, например второго Варкрафта или первого Диаблы.
Не буду скрывать, что данный способ имеет и слабые стороны, главные из которых это:
- чтобы карта-пример проигрывала миди, необходимо, чтобы у вас Виндовс стоял на диске C, хотя это можно решить, изменив путь в slk-таблице.
- также придется скопировать MIDISounds.slk в директорию Варкрафта, соблюдая путь. С slk, хранящейся в mpq, она конфликтовать не будет
- некоторые миди просто отказываются работать, не имею в понятия, в размере, длине или в количестве дорожек дело.

Использование внешних файлов

Первое что нужно сделать - разрешить Варкрафту пользоваться файлами, находящимися вне mpq-архивов и не импортированных в вашу карту.
Сделать это можно тремя путями:
а) Просто добавить прикрепленный ключ регистра в реестр.
б) Поставить опцию "Allow Local Files" в WE Enhancer в разделе Editor Settings
в) Изменить значение вручную - для этого в реестре в ветке [HKEY_CURRENT_USER\Software\Blizzard Entertainment\Warcraft III] параметру "Allow Local Files" нужно поставить значение 1 (0х00000001)[/indent]
Затем следует распаковать папку UI из архива в директорию с варкрафтом. У меня это выглядит так: C:\Games\Warcraft III\UI\SoundInfo\ MIDISounds.slk
Попробуйте запустить приложенную к статье карту. Если же играет стандартная вариковская музыка, значит придется изменять путь к gm.dls в MIDISounds.slk, которую вы должны были распаковать в папку с ВарКрафтом

Настраиваем slk

Для того чтобы посмотреть только на мой пример, если пройдя вышеизложенные шаги, музыка НЕ звучит вообще, или играет стандартная, то вам нужно лишь правильно указать путь к gm.dls , вам достаточно лишь указать DirectoryBase(см п.2)
Цитата:
1.В столбце SoundLabel указывается имя темы окружения. Оно необходимо для вызова триггера, чтобы на любом тайтлсете вместо своих звуков играла ваша музыка. Внимание! Имя темы не должно повторять стандартные имена, при чем желательно сделать его уникальным.
2.Во второй колонке DirectoryBase, следует указать путь к папке в которой лежит стандартная библиотека инструментов gm.dls. Внимание!! В моем slk считается, что виндовс у вас стоит на диске С! Два основных возможных варианта это – «C:\Windows\system32\drivers» и «D:\Windows\system32\drivers».
3. Колонка номер три никакой ценности не представляет, потому что файл, указанный в ней мы использовать не будем, поэтому можно дать какое нибудь «левое» имя файла, например null.mid или none.mid, по той причине, что в директории, которую мы указали в DirectoryBase в нашем случае никакого mid’а вообще нет.
4. Четветый столбец DLSFileName, указывает имя dls-библиотеки, хранящейся в DirectoryBase, а зовут ее gm.dls.
Внимание! При неправильном указании пути к gm.dls, ВарКрафт может пытаться проигрывать mid при помощи своих dls (удовольствие не для слабонервных) либо не проигрывать вообще!
Остальные столбцы я рассматривать не буду, т.к. кроме Volume остальные никакого интереса не представляют, да и не такой уж я знаток slk и миди.

Настройка миди в вашей карте

Запустите World Editor, импортируйте в свою карту при помощи Import manager’а необходимые mid и зайдите в Trigger editor. В нем создайте новый триггер, с событием Map initialization, затем трансформируйте его в JASS при помощи меню Edit->Convert to custom text. Между строками call TriggerAddAction и endfunction следует вставить следующие строки:
call SetAmbientDaySound( "AES" )
call SetAmbientNightSound( "AES" )

Ну а теперь сразу после этих добавьте еще одну строку:
call PlayMusicBJ("имявашегофайла.mid")
Попробуйте запустить карту, если вы все сделали правильно, то сразу же после начала игры будет играть ваш трек.
Внимание!! Если в имени файла указан путь к нему, например стандартный war3mapImported\, то в строке следует после каждого «\» ставить еще один такой же!! Например,
call PlayMusicBJ("war3apImported\\sound.mid").
ЖДУ ОТЗЫВОВ И КОММЕНТАРИЕВ
Прикрепленные файлы
Тип файла: zip midi.zip (123.4 Кбайт, 101 просмотров )

Отредактировано Blackdoom, 27.07.2006 в 12:01.
Старый 26.07.2006, 13:05
DioD

offline
Опыт: 45,134
Активность:
Поздравляю с переводом...
Старый 26.07.2006, 13:20
and_y87
Тру Кодер
offline
Опыт: 21,030
Активность:


MEXAHuK добавил:
Прикольная статейка-затейка!
Старый 26.07.2006, 15:32
Blackdoom

offline
Опыт: 1,973
Активность:
Bloody_Chainsaw файл этот есть в любой винде, начиная с 95!! Качать надо только слк!
смотри выше:
1. если винда стоит не на С, измени слк
2. проверь реестр
3. проверь, чтобы слк лежал в папке варика\ui\soundinfo\
Старый 26.07.2006, 17:15
and_y87
Тру Кодер
offline
Опыт: 21,030
Активность:
Однако гемор...
Старый 27.07.2006, 02:30
Blackdoom

offline
Опыт: 1,973
Активность:
Ахтунг! лечим гемор! Вместо карты и остального я выложил инсталяционный экзешник, который сам все сделает. Единственное что ему надо - внимательно укажите ему директорию с Варом.

ехе никакого вредного контента НЕ несет!!!
ссылка на него, еще раз

Цитата:
Файла-то нет..

ты о чем!?

Отредактировано Blackdoom, 27.07.2006 в 16:27.
Старый 27.07.2006, 12:03
Sir Lothar

offline
Опыт: 5,740
Активность:
Цитата:
ехе никакого вредного контента НЕ несет!!!

Оно и видно. Файла-то нет...
Старый 27.07.2006, 13:05
Алексей
Где кошачья мята?!
offline
Опыт: 26,303
Активность:
Я попробовал было создать MIDI-файл, который мог бы нормально проигрываться стандартными DLS War'а, но не тут-то было. Они вместо инструментов содержат всякую дрянь: карканье ворон, шорох снега и т.п.
Старый 17.08.2006, 20:16
DioD

offline
Опыт: 45,134
Активность:
Лол...
Близам просто не нужно было делать инструменты так как миди не было предназначено для музыки.
Старый 18.08.2006, 03:20
Blackdoom

offline
Опыт: 1,973
Активность:
Ни у кого не появилось мыслей по поводу того, КАК они сделали свои dls?
Старый 25.09.2006, 18:15
Iron
Листовой
offline
Опыт: 24,427
Активность:
1)А реестр трогать обязательно? А то я так и не понял, что он через реестр ищет.
2)Зачем кидать слк в ui\soundinfo? Лучше импортнуть его в карту прописав путь ui\soundinfo\

Iron добавил:
Все, с реестром допер. Но имхо это мелочь, но фатальная мелочь. Т.е. такую карту на DL ONLY в батле не распространишь, ибо большенство юзеров не будут гемориться переписывая реестр.
Старый 04.10.2006, 13:24
MapMan
Corey 8 Taylor
offline
Опыт: 21,554
Активность:
Цитата:
Поздравляю с переводом...
!
Старый 04.10.2006, 15:46
DanFi

offline
Опыт: 7,220
Активность:
А всё-таки, ка-же проигрывать миди в варе?
Архивы все поврежденны !

DanFi добавил:
Мне очень надоооо....
Старый 22.10.2006, 10:33
bladehamster

offline
Опыт: 3,660
Активность:
Это все равно г-о, тк у абсолютного большинства игроеов нестоит этот великолепный мод
Старый 25.10.2006, 09:28
vit
кааааррл
offline
Опыт: 3,586
Активность:
отличная затея для кампаний, для мультиплеера уг..
Старый 07.11.2009, 12:26
LordSerga

offline
Опыт: 3,809
Активность:
MEXAHuK:
MEXAHuK добавил:
Прикольная статейка-затейка!
Я бы за такой смайл морду бы оторвал =) нелюблю я эти европейские смайлы
Старый 11.04.2010, 13:29

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 08:25.