Gildor's Forums

Author Topic: Медленный дамп  (Read 281 times)

View Profile
Медленный дамп
« on: May 12, 2020, 23:00 »

Добрый день, есть утилита которая с помощью umodel'и делает дампы большого числа упк файлов и сохраняет их в логи, затем парсит их и строит базу данных 3д моделек игры, но после какого-то обновления, та старая версия umodel (у нее даже нет ui), которая изначально шла с утилитой, перестала нормально дампить архивы (в логах были только ошибки). Помогла замена umodel на новую версию, но вылезла такая проблема - последняя версия umodel делает дамп одного файла ооочень медленно (до 3х минут), в то время как старая делала это почти моментально, и теперь на создание актуальной базы нужно несколько суток вместо нескольких минут. Похоже причина в том, что все упк лежат в одной папке и их там почти 40 тысяч.

Мб есть какой-нибудь способ или параметр, чтобы при дампе не затрагивались все ~40к файлов, а только нужные?
Logged
mark2580
Full Member
***
Posts: 171



View Profile
Re: Медленный дамп
« Reply #1 on: May 12, 2020, 23:08 »

Всё несовершенно  Wink
Logged

MARK2580
Gildor
Administrator
Hero Member
*****
Posts: 7969



View Profile WWW
Re: Медленный дамп
« Reply #2 on: May 12, 2020, 23:22 »

Я честно говоря не особо понимаю что за дампы, какие параметры идут в umodel, и так далее. Новая версия не должна работать медленнее, я обычно делаю оптимизации, а не наоборот.
Как вариант, виновато обновление ИГРЫ, а не umodel-а.
Logged

View Profile
Re: Медленный дамп
« Reply #3 on: May 12, 2020, 23:55 »

дамп это вот это

umodel.exe -dump -path="путь''" -game=bns ' + upkId

вся инфа которая потом выводится в консоль... ну она сохраняется в файл лог с именем упк


новая версия :


старая, файл тот-же и в той же папке :



дампы одинаковы, только вот оно -> сканед гейм директори 288 сек, походу это и есть причина медленной работы, хм... вот если б можно было дамп делать не сканируя гейм директори
Logged
Gildor
Administrator
Hero Member
*****
Posts: 7969



View Profile WWW
Re: Медленный дамп
« Reply #4 on: May 13, 2020, 00:11 »

Да, очень старый umodel при передаче ему всего одного файла вроде бы не делал сканирование. Потом я сделал чтобы подхватывались все файлы, по-другому например могли не работать текстуры. Код сейчас расчмиывает на то, что он знает обо всех файлах в папке игры.
Как вариант могу предложить делать дамп "пачкой". Например для UT2004 можно сделать так:
Code:
umodel.exe -path=c:/games/ut2004 Animations/* -dump
Эта команда загрузит все ukx (upk) файлы из папки Animations и затем сделает дамп.

Другие варианты:
- поделить папку с игрой, чтобы там было поменьше чем 46000 файлов (это вообще полная глупость со стороны разработчиков - делать такое количество файлов)
- скомпилить umodel для 64-бит (по-другому думаю памяти не хватит) и сделать дамп вообще всего сразу
- возможно помог бы SSD или RAM-disk с файлами игры, чтобы чтение каталога происходило побыстрее.
- ещё вариант - запустить в папаллель несколько umodel-ов с разными upk и разными логами - запустите 16 штук, отработает по всем файлам в 16 раз быстрее.
Logged

View Profile
Re: Медленный дамп
« Reply #5 on: May 13, 2020, 01:02 »

Да, я подковырял скрипты чтобы сканировалось 20ю юмоделями, но это всё рано несколько ночей. Эх.. видимо опять брутфорса не избежать.

Можно тогда еще один вопрос - когда мы просматриваем скелет, как я понимаю umodel находит нужный упк с текстурами и натягивает их, но, с недавних пор, появилась возможность некоторые модели перекрашивать (в самой игре) и у таких моделей теперь по 2 текстуры в архиве (одна дефолтная и вторая полностью белая); можно ли как-то переключать эти текстуры при просмотре? А то umodel по дефолту всегда выбирает "пустую" текстуру, хотя нормальная лежит рядом.



Logged
Gildor
Administrator
Hero Member
*****
Posts: 7969



View Profile WWW
Re: Медленный дамп
« Reply #6 on: May 13, 2020, 10:04 »

В umodel не изменить то, что натягивается на модели.

К слову, я поясню что делает umodel при том самом сканировании. Он просто читает список файлов из папки, указанной в -path. То есть тормоза идут от Windows, в основном такое случается если все файлы лежат в одной папке. Чтобы всё работало быстрее, часто разработчики пассортировывают файлы по под-папкам - делают 256 папок, внутри каждой - ещё 256, а внутри вложенных уже идут файлы. Например подобная система используется для DDC в UE4.
« Last Edit: May 13, 2020, 10:08 by Gildor » Logged
Reiner Lute
Newbie
*
Posts: 39


View Profile
Re: Медленный дамп
« Reply #7 on: May 13, 2020, 11:10 »

Если ничего не путаю, в самой огромной по онлайну ММОРПГ игре на данный момент ( Black Desert Online ) тоже очень много файлов лежит в одной папке, но при этом оптимизация у них на очень высоком уровне. Но движок у них собственный. Видимо это как то сказывается на производительности. в Blade&Soul( вроде такая игра у автора темы ), движок вроде на UE.

Мне кажется, автору темы можно попробовать вручную хотя бы половину файлов перенести в другую папку и обработать в два раза меньше файлов для начала, посмотреть на результат. Когда я с L2 делал что то подобное, я тоже ждал около суток. Но ради такого дела, и сутки подождать можно было...
Logged

View Profile
Re: Медленный дамп
« Reply #8 on: May 17, 2020, 00:10 »

В umodel не изменить то, что натягивается на модели.

я всё таки попытался, менял имена текстур пробовал немного "подтереть" упк, чтобы была видна только одна нужная текстура, в итоге я выяснил следующее - юмодель вообще не грузит эти текстуры, даже не доходит до файла с ними, а натягивает на модель вот этот квадратик:



решил перед тем как сесть за анализ файлов спросить тут, есть ли способ заставить юмодель хотябы какую-нибудь из текстур натягивать?
Logged
Gildor
Administrator
Hero Member
*****
Posts: 7969



View Profile WWW
Re: Медленный дамп
« Reply #9 on: May 17, 2020, 12:49 »

В umodel этого не сделать без изменения самой программы. У меня были мысли насчёт некоторого простейшего редактора материалов в самом umodel (чисто "для посмотреть"), но не думаю что когда-нибудь дойдут руки. Я обычно советую собирать материалы в других программах (Max, Blender, Unreal).
Logged
Jump to:  

Powered by SMF | SMF © 2006-2009, Simple Machines LLC
Leviathan design by Bloc | XHTML | CSS