Как сделать карту как в скайрим

Обновлено: 01.07.2024

Не секрет, что настройка Skyrim.ini ( \Documents\My Games\Skyrim ) может дать вам множество приимуществ. Одно из них это трансформация карты Скайрима в полное 3D. В этой статье я напишу как это сделать.

1. Настройка Skyrim.ini

1.1. Откройте файл C:\Users\USERNAME\Documents\My Games\Skyrim\Skyrim.ini

1.2. Вбиваем в поиск (Ctrl+F): [MapMenu], и под строкой, начинайте менять ваши значения в строках на приведенные ниже.

[MapMenu]
uLockedObjectMapLOD=0
uLockedTerrainLOD=0
bWorldMapNoSkyDepthBlur=1
fWorldMapNearDepthBlurScale=0
fWorldMapDepthBlurScale=0
fWorldMapMaximumDepthBlur=0
fMapMenuOverlayNormalStrength=2.2000
fMapMenuOverlayNormalSnowStrength=0.8000
fMapWorldMaxPitch=360.0000
fMapWorldMinPitch=0.0000
fMapWorldYawRange=3600.0000
fMapWorldTransitionHeight=130000.0000
fMapWorldMaxHeight=130000.0000
fMapWorldMinHeight=130.0000
fMapWorldCursorMoveArea=0.9000
fMapWorldHeightAdjustmentForce=100.0000
fMapWorldZoomSpeed=0.0500
fMapLookMouseSpeed=3.0000
fMapMoveKeyboardSpeed=0.0005
fMapZoomMouseSpeed=5.0000
sMapCloudNIF=0

Примечание: если вы не хотите чтобы удалились облака, удалите строки содержащие sMapCloudNIF

1.3. Сохраните изменения.

1.4. Когда откроете внутриигровую карту, используйте WASD для медляенной прокрутки и мышку для быстрой. Зажимайте RMB для поворота камеры. Зум прибавляется колёсиком мыши.

2. Решение известных проблем:

Q: У меня в этом файле нет такой строки. Что делать?
А: Перед тем, как изменить содержание файла, в свойствах уберите галочку с "Только для чтения". После того, как вы изменили и сохранили файл, вы опять же должны поставить галочку на "Только для чтения", чтобы игра не смогла переписать файл.

Q: Игра вылетает, что делать?
А: Нужно удалить строки uLockedObjectMapLOD и uLockedTerrainLOD

Создание .lod-файла

Без этого файла у вас не будут отображаться меши и текстуры лодов. .lod может быть создан в CK, у меня редактор ломался после 15 минут работы над сравнительно небольшим миром (2х2 квадранта).

Создать файл можно двумя способами:
1. Скопируйте tamriel.lod из Skyrim Meshes.BSA (Я распаковала архив через BSA unpacker). Переименуйте .lod-файл в название вашего мира. Файл нужно поместить в Skyrim/Data/lodsettings.
2. Воспользуйтесь программой по генерации .lod и сделайте файл.

Легко увидеть потенциальную красоту, даже со стандартной текстурой и без растений. Я люблю небо :)

withlod_big.jpg

Теперь лоды работают в игре, но у меня есть некоторые проблемы с пурпурными текстурами.


Это связано с отсутствующими текстурами. Некоторые текстуры имели черные квадраты, в результате отображается всё пурпурным.
Как я говорила ранее, карта мира была сделана из мешей 32 уровня и текстур. Первая картинка без карты нормалей и текстур, вторая с этими текстурами.

map2_big.jpg

tesv_2012-02-11_17-15-47-19_big.jpg

Огромное спасибо все моддерам, которые объяснили эти вещи на форуме Bethesda :)
/E

Создаем свой мир в Skyrim

