Перейти к содержанию
Авторизация  
NikolasRedArrow

Замена текстур (в том числе виртуальных) в S.T.A.L.K.E.R. 2 (перевод гайда)

Рекомендуемые сообщения

 

Вот мы и добрались до момента, когда приходится скачивать Unreal Engine для работы с игрой... На Nexusmods нашёл гайд по работе с текстурами, перевод ниже. Автор гайда — suunnnnn. Оригинал — тут.

Спойлер

Пока не видел руководства по этой теме, поэтому решил его опубликовать. Этот метод должен работать для мэшей, текстур, материалов и т. д. Большинство других руководств по UE5 не охватывают потоковую передачу виртуальных текстур, а ведь они используются практические везде в «Сталкер 2».

Нам понадобятся:

FModel: https://fmodel.app/
Unreal Engine 5.1: https://www.unrealengine.com/en-US (устанавливается через EGS)
Если движок откажется паковать архивы, ссылаясь на отсутствие SDK, установить следующее:
SDK для UE5.1 для Windows: https://developer.microsoft.com/ru-ru/windows/downloads/windows-sdk/
.NET 3.11: https://dotnet.microsoft.com/en-us/download/dotnet/thank-you/runtime-desktop-3.1.24-windows-x64-installer

Установка

Установка FModel описана в этом руководстве.

Для установки Unreal Engine:
1. Скачайте Epic Games Store, перейдите на соответствующую вкладку, а после — в библиотеку.
2. Нажмите на плюсик правее «Версии UE», нажмите на стрелку вниз справа от версии, выберите версию 5.1.1, запустите установку. Unreal Engine нужен ОБЯЗАТЕЛЬНО версии 5.1. Не 5.5, не 4.8, не Open-Xray.
3. Запустите движок и дождитесь компиляции шейдеров. Процесс не быстрый.

Как узнать, нужно ли мне всё это делать?

Не уверены, собираетесь ли вы заменить именно виртуальную текстуру? Откройте .uasset для текстуры в FModel и найдите там следующую строку:


"VirtualTextureStreaming": true

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

Создание проекта

Приступаем к самой работе в движке:

1. Создайте новый проект с шаблоном Games > Blank и выставьте следующие настройки:
Blueprint
Target Platform: Desktop
Quality Preset: Maximum
Starter Content: [ ] (не ставьте галочку)
Raytracing: [ ] (не ставьте галочку)

ОБЯЗАТЕЛЬНО назовите проект stalker 2. Пока что это единственный известный мне способ сделать так, чтобы пакет правильно определялся игрой и работал. Если кто-то знает способ обхода этого нюанса — расскажите.

124788120__2024-11-25_193853936.png.82a9dcd1ce9bc2c2368b92205d527034.png

Настройка параметров

Нажмите пункт «Platforms» и перейдите в «Packaging Settings»

1200757361__2024-11-25_193900073.png.4cf1a972fe770e8092eec2daee65fc77.png

Включите «Use Pak File [X]»
Включите «Use Io Store [X]»
Включите «Generate Chunks [X]»

1894479869__2024-11-25_193915359.png.fc4f2c35b1d29b70d1602913558f70c3.png

В поиске введите «cook» и поставьте галочку напротив «Cook everything in the project content directory [x]»

2020885601__2024-11-25_193921426.png.467328f7c8bef882c85884e0d5fdfe78.png

Настройка виртуального текстурирования

1) Выберите меню «Edit» и откройте окно «Project Settings».
2) Введите в поиске "virtual".
3) Проскрольте до пункта «Enable virtual texture support [x]» и активируйте его.
4) ОПЦИОНАЛЬНО Если текстуры, которые вы заменяете, включают в себя следующие параметры, включите их (п. п. автор гайда не уточнил, как это определить):
Активируйте «Enable virtual texture lightmaps [x]»
Активируйте «Enable virtual texture anistropic filtering [x]»
Активируйте «Enable virtual textures for Opacity Mask [x]»

1316061350__2024-11-25_193927745.png.db1832e077e280e078c13a78f190ab7a.png

UE5 предложит вам перезапустить себя. Сделайте это и подождите 6 лет, пока он вновь закончит кэшировать шейдеры.

Добавляем текстуры в проект

