«Скайрим», который мы заслужили.
Кажется, за последние 15 лет мы видели The Elder Scrolls V: Skyrim во всех возможных обличьях – от официальных переизданий до безумных фанатских сборок. Но то, что происходит с игрой прямо сейчас, выходит за рамки привычного моддинга. Благодаря интеграции современных нейросетей, NPC в «Скайриме» наконец-то перестали быть набором заскриптованных реплик. Теперь они генерируют уникальные диалоги на ходу, помнят ваши прошлые поступки, реагируют на голос и озвучены живыми ИИ-голосами!
В этой статье мы подробно, шаг за шагом разберем, как установить «Скайрим» с нейросетью.
📌 6 масштабнейших модов для Skyrim. Каждый из них – как отдельное DLC
Что за мод с нейросетью в «Скайриме»
Когда мы говорим про «Skyrim с нейросетью», речь идет о полной технологической революции внутри игры. Благодаря энтузиастам, Скайрим удалось связать с мощными локальными ИИ и современными большими языковыми моделями (LLM) – аналогами ChatGPT, Claude. Самым популярным, стабильным и продвинутым решением на сегодняшний день является модификация Mantella (а также ее популярный ИИ-компаньон Herika).
Чтобы магия сработала, под капотом игры одновременно запускаются и синхронизируются три независимые технологии:
● «Мозг» (LLM – языковая модель): отвечает за генерацию текста. Мод передает нейросети контекст: кто ваш персонаж, где вы находитесь, какая сейчас погода и что за NPC стоит перед вами. Нейросеть мгновенно генерирует ответ от лица персонажа, учитывая его характер, лор игры и ваши прошлые диалоги.
● «Голос» (TTS – Text-to-Speech): превращает сгенерированный текст в аудио. Специальные нейросети (например, ElevenLabs или локальные модели) обучены на оригинальных голосах актеров Скайрима. В итоге ярл Балгруф или Серана говорят абсолютно новые фразы своими настоящими голосами и с правильными интонациями.
● «Слух» (STT – Speech-to-Text): позволяет не печатать текст на клавиатуре, а просто говорить в микрофон. Игра распознает вашу речь и передает ее персонажу!

В итоге на практике вы можете спросить у любого встречного стражника, что он думает о Братьях Бури, попросить каджита рассказать о его родине или пофлиртовать с Лидией. Ответы никогда не повторятся.
Также персонажи помнят ваши поступки: если вы украли лошадь в Вайтране, местный торговец может припомнить это при встрече и отказаться иметь с вами дело. NPC могут реагировать на то, что на вас надето, какое оружие у вас в руках, и даже соглашаться пойти с вами в ближайшее подземелье на основе ваших навыков убеждения.
Важный нюанс: cама игра не потянет такую вычислительную нагрузку. Мод работает как «мост» между Skyrim и серверами искусственного интеллекта (или мощностями вашей видеокарты, если вы запускаете ИИ локально). Именно поэтому процессу установки и настройки нужно уделить особое внимание.

Как установить Скайрим с нейросетью
1. Скачайте ГОГ-версию Skyrim: Special Edition, затем установите его. Для минимизации проблем с совместимостью модификаций избегайте версию игры для Steam.
2. Скачайте Skyrim Script Extender (SKSE). Качаем самый верхний вариант, «Current Anniversary Edition build 2.2.6 (game version 1.6.1179)». Распаковываем в папку с игрой. Файл skse64_loader.exe должен находиться в одной папке с SkyrimSE.exe.

