World Of Warcraft WOTLK 3.3.5a – Улучшение классической графики (текстуры).

5
(1)
*** Вступление ***

В сети очень популярны HD патчи для WoW 3.3.5a, в которые включены модели из современных дополнений (таких как Warlords of Draenor, Legion и Battle for Azeroth). Мне же стилистика новых моделей, к которой перешли Blizzard, не очень нравится, поэтому я начал искать способы как улучшить качество классической графики и в результате сделал (а также нашел) несколько патчей, которыми хотел бы поделиться.

*** Краткое описание патчей ***
  • WoWEXE_Patched – пропатченный исполняемый файл, позволяющий игре использовать больше оперативной памяти, а также читать MPQ архивы большого размера. Необходим для работы нижеописанных патчей, т.к. их MPQ архивы довольно тяжеловесны.
  • patch-ruRU-B – Патч от автора sh1tdev с улучшенными через нейросеть текстурами всей брони и одежды в игре. Ссылка на оригинальный пост.
  • patch-ruRU-C, D, E – Текстуры всех (я надеюсь) NPC в игре, которые я увеличил нейросетью с 256p до 1024p. Всего 15666 штук.
  • patch-ruRU-F – Включает встроенный в игру генератор имен при создании персонажа, который по умолчанию присутствует только в US клиенте игры.
  • patch-ruRU-G, H, I – Патчи, взятые со странички StygianCore, включающие в себя улучшенный эффекты солнца (G), HD текстуры мира (H) и деревьев (I). Ссылка на оригинальную страничку.

Ссылка на папку с патчами: https://drive.google.com/drive/folders/1xQefmSNS33vLzMfJ3-AZTS5APjUfM2vO?usp=sharing

*** Установка ***

Рекомендуется использовать чистый клиент 3.3.5а, без каких-либо патчей. Кинуть скачанные MPQ архивы в папку с игрой > Data > ruRU. Если у вас английская версия игры, переименуйте патчи, удалив приписку ruRU (например, было patch-ruRU-B, а стало patch-B) и киньте их в папку Data. Буквы в конце патча (A, B, C и т.д.) можно поменять на любые другие буквы английского алфавита, если у вас в клиенте уже установлены какие-либо другие патчи и вы не хотите заменять их.

*** Более подробное описание некоторых патчей ***
*** patch-ruRU-C, D, E – Увеличенные нейросетью текстуры NPC ***

Потратил очень много времени на создание данного патча, но, как мне кажется, результат того стоил. Для этого использовал Waifu2x-CPP GUI By Maz-1, увеличивал до 1024p с уровнем шума 3. Чуть ниже картинки с примерами, как было и как стало:

*** patch-ruRU-F – встроенный генератор имен ***

“Примеряя” на игру некоторые англоязычные патчи, я обнаружил, что при их установке появляется тот самый генератор имен при создании персонажа, который по умолчанию присутствует только в американской (US) версии игры. Мои дальнейшие исследования привели меня к файлу Data > ruRU > locale-ruRU.MPQ > Interface > GlueXML > CharacterCreate.lua. Если открыть английскую версию этого файла блокнотом, то мы обнаружим следующий код, который отсутствует в русской версии файла:

SetCharacterCreateFacing(-15);

if ( ALLOW_RANDOM_NAME_BUTTON ) then
CharacterCreateRandomName:Show();
end

Просто берем из этого отрывка кода строчку  “CharacterCreateRandomName:Show();” (игнорируя условие if) и вставляем в русскоязычный файл. Получается так:

SetCharacterCreateFacing(-15);

CharacterCreateRandomName:Show();

В результате этих действий получаем рабочий генератор имен прямо в игре, как на картинке ниже, кнопочку “Случайный выбор”! (кстати, можете обратить внимание на четкость текстур одежды у персонажа, это результат работы патча “patch-ruRU-B”)

Спасибо за внимание! Подготовил для вас материал, а также сделал патчи C, D, E, F (HD текстуры NPC + патч на генератор имен) – Petunindan.

Можете смело использовать мои наработки в своих проектах, однако буду крайне благодарен, если вы упомянете меня где-нибудь в своем ReadMe. Что касается работ других авторов, то, надеюсь, что они не против того, что я “присоединил” их работы к этому посту, по крайней мере всех авторов и ссылки на оригиналы я всегда указываю.