Добавьте ваши текстуры, повторяя иерархию папок в оригинальном pak файле. То есть если ваша текстура в FModel находится по пути «Stalker2/Content/_Stalker_2/items/loot/SM_loot_backpack_a.uasset», то и внутри проекта она должна полностью повторять этот путь.

1054075169__2024-11-25_193945121.thumb.png.af4ed3d847cc7d37a5e5df5baea7cb26.png

1792356748__2024-11-25_193959598.thumb.png.fbee2716c85766dc211a4625a0e026e2.png

Теперь пришло время отредактировать свойства каждой из ваших текстур:
Проверьте свойства вашей текстуры в FModel для этих полей:
[?] CompressionSetting
[?] PixelFormat
[?] sRGB
[?] VirtualTextureStreaming


Вот что вам нужно искать в FModel в зависимости от типа текстур:
Diffuse texture (литера D в конце тектуры)
PixelFormat — DXT1, а CompressionSetting отсутствует, поэтому это текстура «по умолчанию»

image.thumb.png.048815f2c9bf2300b645fc6daacd852e.png
Normal texture (литера N в конце текстуры)
PixelFormat — DXT5, а CompressionSetting — TC_Normal так что это "Normal" текстура
image.thumb.png.023ef75af3fadfedc67c18ce3b0b400a.png
RHO (roughness, height, opacity) или другие map-файлы (литеры RHO в конце текстуры)
PixelFormat — DXT1, CompressionSetting — TC_Masks, так что это "Masks" текстура.

image.thumb.png.35aa841c71cf75fe19c5e7b3f4236422.png

Конвертирование в виртуальную текстуру

Как только вы настроили настройки сжатия для всех текстур, настала пора преобразовать их в виртуальные текстуры.

Выберите все текстуры, которые в коде имели строчку VirtualTextureStreaming: true, нажмите ПКМ и выберите Convert To Virtual Texture

873418640__2024-11-25_194044534.png.f742121a13f7636a9e34a50941dac185.png

Во всплывшем окне вы увидите пункт «Texture Size Threshold». Выберите 4096, а после опускайте значение до тех пор, пока в списке не появятся все текстуры, которые нужно переконвертировать в виртуальные. (п. п.: не знаю, как это скажется на качестве текстур, но автор гайда настаивает на таком подходе)

894208697__2024-11-25_194051933.png.e8d830e069f40333e34f1604c26508c4.png

Нажмите «Save All». У текстур появится плашка «VT» в углу.

2133788060__2024-11-25_194059324.thumb.png.452987916d26ad5e8ea0ca6c7db5e077.png

Создайте ярлык ассета

Вернитесь в папку Content, кликните ПКМ и создайте новый файл типа «Data Asset».

1052879693__2024-11-25_194110779.thumb.png.2c38c4345feeefe3c8e6f0051fcea494.png

Выберите «Primary Asset Label»

1402047367__2024-11-25_194122073.png.0a2bf9d82261cdccf1a06727b18a79e7.png

Дайте ему название в формате «Label_НАЗВАНИЕМОДА», а затем дважды кликните на созданный файл.

253502518__2024-11-25_194126043.png.c0986684f59fb071a438aef3169c256f.png

Выставите следующие настройки:

Priority: 1 или выше
Chunk ID: 1000 или выше, оно должно быть уникальным, поэтому не выбирайте 1420, так как это число уже занято (п. п.: видимо, автором гайда)
Cook Rule: Always cook
Label Assets in my directory: [x] (ПОСТАВЬТЕ ГАЛОЧКУ)

1872534063__2024-11-25_194134641.png.6177f9e1adf6db9b93b0f7f467bc5c69.png
Выберите в левом верхнем углу «File» и нажмите «Save All».

Запаковываем всё это

Кликните Platforms > Windows > Shipping
Кликните Platforms > Windows > Package Project

881803400__2024-11-25_194140316.png.d50c251ae64580c2496a5c2b9bc212e6.png
Выберите директорию для вашего сгенерированного package, я создал каталог «Build» с подкаталогами для уникальных сборок.

ВАЖНО! Если на этом этапе у вас выйдет сообщение об отсутствии SDK для Windows, загрузите и установите этот пакет.
Процесс займёт много времени.
О-о-очень много времени...
ГОТОВО!

 Подготовка и установка .pak файлов 

Мы почти у финиша! Осталось только подготовить измененные файлы к установке.