3. Создайте на диске папку, куда будете складывать все, необходимое для игры с OpenAI. Например, пусть будет E:\OpenAI.
4. Скачиваем софт xVASynth v3. Причем скачиваем саму софт «xVASynth v3.0.0 Main app» и патч для нее, «v3.0.2 PATCH – DON’T FORGET THIS». Распаковываем программу в E:\OpenAI\xVASynth. Патч распаковываем поверх.
5. Скачиваем обновленный русский словарь транскрипции английских слов Russian Dictionary для xVASynth для наилучшего звучания NPC. Распаковываем его в E:\OpenAI\xVASynth\resources\app\python\xvapitch\text\dicts\ с заменой существующего.
6. Скачайте .lip and .fuz plugin for xVASynth. Распакуйте в папку E:\OpenAI\xVASynth.
7. Скачайте FaceFXWrapper 0.4. Первым в списке идет CK64Fixes Release 3.2, его качать не нужно. Распаковываем во временную папку и файл FaceFXWrapper.exe переносим в E:\OpenAI\xVASynth\resources\app\plugins\lip_fuz\, где уже лежит предыдущий плагин.
8. Скачайте xVADict — Elder Scrolls. Распакуйте в E:\OpenAI\xVASynth.
9. Скачайте голосовые модели. Сперва скачайте «Female Serana» и «Male Nord». Создайте папку E:\OpenAI\xVASynth\resources\app\models\Skyrim\ и распакуйте скачанные файлы туда. Переименуйте файлы .json и .pt из архива «Female Serana» в sk_serana.*, а файлы из архива «Male Nord» переименовываем в sk_malenord.*. Теперь делайте копию файлов «Сераны» в той же папке и переименуйте их в sk_femalenord.*. Откройте файлы json редактором и меняйте там имена файлов соответственно.
При обращении к NPC в игре, будет подхватываться одна из имеющихся голосовых моделей, если не найдено более подходящей. В логе «Мантеллы» будет выдаваться ошибка о несоответствии, но модель будет работать. Адекватно работающих и приятно звучащих русскоязычных моделей на данный момент немного, но никто не мешает в будущем скачать их больше и экспериментировать. Актуальные имена файлов, необходимые, чтобы игра подхватила модель, можно выяснить из лога «Мантеллы» при старте диалога.
10. Запускайте E:\OpenAI\xVASynth\xVASynth.exe. В правом верхнем углу нажмите на символ паззла и включите плагин .lip and .fuz file maker. Нажимите кнопку Apply, согласитесь с дефолтными настройками и закройте окно плагинов клавишей Escape.

11. Там же, в правом верхнем углу нажмите кнопку AE и в открывшемся окне подключите все слова в словарях CMUDicT и XVADict — Elder Scrolls. Закройте окно клавишей Escape.

12. В левом верхнем углу нажмите кнопку со стрелочками и в открывшемся списке выберите игру Skyrim. Список закроется и в основном окне появится список загруженных нами голосовых моделей.

13. В самом правом верхнем углу нажмите кнопку с шестеренкой. В открывшемся окне листаем список настроек вниз. Убираем подключение к дискорду, проверяем выбор динамиков и микрофона, проверяем пути к «Skyrim models path» и «Skyrim output path», еще ниже выбираем «Game (The .lip format)» – Skyrim/Fallout 3/Fallout NV. Под этой опцией ставим галочки: «Delete lip files», «Make fuz files» и «Skip existing». Закрываем окно настроек ескейпом и пока выходим из xVASynth.

14. Скачайте интерфейс нейросети KoboldCpp. Из списка файлов для загрузки нужен koboldcpp.exe, размером примерно 500 МБ. Сохраните его в E:\OpenAI\Kobold.
15. Скачайте образ самой нейросети. Есть два варианта: попроще и пошустрее, либо получше, но помедленнее. Сохраните туда же, в E:\OpenAI\Kobold. Если хотим включить зрение NPC, то докачиваем к ним образ графического распознавания.
16. Запустите koboldcpp.exe. Ждите загрузки окна интерфейса. В открывшемся окне снимите галочку с пункта Launch Browser, а ниже нажмите кнопку GGUF Text Model: Browse и выберите скачанный образ нейросетки. Заодно увеличиваем размер контекста до 8192.

Чтобы подключить зрение, переходим на вкладку «Loaded Files» и указываем скачанный образ распознавателя.

Нажимаем кнопку Save и сохраните настройки в файл settings.kcpps в ту же папку, где лежит koboldcpp.exe. Можете сделать два отдельных конфига, с зрением и без. Переключать их сможете из скрипта запуска сборки.
17. Скачиваем необходимые моды. Сохраняем пока в какую-нибудь временную папку.
Address Library for SKSE Plugins, выбираем «All in one (1.6.X)»;
PapyrusUtil SE, вариант «Version 4.6 for SKSE 2.2.6, Skyrim 1.6.1179(GOG), & Address Library»;
World Encounter Hostility Fix, качаем «Performance Version»;
FonixData File, вариант «Mod Manager Install»;
SSE Russian Fix Console, вариант «SSE Russian Fix Console Only», хотя, по желанию;
Скачиваем Mod Organizer 2. Устанавливаем в E:\SkyrimAI\MO2\ и запускаем.
При первом запуске выбираем вариант Portable. Когда спросит про версию игры, указываем GOG. В следующем окне отметим profile-specific INI и сейвы. Устанавливаем ранее скачанные моды в том же порядке, в котором они указаны в списке на скачивание. Должно получиться так:

18.Mantella
Закрываем Mod Organizer. Переходим в папку E:\SkyrimAI\MO2\mods\Mantella\ и открываем в редакторе файл GPT_SECRET_KEY.txt. Вписываем туда строку: http://localhost:5001/api/
Далее переходим в E:\SkyrimAI\MO2\mods\Mantella\SKSE\Plugins\MantellaSoftware\ и открываем файл custom_user_folder.ini. Указываем там параметр custom_user_folder = E:/SkyrimAI/Mantella/
Это чтобы не лазить каждый раз в «Мои документы», используемые по умолчанию. Не забываем создать саму папку E:\SkyrimAI\Mantella.
По очереди запускаем xVASynth, KoboldCpp (первый раз может загружаться долго) и Mod Organizer. Запускаем «Скайрим» из мод органайзера. Ждем, пока запустится игра. Ждем, пока автоматически откроется окно консоли «Мантеллы». Любуемся на картину Малевича. Когда раздастся звук лопнувшей струны и откроется браузер, закрываем все к чертям.
Теперь у нас создались все необходимые конфиги. Для начала займемся самой игрой. Несмотря на то, что мы указали использовать локальный конфиг, ГОГ-овская версия, похоже, все равно лазит в «Мои документы». Поэтому идем в %USERPROFILE%\Documents\My Games\Skyrim Special Edition GOG. Удаляем Skyrim.INI, копируем туда файл E:\SkyrimAI\Skyrim\Skyrim_Default_ru.ini и переименовываем его в Skyrim.INI.
Далее открываем SkyrimPrefs.ini и правим его руками по вкусу или согласно многочисленным гайдам по оптимизациям и улучшениям. Но это можно и потом, а пока нас особенно интересуют следующие параметры:iSize W=1280iSize H=1024bFull Screen=0bBorderless=1bDialogueSubtitles=1bGeneralSubtitles=1
На всякий случай копируем получившиеся Skyrim.INI и SkyrimPrefs.ini в E:\SkyrimAI\MO2\profiles\Default.
Теперь открываем E:\SkyrimAI\Mantella\config.ini и вносим следующие изменения (актуально для Mantella v13.1). Код:
game = Skyrim
skyrim_mod_folder = E:\SkyrimAI\MO2\mods\Mantella
llm_api = KoboldCpp
model = Custom model
custom_token_count = 8192
llm_params = {
«max_tokens»: 500,
«stop»: [»#»]
}
tts_service = xVASynth
xvasynth_folder = E:\SkyrimAI\xVASynth
fast_response_mode = True
fast_response_mode_volume = 15
low_resolution_mode = False
save_screenshot = False
image_quality = 100
custom_vision_model = True
vision_llm_api = KoboldCpp
vision_model = Custom Model
language = ru
auto_launch_ui = False
automatic_greeting = False

Далее, находим в этом же конфиге раздел [Prompts] и в нем многострочный параметр skyrim_prompt. Находим в нем строку: Remember to stay in character. И заменяем на
Don’t write instructions. Remember to stay in character.
Кстати, новые версии Мантеллы теперь имеют свой гуй, доступный в браузере по адресу http://localhost:4999/ui/?__theme=dark. Там можно оперативно включить или выключить зрение NPC, в зависимости от ситуации или чтобы увеличить скорость ответа. Но нужно учесть, что изменение параметра завершит текущий диалог, если он уже начат. Можно сразу создать ярлык для этого адреса, в папке E:\SkyrimAI. Пусть будет!
После первого уже нормального запуска «Скайрима» не забываем зайти в настройки Мантеллы уже в самой игре (Система –> Настройки модов –> Mantella –> General). Отключаем микрофон и назначаем кнопки для End Conversation и Add Custom Game Event. У меня это обычно [\] и [=] соответственно.
Внутриигровые настройки пишутся в сейв игры, поэтму, если загрузиться с более раннего сейва, то придется выставлять заново.
19. AutoHotkey. Раз мы не хотим каждый раз запускать все это вручную, пишем скрипт на AutoHotkey. Код – ниже. Отступы расставьте, как на скрине:
#Requires AutoHotkey >=2.0 if not WinExist(‘xVA Synth’) { Run(‘xVASynth\xVASynth.exe’, ‘xVASynth’) Sleep Floor(IniRead(«SkyrimAI.ini», «Delays», «xVASynthDelay», 1) * 1000) if WinWait(‘xVA Synth’,,10) { WinMove(0,0,1300,1000,’xVA Synth’) } } if not WinExist(‘koboldcpp.exe’) { if (IniRead(«SkyrimAI.ini», «Kobold», «Vision_LLM_load_enable», 0) == 1) { Run(‘Kobold\koboldcpp.exe --config settings_vision.kcpps --highpriority’, ‘Kobold’) } else { Run(‘Kobold\koboldcpp.exe --config settings.kcpps --highpriority’, ‘Kobold’) } if WinWait(‘koboldcpp.exe’,,10) { PosX := IniRead(«SkyrimAI.ini», «Kobold», «Kobold_PosX», 1274) PosY := IniRead(«SkyrimAI.ini», «Kobold», «Kobold_PosY», 0) ResX := IniRead(«SkyrimAI.ini», «Kobold», «Kobold_ResX», 670) ResY := IniRead(«SkyrimAI.ini», «Kobold», «Kobold_ResY», 520) WinMove(PosX,PosY,ResX,ResY,’koboldcpp.exe’) } } if not WinExist(‘ModOrganizer’) { Run(‘MO2\ModOrganizer.exe «moshortcut://:SKSE»’, ‘MO2’) WinWait(‘ModOrganizer’,,10) Sleep Floor(IniRead(«SkyrimAI.ini», «Delays», «MO2Delay», 1) * 1000) if WinExist(‘ModOrganizer’,,10) { PosX := Floor(IniRead(«MO2\profiles\Default\skyrimprefs.ini», «Display», «iSize W», 1280) / 2 – 190) PosY := Floor(IniRead(«MO2\profiles\Default\skyrimprefs.ini», «Display», «iSize H», 1024) / 2 – 70) if WinExist(‘xVA Synth’) { WinActivate(‘xVA Synth’) WinMinimize ‘xVA Synth’ } WinActivate(‘ModOrganizer’) WinMove(PosX,PosY,,,’ModOrganizer’) } WinWait(‘Skyrim Special Edition GOG’,,10) WinSetTitle(‘Skyrim Special Edition’) if (IniRead(«MO2\profiles\Default\skyrimprefs.ini», «Display», «bFull Screen», 0) == 0) { PosX := IniRead(«SkyrimAI.ini», «Skyrim», «Skyrim_PosX», 0) PosY := IniRead(«SkyrimAI.ini», «Skyrim», «Skyrim_PosY», 0) WinMove(PosX,PosY,,,’Skyrim Special Edition’) } } PosX := IniRead(«SkyrimAI.ini», «Mantella», «Mantella_PosX», 1274) PosY := IniRead(«SkyrimAI.ini», «Mantella», «Mantella_PosY», 520) ResX := IniRead(«SkyrimAI.ini», «Mantella», «Mantella_ResX», 670) ResY := IniRead(«SkyrimAI.ini», «Mantella», «Mantella_ResY», 520) DelM := Floor(IniRead(«SkyrimAI.ini», «Delays», «MantellaDelay», 1) * 1000) while WinExist(‘Skyrim Special Edition’) { Sleep DelM if (WinExist(‘Mantella.exe’)) { WinGetPos(&MantX,&MantY,,,’Mantella.exe’) if (MantX != PosX or MantY != PosY) { WinActivate(‘Mantella.exe’) WinMove(PosX,PosY,ResX,ResY,’Mantella.exe’) WinActivate(‘Skyrim Special Edition’) } } } if WinExist(‘Mantella.exe’) { WinClose ‘Mantella.exe’ } if WinExist(‘KoboldCpp’) { WinClose ‘KoboldCpp’ } if WinExist(‘xVA Synth’) { WinClose ‘xVA Synth’ } FileDelete ‘Mantella\data\tmp\voicelines\save\*.wav’



20. Компилируем скрипт в EXE и кладем в E:\SkyrimAI. Рядом создаем файл SkyrimAI.ini и пишем туда:
[Delays]
xVASynthDelay = 1
MO2Delay = 1
MantellaDelay = 1
[Skyrim]
Skyrim_PosX = 0
Skyrim_PosY = 0
[Kobold]
Vision_LLM_load_enable = 1
Kobold_PosX = 1274
Kobold_PosY = 0
Kobold_ResX = 670
Kobold_ResY = 520
[Mantella]
Mantella_PosX = 1274
Mantella_PosY = 520
Mantella_ResX = 670
Mantella_ResX = 520

Два момента на заметку: во-первых, добавлено переименование окна «Скайрима». Сотрудники из GOG зачем-то изменили его, а именно на заголовок окна ориентируется функция зрения. Разработчики Мантеллы уже в курсе этой фичи, и в следующих версиях обещают учесть этот момент, тогда из скрипта можно будет убрать.
Во-вторых, в INI добавлен параметр, отвечающий за загрузку образа графического распознавателя в Kobold. Соответственно, нужны два отдельных конфига с соответствующими именами (settings.kcpps и settings_vision.kcpps). Теоретически, можно было бы привязать это непосредственно к конфигу Мантеллы, но он может меняться без перезапуска игры, а Kobold требует перезапуска. Поэтому пусть будут отдельно.
***
Еще по теме:























Комментарии