1 GU (Game Unit) = 0,5625 дюйма = 1,42875 см.
1 THU (TES Height Unit) = 8 GU = 4,5 дюйма = 11,43 см. – шаг изменения высоты рельефа.
1 HP (Height Point) =128 х 128 GU = 182,88 х 182,88 см. - базовая величина, фрагмент поверхности ландшафта приходящийся на один пиксел карты высот.
1 Cell (Ячейка игрового мира) = 32 х 32 HP.
Максимальный размер играбельного мира составляет 128 х 128 Cell, 4096 х 4096 HP, или приблизительно 7 491 х 7 491 метр.

Кое-что о карте высот

Существует миф о том, что Skyrim считывает изображения с оттенками в интервале 0-76%. Это не так. Я скомпилировал градиентную карту с оттенками от черного до белого цветов, и получил ландшафт соответствующей высоты – от -3 745 м. до +3 745 м., без каких либо ограничений.

pre_1444161300__1.jpg

pre_1444161362__2.jpg

Использование же таких глубин и высот на практике маловероятно. К примеру мир Tamriel содержит 3808 x 3008 HP, а разница по высоте между самой высокой и самой низкой точками ландшафта составляет 1063 метра. В 3D это выглядит так

pre_1444161407__3.jpg

Jднако существует некоторое ограничение на разницу высот соседних HP, которая должна лежать в диапазоне от -128 до +127 THU. Если это правило будет нарушено, то соответствующие пикселы карты высот будут исключены при компиляции и на ландшафте получим неприятные артефакты в виде отверстий или вертикальных стен. О наличии подобных ошибок мы узнаем по итогам компиляции, отчетная информация будет содержать следующие строки

Цифры, естественно, будут иными. В этом случае надо доработать карту высот, яркость любых двух соседних пикселов которой не должна отличаться более чем на -128 или +127 шагов градации серого. Это применимо в основном к 16-ти битной карте и лечится, к примеру, снижением яркости изображения (как следствие снижение глубины рельефа) либо применением каких-нибудь сглаживающих фильтров в графическом редакторе (что повлечет сглаживание детализации) или в Geo Control, что даст более интересный результат.

Переходим к практике

Создаем карту высот

Самое сложное – это создание карты высот, которая дала бы нам в итоге желаемый рельеф и без ошибок. Можно рисовать её в каком-нибудь графическом редакторе, можно воспользоваться специализированным софтом, предназначенным для генерации ландшафтов, а можно совместить эти два варианта – наброски сделать в редакторе, а необходимую детализацию добавить с спец-софте. Для данного туториала я воспользовался программой Geo Control 2. После запуска программы будет активна вкладка Generation и в настройках General устанавливаем Terrain Size – 4096 (разрешение карты высот), Width – 7491 (ширина ландшафта), Height – 600 (желаемая максимальная высота рельефа), Amount of details – 16 (детализация генерируемых искривлений поверхности), переходим в настройки Filter и добавляем парочку фильтров с настройками как на скриншоте:

pre_1444161520__4.jpg

Нажимаем кнопку Generate и ждем завершения генерации, смотрим в режиме 3D, устраивает ли нас результат. Если не очень – то генерируем заново, до достижения приемлемого рисунка, каждый раз рельеф будет разный. При получении желаемого рисунка можно отметить чекбокс Keep Seed – это предотвратит изменение рельефа при последующей перегенерации, которая может понадобиться при настройках или изменениях фильтров. У меня получилось вот так:

pre_1444161582__5.jpg

Если освоить программу и изучить настройки фильтров, то можно делать весьма приличные ландшафты. К тому же (если например нужно определенное расположение гор) можно импортировать изображение с набросками рельефа, и доработать до приемлемого качества.

Закончив генерацию ландшафта переходим на вкладку Project, и устанавливаем параметры Projectsize 4096 и Max Altitude 600 (высота рельефа, как в настройках Generation, но можно и другую выставить) и 0 в полях Point at и Cut соответственно. После чего нажимаем Rebuild и ландшафт реконструируется. При этом он станет почти плоским, это нормально. Проект можно сохранить и экспортировать результат в формате RAW 16 bit или TIFF 16 bit.