2123158505__2024-11-25_194144998.thumb.png.1223cb0a605ada2f54326846046f171b.png

Для этого перейдите в директорию, куда экспортировали файлы, а после переименуйте три файла с chunk id, который вы указали ранее в настройках Label. Переименуйте их по следующему принципу: z_YourMod_P.

670393405__2024-11-25_194152794.png.e8984761dd1dd756e10371446526817b.png

Убедитесь, что имя заканчивается на «_P»!

Переместите все три файла в каталог  «~mods/».

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

643335785__2024-11-25_194204358.thumb.png.07f2907466bc90d5125457cba805e503.png

Возможные ошибки

Ресурс не заменён в FModel и выглядит как оригинал -» Попробуйте пеерсоздать Label с другим Chunk ID, а после перепакуйте проект.

Тестируем!

Откройте игру и проверьте изменения. В тридцатый раз за день...

 

 

Изменено пользователем NikolasRedArrow
  • Лайк 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
3 минуты назад, NikolasRedArrow сказал:

скачивать Unreal Engine

:u1F44D.0:


 


Palit RTX 4060 Ti JetStream 16GB Hynix 200W BIOS | Intel Core i5-12400F SRL5Z | GOODRAM 32GB (2x16) DDR5 6000MHz CL30 Hynix A-Die  | ASRock B760M PG Lightning PCI-E 5.0  Lexar NM800 Professional 1TB M2 PCI-E 4.0 | Chieftec ATMOS 850W | Arctic Freezer 36 Black | ViewSonic VA3209-MH FHD | Windows Enterprise 11 24H2 26100.2314 | DLSSQ 3.8.10


 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
1 час назад, NikolasRedArrow сказал:

На Nexusmods нашёл гайд по работе с текстурами, перевод ниже

Супер:) то что надо:)

Теперь можно и текстуры на русский переделать:)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
3 минуты назад, tonic сказал:

Теперь можно и текстуры на русский переделать

А какой-нибудь 4k Texture Pack тоже теперь реально запилить?

Изменено пользователем Nomad™ LIVE

 


Palit RTX 4060 Ti JetStream 16GB Hynix 200W BIOS | Intel Core i5-12400F SRL5Z | GOODRAM 32GB (2x16) DDR5 6000MHz CL30 Hynix A-Die  | ASRock B760M PG Lightning PCI-E 5.0  Lexar NM800 Professional 1TB M2 PCI-E 4.0 | Chieftec ATMOS 850W | Arctic Freezer 36 Black | ViewSonic VA3209-MH FHD | Windows Enterprise 11 24H2 26100.2314 | DLSSQ 3.8.10


 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
Только что, Nomad™ LIVE сказал:

А какой-нибудь 4k Texture Pack тоже теперь реально запилить?

В теории думаю что можно:))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
6 минут назад, tonic сказал:

можно

:u1F44D.0::u1F91D:

А то местами текстурки конечно:u1F47A:

Изменено пользователем Nomad™ LIVE

 


Palit RTX 4060 Ti JetStream 16GB Hynix 200W BIOS | Intel Core i5-12400F SRL5Z | GOODRAM 32GB (2x16) DDR5 6000MHz CL30 Hynix A-Die  | ASRock B760M PG Lightning PCI-E 5.0  Lexar NM800 Professional 1TB M2 PCI-E 4.0 | Chieftec ATMOS 850W | Arctic Freezer 36 Black | ViewSonic VA3209-MH FHD | Windows Enterprise 11 24H2 26100.2314 | DLSSQ 3.8.10


 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Итак, гайд не только переведен, но и проверер. Сами текстуры распаковываются через FModel спокойно.
А вот время работы UE неприятно удивило - даже на NVME SSD и довольно мощном компьютере перепаковка одной текстуры заняла 50 минут. Не думаю, что от их количества будет сильно зависить время - движок, по сути, пытается собрать полноценный прототип игры на вложенных по умолчанию ассетах, лишь в конце запаковывая нужную мне текстуру.

Потом попробую удалить всё содержимое сцены и работать только с файловым архивом. Кто знает, может поможет и ускорит время. Если кому-то известен способ сократить время - прошу им поделиться, иначе модов на текстуры будем ждать джва года)

Спойлер

image.png.ea263cad4eaff67f5bf2f7e9769adecc.png

 

  • Мастер! 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   2 пользователя онлайн