XCOM 2
Not enough ratings
Music Modding System для русских от русского
By Akasha Saraswati
Руководство опишет, как создавать собственный пак музыки для XCOM 2 на русском, всё в деталях со скриншотами, как выложить в Мастерскую и как работает Music Modding System.
   
Award
Favorite
Favorited
Unfavorite
Вступление
Порой хочется в XCOM 2 совершенно иную музыку, часто — любимую. Можно выключить музыку в настройках игры и врубить свою собственную через любой медиаплеер, но ведь мы же хотим, чтобы она ещё и гармонично вошла в игру, а не просто воспроизводилась как постоянный фон, верно? Или вы просто хотите услышать саундтрек любой игры внутри XCOM 2, но при этом за ваш «заказ» игры никто не берётся. Тогда что делать?

Создать всё самостоятельно, и это обучение поможет в этом.

НЕОБХОДИМО ПОДПИСАТЬСЯ НА АДДОН «MUSIC MODDING SYSTEM», ИНАЧЕ МУЗЫКАЛЬНЫЕ ПАКИ НЕ БУДУТ ВОСПРОИЗВОДИТЬСЯ В XCOM 2!
http://steamoss.com/sharedfiles/filedetails/?id=757398474

Оценить работу музыкального пака вы можете, скачав пак музыки XCOM: Enemy Unknown
http://steamoss.com/sharedfiles/filedetails/?id=757607799
или опробовав мод от автора гайда — http://steamoss.com/sharedfiles/filedetails/?id=865339274
Подготовка
Гайд предполагает, что вы уже установили ModBuddy (то бишь XCOM 2 Development Tools) и знаете хотя бы часть работы в Unreal Engine Editor (в данном случае — XCOM 2 Editor), но мы затронем второе чуть-чуть подробнее.

  • Запустите XCOM 2 Development Tools. Это запустит ModBuddy, что нам нужно настроить (если вы запускаете его впервые), а уж потом использовать для написания «скрипта», чтобы вся музыка проигрывалась в нужные моменты игры. Идите в Tools – Options (Инструменты — Настройка), найдите категорию XCOM 2 и нажмите на неё. Должно появиться две строки для указания пути.
  • Для «XCOM 2 Install Path» укажите папку XComGame УСТАНОВЛЕННОЙ ОРИГИНАЛЬНОЙ игры (Steam/SteamApps/common/XCOM 2/XComGame)
  • Для «XCOM 2 User Path» укажите папку XcomGame УСТАНОВЛЕННОЙ SDK игры (Steam/SteamApps/common/XCOM 2 SDK/XComGame)
  • Нажмите ОК и радуйтесь.

Приготовьте звуковые файлы формата .wav. И только WAV. Рекомендации по WAV:
  • Убедитесь, что все файлы имеют примерно одинаковую громкость, дабы в самом редакторе не возиться с этим. Также убедитесь, что музыка не слишком тихая, но и не слишком громкая.
  • Убедитесь в качестве музыки. Никому не будет нравиться музыка с шумом или разрывами.
  • Битрейт в 128 Kbps и менее будет звучать плохо, если вы сконвертировали её с файла большего битрейта, только если вы не работаете с наиболее высококачественным файлом.
  • Для более гармоничного звучания, музыка должна быть зацикленной, что значит начало и конец должны практически совпадать. Это касается боевых тем и эмбиентов.
  • Для конвертирования форматов OGG, MIDI, MP3 в WAV вы можете воспользоваться любым медика-конвертером или же бесплатным аудиоредактором Audacity, который позволяет также работать с музыкой. Когда все файлы будут готовы, а XCOM 2 Development Tools настроен, мы можем начать работу.
Иморт в UE Editor (XCOM 2 Editor)
Откройте ModBuddy, выберете сверху Tools (Инструменты) и запустите XCOM 2 Editor. Загрузка может быть долгой, так что терпите.
Перед вами откроется основное окно Unreal Engine Editor (XCOM 2 Editor) и Content Browser. Если последний не открыт, то сверху выберете View – Browser Windows – Content Browser.