pre_1444161626__6.jpg

Полученную карту высот открываем в Photoshop и отражаем по вертикали, так как TESAnnwyn при обработке RAW формата отражает изображение, таким образом восстанавливая исходное положение, и применяем размытие по Гауссу с радиусом 1 пиксел, для сглаживания угловатостей в рельефе подобных этим

pre_1444161756__7.jpg

Сохраняем результат в формате RAW. На всякий случай настройки открытия и сохранения RAW формата в Photoshop

pre_1444161801__8.jpg

Компилируем .esp

TESAnnwyn – это консольная утилита, которая на основе карты высот компилирует esp файл с ландшафтом. Для своего ландшафта я использовал следующие параметры

Подробности о программе и параметрах её запуска можно изучить в прилагаемой к ней документации. Остановлюсь лишь на параметре –h, который отвечает за уровень самой нижней точки ландшафта относительно уровня воды, который в свою очередь задаётся в параметрах Worldspace в esp файле создаваемого мира, по умолчанию равен нулю, и я его не менял, за отсутствием видимого смысла. Эта цифра измеряется в GU и зависит от особенностей рельефа и необходимого уровня воды.

Компиляция завершилась успешно

pre_1444161878__9.jpg

Ошибок не возникло, разница высот около 600 метров, что и ожидалось. Копируем полученный esp в папку data в директории игры (можно переименовать) и переходим к следующему шагу.

Создание лодов

Для создания лодов воспользуемся программой Oscape. Лоды можно создать и с помощью Creation Kit, но это долго, чревато вылетами конструктора и отсутствием контроля над процессом. После запуска программы первым делом в меню Game выбираем режим работы Skyrim.

Во вкладке Active Plugins отмечаем наш esp файл с ландшафтом, если вы его не переименовали, то он будет называться tesannwyn.esp. По слухам Oscape работает только с esm файлами, но у меня он и с esp прекрасно справился. Далее нажимаем кнопку Fill и в выпадающем слева списке выбираем наш мир, название которого задавали в параметре –w при создании esp. Отмечаем чекбоксы feature-map и surface-map. Выбираем место и имя файла вывода, и жмём Extract.

pre_1444161940__10.jpg

После извлечения необходимых файлов программа переключится на вкладку Preview, где мы увидим нашу карту высот, и области заполненные водой, обозначенные синим цветом. Если уровень воды отличается от ожидаемого, то нужно перекомпилировать esp с корректировкой параметра –h. Затем повторить извлечение карты высот в Oscape.

pre_1444161970__11.jpg

Oscape имеет одну неприятную особенность – ячейка с координатами 0, 0 не обрабатывается при извлечении карты высот, что выражается черным квадратом на карте размером 31 х 32 пиксела и соответствующим провалом в лодах. Лечится вставкой в извлеченную карту аналогичной области из исходной карты, с корректировкой яркости, так как карты отличаются. Результат до и после.

thumb_pre_1444161997__12.jpg

pre_1444162028__13.jpg

pre_1444162057__14.jpg

pre_1444162081__15.jpg

Параметры сохранения текстур

pre_1444162113__16.jpg

UPD. Проблема с ячейкой 0, 0 обусловлена отсутствием регионов в esp файле. Добавление хотя бы одного региона с помощью Creation Kit, даже без назначения на какие либо ячейки, перед запуском Oscape, устраняет проблему пустой ячейки с координатами 0, 0 в лодах.

После исправления карты высот нажимаем кнопку Accept в программе Oscape и попадаем во вкладку Generator. Выставляем параметр Target of max. Resolution отвечающий за полигональность генерируемых мешей. Слишком высокое значение приводит к ошибке при генерации лодов, поскольку количество полигонов в мешах не может превышать 64 К на один меш. Для моей карты подошло значение 800 000. Отмечаем чекбоксы как на скриншоте и жмём Generate. После завершения генерации программа переключит нас на вкладку Installer, где проверяем правильность директории инсталляции (папка data в директории игры), отмечаем все чекбоксы и жмём Install.

