Космические Рейнджеры 2: Как вставить свою музыку в игру
Это скорее гайдлайн, чем точное руководство. Если я в чём-то ошибаюсь, можете меня поправить.
Я рассматриваю замену / добавление треков на примере планетарных боёв, однако ниже укажу, какие конфигурации / папки соответствуют другим режимам игры.
Понадобится: утилита BlockParEditor, медиа-конвертер с хорошей поддержкой кодеков (Format Factory, Total, тысячи их).
Для начала заводим папку, где аккуратно делаем бэкапы файлов игры, прежде чем редактировать или заменять их. Копируем в эту папку файлы Main.dat и MainNew.dat.
Берём музыку, которую хотим услышать в игре. Для начала я бы советовал взять 2-3 трека. Исходный формат не так важен (flac или mp3 всё равно надо конвертировать, wav не проверял).
Конвертируем их в нашем медиа-конвертере со следующими параметрами.
Для КР2: РеволюцияФормат: MP2, битрейт 320 ИЛИ 128 кбит/с, 2 канала, частота 44100.
Почему MP2, а не MP3? Потому что, если мы возьмём любой из файлов игры, отвечающий за музыку (longway.dat, surf.dat и т.д.), переименуем его в mp3 и посмотрим на него в MediaInfo, то увидим... Увидим сообщение MPEG Audio (Version 1) (Layer 3)... А это и есть формат MP2.
Кроме того, опытным путём было выяснено, что битрейт 192 / 224 / 256 Кбит игра воспроизводить не хочет...
Для КР HD: A War ApartФормат: ogg, частота 44100, стерео. Битрейт может быть и переменным.
Внимание! Если вы играете в лицензионную версию War Apart, при подключении к steam сервис проверяет подлинность файлов игры, соответственно она будет только вылетать. (Печалька, но ничего не поделаешь).
Кладём эти файлы в отдельную папку / куда хотите, и переименовываем их, меняя расширение mp2 на dat. Если файлов много (а когда научитесь, их скорее всего будет достаточно), можно воспользоваться удобной фичей Total Commandet - групповое переименование. Выделяем группу файлов, удерживая клавишу Shift, жмём Ctrl+M, меняем расширение по маске имени файла.
Кладём эти файлы в папку Battle, например.
Space Rangers 2 Revolution > music > battle
На этом этапе также можно переименовать файлы. Советую называть их коротенькими именами по 5 - 7 знаков, впрочем можете сохранять и полные названия. Просто потом придётся прописывать пути с полными названиями.
Создаём текстовый документ, где прописываем пути к вашим трекам, такого вида:
3=music\battle\Track.dat
где Track - это название вашего трека.
Имена треков обязательно должны совпадать с именами в путях, иначе игру ждёт неминуемый «вылет». Также, между строками и после них не должно быть пробелов и лишних символов (кэп на связи). Также, в текстовом файле не должно быть никаких лишних пробелов, символов и т.д.! Только указания путей!
То есть, если у вас треки называются, к примеру, Bieber1 и Buzova2, пути в текстовом файле должны им соответствовать! И для начала я настоятельно рекомендую прописать пути именно для первых двух-трёх треков. ВЫглядеть они должны так:
3=music\battle\Bieber1.dat
3=music\battle\Buzova2.dat
Треки можно помещать в любую папку, но в дальнейшем её имя должно соответствовать текстовому «пути». Т.е. если вы создали, например, папку с именем kote, то и путь будет выглядеть так:
3=kote\Bieber1.dat
Открываем BlockParEditor, с его помощью открываем файл Main.dat. (кнопочкой Open).
Видим структуру конфигурации игры. Нас интересует папка Music, наводим на неё курсор и жмём Enter.
Видим конфигурации, отвечающие за музыку в игре. В папке All указаны пути к музыке, которая будет воспроизводиться во всех режимах. В папке Robot - к музыке в ПБ.
Нажав на папку ещё раз, видим отдельные конфиги (с путями для каждого трека). Редактировать их напрямую вы не можете, но можете удалять и дублировать. Соответственно, один из трёх треков, играющих в All, я советую оставить, остальные - удалить. (Потом научитесь составлять конфиги и вернёте / вставите практически любую музыку, которую хотите).
В папке All пока оставляем один трек, например longway. Идём в папку Robot, жмём по ней правой кнопкой, выбираем Import from txt, выбираем ваш текстовый документ, где заранее были прописаны пути к вашим трекам.
Видим, что конфигурация музыки в Robot изменилась, жмём Save to dat, выбираем всё тот же файл Main.dat и сохраняем (с перезаписью).
Для MainNew конфигурация почти такая же, насколько мне известно. Но на первые разы советую открывать и редактировать оба файла отдельно. (Вы же сделали их бэкапы и положили в отдельную папку, да?)
Запускаем игру, выбираем демо любого ПБ и слушаем. Если воспроизводится только longway, значит, вы что-то сделали неправильно. Если ваши треки начали воспроизводиться, выходим из игры и делаем те же операции для следующих треков, которые вы хотите «вставить» в игру.
В каком режиме какая музыка играет?
Для знающих английский, имена папок говорят сами за себя. Тем не менее я всё-таки снова прикинусь кэпом Очевидность и напишу то, что знаю. (Где-то могу ошибаться, не против поправок).
1C - звук для лого 1С.
All - музыка воспроизводится во всех режимах (возможно, кроме ЧД).
ArcadeBattle - бой в чёрной дыре.
Battle - когда начинается сражение в космосе.
Excalibur - возможно, для скрипта со световым мечом, но могу ошибаться.
GalaxyMap - см. StarMap.
Intro - вступительный ролик с Йцукеном. См. также примечание к нему.
Logo - лого Elemental Games.
Loss - при поражении / смерти рейнджера.
Nation - здесь играют темы рас, их я менять не советую, ну максимум убрать те треки, которые вам не нравятся. Также здесь расположена музыка для незаселённых планет, и можно даже увидеть папку Kling.
Outro - фэянский концерт в финале.
Quest - разумеется, при прохождении квестов.
Robot - музыка для планетарных боёв.
Song - финальная песня про квазары.
StarMap - Конфиги StarMap и GalaxyMap отвечают за музыку в обычном полёте в космосе и при просмотре галактической карты. Но я точно не знаю, какой режим отвечает за какую музыку. Также можно выяснить это опытным путём.
Win - победа над доминаторами.
Таким образом, вы можете заменить музыку практически в любом режиме игры.
Также, если вам нравится какой-то из треков «Революции», то вы можете заставить его воспроизводиться в другом режиме, например - в квестах или полёте. Пути для треков в этом случае надо прописать немного другие:
3=data\music\theo_-_Sansara.dat
так как игра не обращает внимания на пути типа C:/Games... а её интересуют только внутренние папки. Музыка из «Революции» как раз и находится в папке data, но внутри pkg-файла. (Вообще, можно предположить, что во время игрового процесса игра не различает отдельные архивы, а просто берёт из них те файлы, которые нужны на данный момент...)
Что касается ролика с Йцукеном. В игре указан файл intro, в нём воспроизводится весь фон вступительного ролика - и музыка, и звуки. Однако в архивах игры можно найти файлы begin и begin2, которые содержат ту же самую музыку. Не рискну предположить, что игра берёт музыку для ролика именно из них - но кто знает, кто знает...
Что делать, если игра «вылетела»?
Открываем внутри игры папку Errors и смотрим лоследний лог, совпадающий по времени с вылетом. Под строкой Exception context указан тип ошибки. Обычно это неправильное имя файла или отсутствующий файл. То есть, если вы написали BeyondReach и пропустили нижнее подчёркивание (Beyond_reach), игра из-за этого тоже может вылететь.
Хотя в названии файла регистр букв, вроде бы, не имеет значения.
Для War Apart папка Errors находится не в папке с игрой, а в документах пользователя.
Добавлено позже:Для War Apart, несколько другие манипуляции, чтобы заставить игру воспроизводить "собственную" музыку или поменять треки местами. Вкратце, там кажется не в pkg находятся файлы треков... Позже проверю.
Под катом, ссылка на прохождение парочки планетарных боёв, с заменённой музыкой.