В зелёном квадрате располагаются папки и контент-файлы формата UPK. Кнопка New (Оранжевая) создаёт новый файл, в то время как Import (Красная) импортирует внешний файл в какой-либо контент-файл (или создаёт новый). Кнопка Open (Жёлтая) позволяет открыть контент-файлы, которые не загрузились в XCOM 2 Editor (в частности — моды).

Но нас интересует Импорт. Нажмите на неё и выберете один или сразу несколько файлов формата WAV. Появится диалоговое окно:

  • Package – название контент-файла, куда будут импортированы файлы. Назвав контент новым именем, вы автоматически его создаёте (например, назвав Package как MyPackage или NWRMusic).
  • Grouping – подобие подпапок внутри контент-файла, удобно для сортировки, если слишком много файлов. Есть и фильтры. Оставьте строку пустой (объяснение этому будет позже).
  • Name – название самого импортированного файла, который вы можете определить по-другому. Например — XCOMAction1 или SelectSquad_WeWillRockYou.
  • Вы можете выделить галочку на Auto Create Cue, чтобы после импорта для файла автоматически создавалось SoundCue (о нём позже) с тем же названием, но с добавлением SoundCue на конце (XCOMAction1_SoundCue). Полезно при импорте множества файлов, дабы не возиться и создавать SoundCue для каждого файла по отдельности.
  • Cue Volume определяет громкость звучащей музыки или звука. Рекомендуется ставить от 0.75 до 0.9. 1 — оригинальная громкость звукового файла. Если он слишком громкий, вы можете понизить значение. Если слишком тихий, то лучше увеличить его громкость через аудиоредактор или найти более качественный файл.

Рассмотрим два варианта:
Вы не поставили галочку на Auto Create Cue
В таком случае после импорта появиться SoundNodeWave. Это WAV-файл и он не будет просто так проигрываться в игре. Нажмите ПКМ на пустом месте в Content Browser и выберете New SoundCue. Появится аналогичное диалоговое окно, что было и при импорте с теми же строками — Package, Grouping и Name. Теперь его нужно настроить. ПКМ по SoundCue — Edit Using Sound Cue Editor...

Серое окно с колонкой слева и опциями снизу. Вот что вы должны увидеть. Нажмите ПКМ по пустому месту и выберете Looping. Протяните левый чёрный квадрат Looping к квадрату колонки. Выбрав Looping, внизу убедитесь, что поставлена галочка на Loop Indefintely!
  • Looping позволяет зациклить трек, в ином случае после конца трека он не будет воспроизводиться повторно, а нам этого не надо.
Теперь перейдите к окну Content Browser, нажмите один раз на SoundNodeWave (он выделится жёлтым квадратом), вернитесь к Sound Cue Editor, нажмите по пустому месту на ПКМ и выберете SoundNodeWave: <имя файла>. Так вы добавите сам трек. Соедините его с Looping.
  • Вы можете добавить Mixer Node для воспроизведения двух разных треков в одно и то же время и Concatenator Node, чтобы воспроизвести сначала один звук, а затем другой (есть проблема — между ними есть задержка в 1 секунда, что делает настройку бесполезной для интро или закцикливания).
Нажав на SoundNodeWave в Sound Cue Editor, вы можете настроить Volume Multiplier для настройки громкости.
Если всё сделано правильно, нажмите на иконку воспроизведения в SoundCue Editor или же два раза на SoundCue в Content Browser. Начнётся воспроизведение трека, если зацикливание идёт нормально, то поздравляю — трек настроен и может быть готов к воспроизведению в игре. Повторите каждый шаг с каждым нужным треком.

Если вы поставили галочку на Auto Create Cue:
Вам нужно будет лишь изменить каждый SoundCue в редакторе. Разница в том, что вам нужно будет просто добавить Looping и соединить корректно всё. Если файлов достаточно много, это будет чутка утомительным.

После настройки всех SoundCue, нажмите ПКМ на ваш контент-файл (окошко слева с папками) выберете Batch Process – Sound Classes: Master – Music. Это обработает все SoundCue в контенте под класс Музыка.
Если вы закончили добавлять треки и настроили всё, то нажмите ПКМ по вашему контент-файлу и сохраните его (Save). Укажите, как будет называться upk-файл и куда его вы сохраните.
  • Чем больше размер контент-файла, чем дольше будет длиться процесс, вплоть до 15-30 минут.
  • XCOM 2 Editor будет ругаться, что вы сохранили UPK размером выше 300 МБ и посоветует вам разделить на части. Не обращаете на это внимание, но советуется и вправду делить мод на несколько UPK (например, на одном содержится музыка для тактической части ака бои, а на другом — музыка на базе). Или вообще каждый UPK — 1 трек, как в XCOM: Enemy Unknown. Это позволит вам не сохранять каждый раз долго UPK, если вдруг вы решаете обновить мод.
Работа в ModBuddy
Итак, мы закончили с импортом музыки и имеем UPK или несколько. Остаётся прописать «конфиги».

В ModBuddy выберете File – New – Project (Файл — Создать — Проект). В диалоговом окне выберете шаблон Empty Mod, а в строке Name напишите название вашего проекта. После нажатия на ОК, появиться новое окно, которое попросит вас указать имя мода (указывайте осторожно, мы будем в дальнейшем использовать её в конфигах. Например, NWRMusic. Вы смените имя мода после публикации в Мастерскую уже в самом Steam на любое другое) и описание. ВАЖНО! ИСПОЛЬЗУЙТЕ ДЛЯ ИМЕНИ ПРОЕКТА И МОДА РАЗНЫЕ НАЗВАНИЯ!
Итак, проект создан, но пустой (есть вероятность, что создастся ReadMe файл, но вы можете его создать вручную по принципу, описанное снизу).

В окошке слева нажмите ПКМ на наш проект (белый файл) и добавьте данные папки (ПКМ — Add – New Folder):
  • Content (в нём мы будем хранить UPK файлы
  • Config (вы уже знаете, что там будет)
  • Src
  • Внутри Src создайте папку с НАЗВАНИЕМ ВАШЕГО МОДА, КОТОРЫЙ ВЫ УКАЗАЛИ РАНЕЕ (например, вы назвали мод как NWRMusic (Опять мой пример, да), назовите папку также)!
  • Внутри папки с названием вашего мода создайте папку Classes
Теперь добавьте UPK в Content. ПКМ по Content – Add – Existing Item и в диалоговом окне выберете нужный UPK-файл. Вы можете делать так с любым типом файлов в будушем.

В следующем шаге, мы создадим конфиги. Нажмите ПКМ по Config (Add – New Item – Configuration File в диалоговом окне) и создайте такие файлы:
  • XComEngine.ini
  • XComGame.ini
  • XComEditor.ini (этот и два файла сверху нужны нам, дабы мод корректно был введён в игру)
  • XComShellSound.ini (в этом конфиге мы введём музыку для Главного Меню XCOM 2)
  • XComStrategySound.ini (в этом конфиге будет располагаться музыка, звучащая на «Мстителе», то бишь в стратегической части игры)
  • XComSkyrangerSound.ini (в этом конфиге мы введём музыку, которая будет звучать во время загрузки миссии в «СкайРейнджере»)
  • XComTacticalSound.ini (этот конфиг настраивает эмбиент и боевые треки во время миссии, то бишь в тактической части игры)
После всех проделанных махинации, проект должен выглядеть так:

Теперь — самое вкусное. Мы будем прописывать скрипты для воспроизведения музыки в различных ситуациях, но для начала мы настроим первые три конфига, дабы ввести мод в игру корректно.
  • XcomEngine:
    [Engine.ScriptPackages]
    +NonNativePackages=ЗаменитеЭтоНаИмяВашегоМода
  • XcomEditor:
    [ModPackages]
    +ModPackages=ЗаменитеЭтоНаИмяВашегоМода
  • XcomGame:
    [ЗаменитеЭтоНаИмяВашегоМода.X2DownloadableContentInfo_ЗаменитеЭтоНаИмяВашегоМода]
    DLCIdentifier="КоторыйРазЗаменитеЭтоНаИмяВашегоМода"

Начнём творить теперь с нужными конфигами.

XcomShellSound
[MusicModdingSystem.MMS_UISL_UIShell]
+ShellCues="MyPackage.SoundCue.MyShellMusic"

Начнём объяснение. Мы указываем путь к нашему SoundCue. Строение пути в UPK простое - <название_вашего_контент_файла>.<имя_вашего_SoundCue_файла>
Если вы всё-таки сделали Grouping для определённых файлов, то вам нужно будет их указать в пути - <название_вашего_контент_файла>.<имя_подгруппы>.<имя_Cue>
Мы можете в Content Browser нажать ПКМ на SoundCue и скопировать полное имя файла (то бишь путь — Copy Full name) и вставить в строку.
Вы можете внести больше одного трека в Главное Меню. Они будут воспроизводится рандомно. Пример:

[MusicModdingSystem.MMS_UISL_UIShell]
+ShellCues="NWRMusic.OnceIWasLost_Cue"
+ShellCues="NWRMusic.Galaxies_Cue"
+ShellCues="NWRMusic.ReEvolve_Cue"

XcomStrategySound
Теперь мы будем настраивать «Мститель» под вашу музыку. На одно «событие» приходится много параметров. Вот они:
  • MusicID — ID-имя трека, оно должно быть уникальным и не конфликтовать с другими модами, помните это. Этот параметр может отличаться от названия SoundCue или SoundNodeWave (пример — NWR_HQ_ActI)
  • CuePath — путь к SoundCue. О построении пути описано выше.
  • DontFadeIn и DontFadeOut — если для каждого параметра указано true, трек будет пропускать плавное начало и прерывание. Если отсутствует, то по умолчанию стоит false (плавное начало и конец имеются)
  • IntroCue – путь к SoundCue, который будет воспроизведён ОДИН раз перед указанным в CuePath. Важно, чтобы данный SoundCue из IntroCue НЕ БЫЛ С ПАРАМЕТРОМ LOOPING.
  • Objective — это строка позволит указать, во время какой цели будет воспроизводится трек. В строке Group должно быть написано «eSSG_CustomObjective». Пример строки — Objective=T3_M2_BuildShadowChamber
  • Вам необходимо просматривать конфиги игры, дабы найти правильное название задании.
  • Group — параметр определяет, в какой ситуации будет звучать трек.
  • eSSG_Chapter01 — музыка будет звучать с начала кампании на «Мстителе».
  • eSSG_Chapter02 – музыка будет звучать после постройки Зала Теней на «Мстителе»
  • eSSG_Chapter03 — музыка будет звучать после убийства первого Аватара на «Мстителе»
  • eSSG_CustomObjective – если вы указали в Group Данную строку, добавьте параметр Objective, дабы вы смогли указать точнее, при каком задании будет звучать трек.
  • eSSG_Geoscape — музыка на Глобальной Карте.
  • eSSG_GeoDoomClock – музыка на Глобальной Карте во время отсчёта таймера до завершения Проекта «Аватар».
  • eSSG_SquadMusic — музыка, которая будет играть во время выбора бойцов.
  • eSSG_SquadSelectMission — если указано это, добавьте параметр MissionName, дабы музыка во время выборов бойцов играла специфично при определённом задании (например, во время выбора бойцов на защиту «Мстителя»)
  • eSSG_Credits — музыка, играющая во время победы и титров
  • eSSG_Loss – музыка во время поражения в кампании
Самый простой пример:

[MusicModdingSystem.MMS_XComStrategySoundManager]
+MusicDefs=(MusicID="NWR_HQActI", \\
CuePath="NWRMusic.HQActI_Trapped_Cue", \\
Group=eSSG_Chapter01)
+MusicDefs=(MusicID="Example_SquadSelect", \\
CuePath="MyNewMusicMod.BadassMusic", \\
dontFadeIn=true, \\
Group=eSSG_SquadSelect)
Необязательно иметь все ситуации, такое позволяется.

XcomSkyrangerSound
[MusicModdingSystem.MMS_UISL_UIDropShipBriefing_MissionStart]
; if this list is empty, it will use the squad select
; +SkyrangerCues="SoundHQMusicCues.Squad_Loadout_Cue"

Уберите точки с запятой, на второй строке, если вы хотите специфичную музыку во время загрузки миссии, то бишь в «СкайРейнджере». Вы можете, как и с ShellMusic, добавить несколько. Если список пуст или оставлен так, как в примере, то в «СкайРейнджере» будет играть музыка выбора отряда по умолчанию.
Работа в ModBuddy (продолжение)
XcomTacticalSound
Как и с случаем «Мстителем», здесь тоже есть много параметров, которые мы и рассмотрим.
  • DropShipIntroCues — указывает путь к SoundCue, который будет проигрываться во время высадки ваших бойцов на поле боя. ТРЕК ДОЛЖЕН БЫТЬ БЕЗ ПАРАМЕТРА LOOPING, ИНАЧЕ ОН БУДЕТ ПРОИГРЫВАТЬСЯ ПОСТОЯННО! Вы можете использовать полностью пустой WAV-файл, если не хотите никакой музыки для высадки бойцов.
  • Дальше идёт CombatDefs — параметры для музыки во время боя. Вы должны вводить каждый раз новый CombatDefs для каждого боевого трека.

  • ID – уникальное название боевого трека, которое НЕ ДОЛЖНО ПОВТОРЯТЬСЯ С ИНЫМИ ДРУГИМИ (в том числе и из других модов)!
  • MissionMusicSet – при помощи данного параметра, вы можете определить, на каком типе задании будет играть этот трек. Например, если хотите, чтобы он играл в финальной битве, то можно указать MissionMusicSet=”AlienFortress”
  • XloopCue – это путь к SoundCue, который будет воспроизводиться во время хода XCOM
  • AloopCue – это путь к SoundCue, который будет воспроизводится во время хода пришельцев.
  • Xsting – это SoundCue, который воспроизведётся ОДИН РАЗ (Cue не должен быть с параметром Looping) во время хода XCOM, как только последний противник будет уничтожен во время боя (но не в режиме Скрытности)
  • Asting – это SoundCue, который воспроизведётся ОДИН РАЗ (Cue не должен быть с параметров Looping) во время хода пришельцев, как только последний противник будет уничтожен во время боя от Боеготовности или Мины (но не в режиме Скрытности)
  • Вам обязательно нужны ID, XloopCue и AloopCue, остальное по желанию

  • Далее мы разберём ExploreDefs — музыка, играющая, когда поблизости нет врагов или они есть, но отряд в Скрытности. Параметров меньше.
  • ID – уникальное имя амбиента. Аналогично с боевым треком.
  • Cue — путь к SoundCue, который будет воспроизводиться.
Чтобы лучше всё показать, мы приведём несколько примеров данного конфига:

Пример 1
[MusicModdingSystem.MMS_XComTacticalSoundManager]
+DropShipIntroCues="Example_Music_Assets.SoundCue.Dropship_Intro"

+CombatDefs=(ID="Example_CombatSet01", \\
XLoopCue="Example_Music_Assets.SoundCue.Combat_1_X_Cue", \\
ALoopCue="Example_Music_Assets.SoundCue.Combat_1_A_Cue", \\
XSting="Example_Music_Assets.SoundCue.Combat_1_X_Sting_Cue", \\
ASting="Example_Music_Assets.SoundCue.Combat_1_A_Sting_Cue")

+ExploreDefs=(ID="Example_AlienFortressExplore", \\
MissionMusicSet="AlienFortress", \\
Cue="Example_Music_Assets.SoundCue.Alien_Fortress_Cue")

В этом примере мы добавили музыку сброса отряда, 1 боевой трек (с проигрывающим концом во время хода XCOM и Пришельцев) и 1 эмбиент (он будет звучать лишь в Крепости Пришельцев — финальной миссии игры).

Пример 2
[MusicModdingSystem.MMS_XComTacticalSoundManager]
+CombatDefs=(ID="Action_DoubleAgents", \\
XLoopCue="NWRMusic_XCOMDoubleAgents", \\
AloopCue="NWRMusic_ADVENTDoubleAgents")

+CombatDefs=(ID="EpicAnimeFinal", \\
MissionMusicSet="AlienFortress", \\
XloopCue="EpicAnime.PafosEnd_Cue", \\
AloopCue="EpicAnime.PafosEndAlien_Cue", \\
Xsting="EpicAnime.PafosEnding_Cue")

+ExploreDefs=(ID="Explore_Dust2", \\
Cue="CSGO.startround_01")

В этом примере мы добавили стандартный боевой трек без особых параметров, боевой трек с концовкой лишь на ходу XCOM и звучащий лишь во время боя в Крепости Пришельцев, а также эмбиент, который может звучать где угодно.

Число CombatDefs, ExploreDefs и DropShipIntroCues не ограничено.
Подготовка к запуску
Как только мы закончили с конфигами, мы переходим к проверке.
Откройте любой мод и достаньте оттуда из папки Src/имя_чужогомода/Classes файл X2DownloadableContentInfo_<имямода> в свой проект в Src/имя_вашегомода/Classes, заменив (переименовав файл) <имямода> на <имя_своегомода>. Откройте его также в редакторе и замените в строке class название <имя_чужогомода> на <имя_своегомода>, не трогая зелёные области.

Если мы хотим выложить мод в Мастерскую Steam, то в корень проекта мы должны добавить ModPreview.jpg любого размера (оптимально 512x512), дабы была картинка для нашего мода.

Переходим к финишной черте. Нажмите на Build в верхней панели ModBuddy и выберете Rebuild Solution...
Время компиляции зависит от размера мода. Так что будьте готовы к тому, что 2-3 ГБ музыкальные паки ModBuddy будет компилировать долго.
После компиляции, вне зависимости от результатов, зайдите в папку Mods в вашей оригинальной игре. Там должна быть папка с названием вашего мода. На всякий случай — проверьте содержимое. Запускайте игру и проверяйте мод на работоспособность.
Публикация в Steam Workshop (Мастерскую)
Если вы хотите выложить мод в Мастерскую, то сначала вам нужно его скомпилировать. После этого идите в Tools – Publish Mod. В строке названия мода будет имя вашего мода, а справа должна быть рабочее превью вашего мода. Укажите новое название для Мастерской, описание и тэги, идите во вторую вкладку в Publish Mod и нажимайте Upload. Ждёте и проверяйте свою Мастерскую — мод будет выставлен приватно, чтобы вы могли добавить скриншоты, видео или изменить название\описание мода. После этого выставите видимость «Публично» на странице мода Мастерской.

Мод выложен для народа, ура!

СОХРАНИТЕ ПРОЕКТ И НЕ УДАЛЯЙТЕ ЕГО, так как по нему вы сможете обновить мод тем же методом (разница в том, что будет Update Mod, вместо Upload).
Послесловие
Я надеюсь, что вам понравится данное руководство и позволит сделать первый шаг в моддинге XCOM 2. Хотя первый шаг - это конфиги, но не суть...

Из других полезных руководств по звуковому составляющему, есть гайд по созданию собственной озвучки для бойцов от 13y59m:
http://steamoss.com/sharedfiles/filedetails/?id=881334126

Удачи на полях моддинга и съеденных печенек.
1 Comments
tor26kj 24 Sep, 2020 @ 1:02am 
Добрый день. Не получается импортировать файлы WAV в XCOM 2 Editor. Пишет Faild import. Не подскажете - с чем может быть связано?