pre_1444162171__17.jpg

pre_1444162192__18.jpg

Теперь можно подключить наш esp в лаунчере игры и переместиться в созданный мир с помощью консольной команды cow testworld 0 0. Testworld – название вашего мира, координаты ячейки могут быть другими, в диапазоне размеров вашего мира.

pre_1444162247__19.jpg

pre_1444162284__20.jpg

pre_1444162312__21.jpg

pre_1444162338__22.jpg

pre_1444162368__23.jpg

pre_1444162402__24.jpg

В качестве дополнения к туториалу хочу показать ещё один вариант создания карты высот.

На этот раз мы не будем генерировать рельеф случайно, а попробуем создать его по своим параметрам, на основе заготовки.

Заготовочку для примера я сделал разрешением 2048 х 2048 пикселов, и довольно примитивную. Можно сделать её с большим количеством слоёв, и более разнообразным рельефом. В моём случае это будет остров с большой горой. Нарисована она из восьми слоев разного оттенка серого, от 30% до 95%. Первые три слоя (самые темные) имеют между собой меньшую разницу в оттенке, нежели последние, этим обеспечивается необходимый угол наклона поверхности. После сведения слоев применяем размытие по Гауссу, в моем случае с радиусом 20 пикселов.

pre_1444162483__25.jpg

Импортируем в Geo Control

pre_1444162514__26.jpg

и начинаем экспериментировать с фильтрами. Здесь ни каких конкретных советов дать не могу, сам только учусь. После часа экспериментов у меня получилась вот такая картина

pre_1444162564__27.jpg

Дальше всё по туториалу, компилируем esp, если возникают ошибки возвращаемся в Geo Control, меняем настройки фильтров, и пробуем ещё раз. Если ошибок не много, то можно уменьшить высоту рельефа в параметре Max Altitude на вкладке Project. У меня рельеф генерировался с высотой 1500 м., а Max Altitude я установил в 1000 м. Высота после компиляции получилась 964 м. над водой, и 29 м. под водой.

pre_1444162639__29.jpg

pre_1444162663__30.jpg

pre_1444162699__31.jpg

pre_1444162728__32.jpg

pre_1444162753__33.jpg

Дополнение

Выше было рассмотрено создание ЛОДов земли для нашего мира. Но ЛОДы - это не только земля на расстоянии, но также и отдаленные объекты и деревья. Стоит отметить, что на сегодняшний день существует много различных утилит по генерации ЛОДов для объектов и деревьев, но мы же их тут рассматривать не будем. Предполагается, что вы будете использовать для этого редактор Creation Kit. И сейчас мы поговорим об одном очень неприятном подводном камне, с которым вы наверняка столкнетесь в процессе работы.

Дело в том, что алгоритм работы Oscape и Creation Kit (далее СК) - разный, и частенько бывает такое, что ЛОДы объектов/деревьев, созданные с помощью СК, не будут работать с ЛОДами земли, сгенерированными через Oscape. Как результат вы либо будете видеть только ЛОДы деревьев/объектов и отсутствие ЛОДов земли, либо наоборот, либо же чересполосицу земли (полоса светлая, полоса черная). Мы же сейчас обсудим как нам "сшить" эти ЛОДы так, чтобы они вместе корректно работали. Ну что ж. немного о том, в чем технически заключается данный конфликт.

