Left 4 Dead 2

Left 4 Dead 2

27 ratings
Как редактировать вокализатор и добавить особые фразы
By Lancer
Вы пользуетесь вокализатором, в котором вроде бы и много фраз, но все они какие-то скучные и вы хотели бы добавить свою? Тогда вы по адресу: в этом руководстве я постараюсь максимально доступно описать процесс редактирования УЖЕ СУЩЕСТВУЮЩЕГО вокализатора и добавления уникальных фраз (на примере той, что на картинке сего руководства). ВАЖНО: работать будет только на ЛОКАЛЬНОМ и ВЫДЕЛЕННОМ серверах, где установлен данный вокализатор. На официальных серверах Valve модифицированные фразы НЕ РАБОТАЮТ. Так что кого это устраивает - продолжайте чтение
   
Award
Favorite
Favorited
Unfavorite
Почему не работает на официальных серверах?
Для начала стоит разобраться, как вообще устроен вокализатор. Вокализатор позволяет проиграть фразу, которая описана в файле под названием "talker" (токер). Токер это набор правил (rule) и ответов (response) на каждую отдельную фразу. Для каких-то фраз правила простые, например: для того чтобы сказать "спасибо", нужно всего лишь не находится в дыму курильщика и не кашлять. А для некоторых фраз существуют особые правила. Пример: вы играете за Эллиса, кампания Переход, 2 глава, прыжок в канализацию. На этом моменте Эллис крикнет "ДЖЕРОНИМОООООО". Так вот для этой фразы помимо условия "не быть в дыму курильщика" есть еще условие "должен быть пересечен триггер", который как раз находится только на этом моменте с прыжком в канализацию и больше нигде в игре. Потому такие фразы считаются Особыми (Limited) и могут быть использованы, только если модифицировать токер и играть с ним на локальном или выделенном сервере.
Создание вокализатора с нуля
Редактировать будем уже готовый вокализатор. Создание своего с нуля - процесс трудоемкий, да и незачем это, когда можно взять готовенький и переделать его на свой лад. Советую прочесть эти руководства, они дают хорошую базу, чтобы понимать устройство вокализатора лучше:

https://steamhost.cn/steamcommunity_com/sharedfiles/filedetails/?id=2046926481
https://steamhost.cn/steamcommunity_com/sharedfiles/filedetails/?id=1224992309
С чего начинать
Работать будет со всеми вокализаторами, но я покажу на примере вот этого:

https://steamhost.cn/steamcommunity_com/sharedfiles/filedetails/?id=2286320106
Подписываемся на него. Заходим в игру, чтобы загрузился. Выходим.

Если вы уже пользуетесь вокализатором, то сделайте его резервную копию, на случай если где-то зафакапитесь и поменяете что-то, что не следовало.

Итак, помимо вокализатора нам понадобится:
1) Программа GCFScape, можете найти в гугле или скачать по ссылке: https://nemstools.github.io/pages/GCFScape-Download.html
2) Два пакетика Инструмент Left 4 Dead 2 Authoring Tools: идем в библиотеку игр, вверху слева жмем на "Игры" и ставим галку напротив "Инструменты". Далее ищем в списке Left 4 Dead 2 Authoring Tools и устанавливаем его. Запустите утилиту и можете сразу закрывать.

Извлечение
Идем по этому пути:
ДИСК:\Steam\steamapps\common\Left 4 Dead 2\left4dead2\addons\workshop

Цифры картинки и vpk-файла всегда совпадают, потому по ней и находим вокализатор. Жмем правой кнопкой -> Открыть с помощью GCFScape.

Извлекаем содержимое: папку root перетаскиваем мышью, куда удобно будет, на рабочий стол, к примеру.


Не забудьте отписаться от вокализатора в мастерской, так как вторая копия нам не нужна.
Редактирование
Открываем папку root и за ней сразу же папку scripts. В ней находится папка talker, файл kb_act.lst и текстовик radialmenu.txt.

Можете открыть файл radialmenu.txt и ознакомиться с его содержимым - именно тут находятся радиальные колеса, которые в игре вызываются кнопками. Сейчас нам необходимо разобраться, куда мы будем вставлять нужные нам фразы, так как все радиальные колеса заняты подчистую. Есть 2 варианта:

1) Почистить уже существующие радиальные колеса от фраз
2) Создать дополнительные радиальные меню

Про оба варианта подробнее. Если вы пользуетесь абсолютно всеми радиальными меню, то для вас вариант только один - делать дополнительные меню. Если же вы считаете, что какие-то фразы вам не нужны, то смело можете чистить уже существующие радиалки.

Чистим существующие радиальные меню

На примере радиального меню "NPC" - вот так оно выглядит "стоковым":



А вот так "чистым":



По этому же принципу чистим и другие радиалки, если считаете необходимым.

Создаем дополнительные меню

В папке scripts открываем файл kb_act.lst с помощью любого текстового редактора и проматываем в самый низ. Нам нужно добавить следующую строчку:

"+mouse_menu Misc7" "Прочее 7"



Вместо Misc7 можем писать любое другое название, главное латиницей, без пробелов и чтоб имя было единственным в файле (более одного Misc7 быть не может). "Прочее 7" можем переименовать во что угодно.

Теперь идем в файл radialmenu.txt, копируем любую радиалку и заменяем ее название на то, что вы дали в файле kb_act.lst. В моем примере это Misc7, потому радиальное колесо будет выглядеть вот так:

Добавление фраз
Самое интересное. Как же вписать свою фразу? В самом начале руководства я писал, что для примера запишу в токер фразу "Так, але, я не понял, это че?" Это фраза Тренера, а потому для ее использования целесообразно освободить место в меню отдельных персонажей (character-specific), но также можно и в общих.

Нас интересует содержимое папки talker, а именно файлы imt_coach.txt (Тренер), imt_gambler.txt (Ник), imt_mechanic.txt (Эллис), imt_producer.txt (Ро), imt_teengirl.txt (Зой), imt_namvet.txt (Билл), imt_biker.txt (Фрэн), imt_manager.txt (Луис), imt_criteria.txt (Условия). Остальные текстовики не трогаем.


Шаг 1: imt_coach.txt

Открываем imt_coach.txt, так как этот файл отвечает за набор фраз Тренера, для удобства листаем сразу в самый низ.
Чтобы долго вас не томить - вот так будет выглядеть код для вышеописанной фразы:



Разберем его. Response это ответ - фраза, которая проигрывается. Rule - правило, которое определяет условия, при которых фраза проиграется. Название ответа и правила должны быть идентичными.

Название состоит из трех частей - iMT_TakAleCoach

1) iMT - понятия не имею, что это, но оно точно отвечает за то, что фраза особая. Если эту приставку убрать, то ничего не получится.
2) TakAle - собственно название голосовой команды. Должно быть уникальным в файле и не повторяться. Можете выбрать любое на свой выбор
3) Coach - играбельный персонаж, чьими устами фраза будет произнесена. Если бы это был Эллис, то вместо Coach был бы Mechanic и так по аналогии с другими персонажами.

-------- scene "scenes/Coach/friendlyfire02.vcd" - это непосредственный путь к звуковой дорожке.

Прослушать все дорожки вы можете по этому пути:

для персонажей 2 части - ДИСК:\Steam\steamapps\common\Left 4 Dead 2\left4dead2\sound\player\survivor\voice

для персонажей 1 части - ДИСК:\Steam\steamapps\common\Left 4 Dead 2\left4dead2_dlc2\sound\player\survivor\voice

фразы из кампании "Переход" - ДИСК:\Steam\steamapps\common\Left 4 Dead 2\left4dead2_dlc1\sound\player\survivor\voice

ВАЖНО: scene "scenes/Coach/friendlyfire02.vcd" - здесь менять можно только Coach и friendlyfire02. Все, что до Coach и после точки НЕ ТРОГАЕМ (то есть "scenes/ и .vcd" остаются всегда). Если нам нужен Эллис, то пишем вместо Coach Mechanic. Билл - NamVet, Зой - TeenGirl, Луис - Manager, Фрэн - Biker, Ро - Producer, Ник - Gambler.

-------- criteria iMT_TakAle IsCoach - здесь уже команда iMT_TakAleCoach без Coach в конце.
isCoach это правило - оно здесь единственное. Чтобы фраза произнеслась, вы должны играть за Тренера. Опять же, для других персонажей Coach меняем на их позывные, написал выше. Слово "criteria" не трогаем.

-------- Response iMT_TakAleCoach - также, как и с "criteria", слово "response" не трогаем. После "response" идет точь в точь название команды.

Здесь закончили. Сохраняем изменения и идем дальше.

Шаг 2: imt_criteria.txt

Открываем файл imt_criteria.txt и листаем, пока не увидим //Coach
Вообще можно в любом месте прописать код, но для удобства сделаем это именно там, где и остальные фразы Тренера. Пишем следующее:

Criterion "iMT_TakAle" "Concept" "iMT_TakAle" required



Если будете добавлять другие фразы, то просто копируете эту строчку. Меняться будет только часть в кавычках после iMT_
Главное, чтобы значения в кавычках после Criterion и Concept были одинаковыми.

Сохраняем и едем дальше.

Шаг 3: radialmenu.txt

Из папки talker выходим и открываем radialmenu.txt. Тут нам понадобится наше подчищенное радиальное меню. Возле command прописываем в кавычках "vocalize iMT_TakAle"
Возле text также в кавычках пишем название фразы. Желательно в двух словах, чтоб оно не накладывалось на другие фразы, например "Так, алё". В моем радиальном меню будет выглядеть так:



По названию направлений, думаю, сами разберетесь. Center - центральная секция, остальные - направления компаса.

Сохраняем изменения и закрываем все файлы. Теперь нам необходимо папку конвертировать обратно в vpk. Для этого идем по следующему пути: ДИСК:\Steam\steamapps\common\Left 4 Dead 2\bin

Находим в самом низу файл vpk.exe. Папку root мышью перетаскиваем на этот файл vpk.exe и в той же директории, где у вас лежит папка root, появится root.vpk. Если была на рабочем столе, то там и появится. Переименовываем root.vpk в любое другое название, например vocalizer.vpk и закидываем его по следующему пути: ДИСК:\Steam\steamapps\common\Left 4 Dead 2\left4dead2\addons

Ну и все. В игре создаем локальный сервер и за Тренера теперь можем воспроизвести заветную фразу. Если вы создавали радиальное колесо, то в настройках управления не забудьте присвоить клавишу.

Краткий итог, чтобы добавить фразу:

1) Пишем Rule и Response в файл, отвечающий за конкретного персонажа - для Тренера imt_coach.txt, Эллис - imt.mechanic.txt и т.д.
2) Пишем строчку Criterion "iMT_НАЗВАНИЕ" "Concept" "iMT_НАЗВАНИЕ" required в файл imt_criteria.txt.
3) Пишем в radialmenu.txt vocalize iMT_НАЗВАНИЕ и ниже название команды.
4) Сохраняем изменения, конвертируем папку в vpk и закидываем в addons.
Другие примеры
Чтобы было понятнее, приведу пару примеров других фраз.
1) Персонаж Эллис, фраза "ДЖЕРОНИМОООО":

-------- imt_mechanic.txt:

Response iMT_CannonballMechanic
{
scene "scenes/Mechanic/dlc1_c6m2_phase2jumpinwater06.vcd"
}
Rule iMT_CannonballMechanic
{
criteria iMT_Cannonball IsMechanic
Response iMT_CannonballMechanic
}

-------- imt_criteria.txt:
Criterion "iMT_Cannonball" "Concept" "iMT_Cannonball" required

-------- radialmenu.txt:
В пустую секцию напротив "command" пишем "vocalize iMT_Cannonball" и напротив "text" свое название "Джеронимо"

2) Персонаж Ник, фраза "Мы - 4 всадника апокалипсиса":

-------- imt_gambler.txt:

Response iMT_FourRidersGambler
{
scene "scenes/Gambler/Hurrah10.vcd"
}
Rule iMT_FourRidersGambler
{
criteria iMT_FourRiders IsGambler
Response iMT_FourRidersGambler
}

-------- imt_criteria.txt
Criterion "iMT_FourRiders" "Concept" "iMT_FourRiders" required

-------- radialmenu.txt:
В пустую секцию напротив "command" пишем "vocalize iMT_FourRiders" и напротив "text" свое название "4 всадника"
Внимание
Спасибо за внимание
1 Comments
Meag 22 Jun, 2023 @ 10:49am 
ого