*** Заметки по редактированию текстур ***

Больше всего времени у меня заняло исследование того, как вытащить из игры текстуры, а затем, улучшив их, запихнуть обратно в игру и чтобы это все работало. Поэтому я решил опубликовать также свой черновик с записями и инструменты, которыми пользовался (файл WoWTexturesTools.7z), вдруг кому поможет в его изысканиях:

Waifu2x-CPP GUI By Maz-1
Апскейл до 1024p
Уровень шума 3.

Текстуры извлекаются из архивов в папке Data, из каждого по очереди, заменяя более старые файлы новыми (например, сначала извлекается common.MPQ, затем common-2.MPQ, заменяя устаревшие файлы и так далее). Если вы решите извлекать текстуры NPC (BakedNPCTextures), то обращайте внимание на размеры файлов, так как в последующих архивах попадаются пустые файлы по 0 килобайт, которые при извлечении могут заменить хорошие текстуры.

BLPConverter6.exe из PNG в BLP. BLP на выходе должны получаться примерно 694 килобайта. Если получаются больше (более 1 мб), игра будет вылетать с ошибкой. В таком случае прогоняем их через IrfanView PNG>PNG с compression level 9.

Для конвертации всех *PNG в папке с конвертером, я использую cmd скрипт:

for %%i in (*.png) do BLPConverter6.exe “%%i”
pause

Если текстура все равно превышает 1мб, ничего не остается делать, кроме как уменьшить ее до 512p.

Также при апскейле текстуры с альфа каналами могут сохраняться неправильно.
Например, TILESET > Elwyn > ElwynnFlowerBase_s

В этом случае грузим imagemagic, создаем в нем папки A, B, C и батник:

for /r %%i in (.\A\*) do magick.exe convert -quiet A\%%~nxi ( B\%%~nxi -channel a -separate +channel ) -alpha off -compose copy_opacity -composite C\%%~nxi
pause

Хорошие картинки кидаем в A, плохие но с альфа каналом кидаем в B, на выходе получаем C. Хорошие и плохие должны иметь одинаковое название, чтобы скрипт сработал. Для быстрого добавления суффикса (например, Alpha) всем файлам в папке A использую CMD скрипт:

for /r %%i in (.\A\*) do REN *.png *.
for /r %%i in (.\A\*) do REN *. *Alpha.
for /r %%i in (.\A\*) do REN *. *.png
pause

Для некоторых изображений с альфа каналом отсутствуют оригиналы. Чтобы создать оригинал, открываем картинку c альфой в Gimp и пересохраняем ее с форматом пикселей 8 RGB, тогда альфа канал удаляется и мы получаем чистую картинку без прозрачности.

У некоторых картинок на выходе прозрачность превращается в зеленый цвет. Для этого прогоняем исходники через waifu2x – Snowshell v2.3 с параметрами Noise Reduxtion > None и Scale > x1.0 и работаем уже с получившимися картинками.

Также, некоторые картинки придется вернуть в 8bit, иначе в игре вместо них будет отображаться зеленый цвет.
Чтобы сконвертировать их в 8 бит и не потерять прозрачность, снова использую ImageMagic. В папку A складываю картинки, в папке C получаю результат:

for /r %%i in (.\A\*) do magick.exe convert -quiet A\%%~nxi -colors 256 -depth 8 C\%%~nxi
pause

Насколько публикация полезна?

Нажмите на иконку, чтобы оценить!

Средняя оценка 5 / 5. Количество оценок: 1

Оценок пока нет. Поставьте оценку первым.

Мне жаль, что эта публикация не оказалась полезной для вас!

Позвольте мне стать лучше!

Пожалуйста, расскажите, почему?

Подписаться
Уведомить о
guest
3 Комментарий
Популярные
Новые Старые
Межтекстовые Отзывы
Посмотреть все комментарии
Artur91425
Artur91425
5 месяцев назад

Насчет генератора имен. Все гораздо проще. Не нужно удалять то условие, достаточно переменной ALLOW_RANDOM_NAME_BUTTON присвоить значение true. Собственно именно это и делается в клиенте enUS в файле Interface\GlueXML\GlueLocalization.lua. Я бы рекомендовал тебе переделать патч генератора имен, сделав в нем только один файл GlueLocalization.lua в котором добавил бы всего одну строку)