Итак, Oscape-у все равно, какие ячейки у вас задействованы, он спокойно сгенерирует ЛОДы земли для всего мира. а СК же создает ЛОДы только для активных ячеек, т.е. для тех, которые задействованы (видоизменены, отредактированы) у вас в плагине. Таким образом, какая-нибудь ячейка "Пустоши -30 -30" на отшибе вашего мира вряд ли подвергалась редактированию и, следовательно, не будет затронута при генерации ЛОДов через СК. Поэтому нам нужно сделать ее активной вручную. Суть конфликта вроде бы объяснил, теперь к решению. Сделать ячейку "активной", можно поредактировав там ландшафт или поместив в нее какой-то объект. Но не спешите, это несколько не то, что я предлагаю. Значит, мы открываем в СК вкладку "World", идем в раздел "Regions" и создаем новый регион для своего мира. Причем создаем не абы какой, а строго определенный. Квадрат с координатами в крайних ячейках нашего мира. Например так:

  • левый нижний угол (-32; -32)
  • левый верхний угол (-32; -31)
  • правый верхний угол (31; 31)
  • правый нижний угол (31; -32)

И отмечаем регион как "Border region" - т.е. граничный. Это не обязательно, но, сами понимаете, за ним все равно ничего нет, а подобная галка не позволит игроку зайти за край мира. Все ячейки, которые затрагивает регион, стали "активными". Теперь их видит наш esp. Все, такой вот нехитрой операцией мы решили упомянутую проблему несостыковки ЛОДов. Теперь можно спокойно генерировать ЛОДы объектов/деревьев в СК и не бояться того, что с ЛОДами от Oscape-па что-то случится.

Да, немаловажное замечание! Сохраните свой плагин и перезапустите СК, в момент генерации ЛОДов ничего не должно быть подгружено в Render Window, иначе беда - поломается ландшафт, и вы запорете себе плагин. Поэтому не забудьте перед генерацией сделать бэкап, ну и, желательно, сконвертировать свой esp в esm и генерировать ЛОДы уже из esm.

От карты высот до мира в Skyrim — Часть 2

Теперь я работаю над лодами для своего мира. Я нашла эту прекрасную тему, где все это было обсуждено, спасибо вам!

В CS лоды создавались в Heightmap editor, в Creation kit это меню так же существует, но ничего не происходит, когда вы пытаетесь сделать меши лодов таким образом.

Для лодов нужны три вещи: меши (.btr files), текстуры (.dds files) и .lod-файл для самого мира. Существуют несколько способов для создания этих файлов, вы можете использовать CK или другую программу, способную сделать это.

TES 5: Skyrim "Бумажная 3D-карта v4.4"

Язык: русский (все маркеры и места), надписи на самой карте на английском, т.к. сама карта - это текстура.

Данный мод является графическим изменением игровой карты на новую, бумажную 3D-карту, в 2-х версиях. Эти карты имеют более подробное визуальное оформление: будут отображаться ранее невидимые места, реки, озёра, границы местности и владений.

Особенности версии мода 4.4:
1) Данное обновление касается только 1-й версии карт: исправлены баги и недочёты основной карты (с маркерами) и добавлен опциональный вариант (без маркеров)
2) Исправлены баги и недочёты карт для DLC
3) 2-я версия карт не обновлялась

Описание карт:
1-й вариант:
1) Все текстуры сделаны вручную и практически схожи с картой, которая была использована в The Elder Scrolls IV: Oblivion
2) Все элементы карты прорисованы с высокой точностью
2-й вариант:
1) Карта сделана на основе оригинальной пергаментной карты Скайрима, выпущенной Bethesda
2) Добавлены реки, которые не отражались в оригинале
3) Чётко выделенные тропы и дороги в горах и других областях
4) Чёткий видимый текст владений на карте (текст на самой карте английский, а при наведении указателя всё на русском, как в оригинале)
5) Увеличена видимость рек и озёр
6) Добавлены некоторые водопады, которые не отображались в оригинале
7) Изменён цвет маркеров, чтобы лучше соответствовать бумажному стилю
8) Изменён размер карты и маркеров для лаконичного внешнего вида

Аддоны:
1) Карта для DLC Dawnguard
2) Карта для DLC Dragonborn
3) Карты без маркеров (для обеих версий)

Важные моменты:
Если при первой загрузке мода вы будете в помещении, то карта будет невидима до тех пор, пока вы не выйдете наружу. Это решит проблему.

Установка:
1) Выбрать основной вариант 1-й или 2-й версии карты (см. скриншоты ниже)
2) Поместить папку Data в корневую папку игры (где находится Launcher), подтвердив слияние папок и файлов
3) Активировать в Launcher
Опциональные варианты карт нужно ставить после установки основного варианта.
Если установлены DLC Dawnguard и/или Dragonborn, то желательно установить соответствующие карты (находятся в папке "Аддоны").

Создание мешей и текстур

У меня были краши редактора, когда я пыталась сгенерировать текстуры. Я читала, что Skyrim нуждается в двух видах текстур - diffuse/color и normal. Они могут быть сгенерированы при помощи двух разных утилит - TES4qLOD и Oscape. Oscape создаст меши, normals и diffuse/color, я бы рекомендовала вам использовать эту программу, она намного быстрее и лучше чем CK. У меня редактор работал только с миром 16x16 (заняло несколько часов!).

Поправка: новая версия Oscape по ссылке.

Для работы с Oscape я воспользовалась небольшим советом от Maegfaer:

1. Убедитесь, что ваш ESM (только не ESP, Oscape не читает ESP-файлы) активирован в списке модов.
2. Запустите Oscape, убедитесь, что он запущен в режиме Skyrim mode (вкладка 'Game').
3. Нажмите Fill.
4. Выберите ваш мир в списке, отметьте feature-map и surface-map. (промотайте вниз до "Fill")
5. Выберите папку, где будут сохраняться файлы, это не обязательно должна быть папка Skyrim, сохранять можно куда угодно. (Измените имя вашего .raw файла в соответствии с названием вашего мира).
6. Нажмите Extract. Если у вас появится окно с ошибкой, что нет такого мира, закройте Oscape и повторите шаг 2.
7. Ждите, пока все не закочнится. В определенный момент Oscape должен сам автоматически перейти на другую вкладку (Preview).
8. Обычно все параметры верны, программа покажет вам карту высот, которую она вытащила (не пропускайте предыдущие шаги, т.к. карта высот, которая у вас есть, отличается от той, что у Oscape в превью) и таблица, где вы можете выбрать какие части будут генерироваться. Всё включено по умолчанию. Затем нажмите Accept.
9. Перейдите на вкладку 'Generator'.
10. Первое, что вы должны изменить - это 'Target of max. resolution'. Попробуйте поставить 728000.

Поправка:

Значение The Target of Max resolution зависит от того, насколько детализирован ваш мир, даже самый плоский мир может иметь высокое число. Ethatron (создатель Oscape) рекомендует не ставить значение ниже 1000 pts per cell в вашем мире. Вам нужно будет протестировать, что будет работать в конкретном вашем мире.

oscape_thumbnail.jpg

The Oscape settings

Я не доверила Oscape установить эти файлы, были ошибки, поэтому установку произвела вручную.

Текстуры (.dds) должны быть в папке:
Skyrim/Data/Textures/Terrain/"worldspace"
а меши (.btr) в:
Skyrim/Data/Meshes/Terrain/"worldspace"

Вам нужно будет создать эти папки, если их у вас нет.

Скопируйте все файлы Copy all the .btr and .dds files.

Меши состоят из 4 уровней: 4, 8, 16 and 32. Все они нужны игре, уровень 32 создает карту.

Меши с помощью Creation Kit:

В Creation kit нажмите World, World LOD. В появившимся окне вы сможете выбрать различные настройки, затем нажать Generate. Так же есть настройка Background и High Priority, это определяет скорость генерации мешей (используйте High Priority, это сэкономит вам много времени). Мой Creation kit ломался, когда я его сворачивала, но перезапуск генерации помог. Там так же есть утилита, которая очистит файлы (Clear Scratch Files), я думаю, она удалит все незаконченные лоды. Сами же файлы лоды должны быть в папке Skyrim/Data/Meshes/Terrain/"worldspace", а так же иметь расширение .BTR.

ck-lodgen_small.jpg

Читайте также: