Auto Models Viewer aka MDL Auto Screenshots Tool

Black_Yuzia

Зарабатываю на жизнь Мемами про Крузю.
Сообщения
693
Реакции
372
Пока сидел вспомнил как я писал одну тулзу. Как помню она немного с багами была. Например не всегда у модельки могла получить текстуры. Ибо разрабы умные пихают текстуры в разные папки. А мне ходи читай каждый файл и проверяй какой файл какие текстуры в себе имеет, так еще и все файлы читать надо а то вдруг пропущу что.
Мб по этому и не дофиксил это все до конца. Но в целом, оно работало.

В чем суть тулзы?
Бывает зайдешь на 100500 серверов. У тебя 100500 моделей, скинов, оружия и прочего. Мне было лень ручками открывать каждую модель через всякие models viewers. Иногда еще и делать скрины если надо. А то забудешь же что за модель была.
К тому же если ты хочешь ее загрузить куда-то. Тебе надо ее вытянуть. А это не всегда просто, а иногда муторно. Найти все файлы. Проверить а все ли файлы ты вытянул и тд. Больше всего мороки с materials но не суть.
Кто-то скажет что все или большую часть моделей можно найти на сайтах сразу в архивчике, а иногда и сжатые в bz2 архивы. Также сразу со списком всех файлов и их путями для удобного добавления во всякие downloads.txt.
Да, может быть. Но все бывает. Иногда хочется покопаться в файлах что ты накачал. Вдруг что интересное найдешь. Например Dick3D.mdl
Цель была ясна, но это не точно. Не помню точно как быстро, но у меня получилось написать +- работающий прототип, а позже сделать небольшой code reveview. Хотя, судя по коду (см. скриншот) я особо не старался видимо. Но код реально старый. За это время, надеюсь, я стал лучше и мой код стал лучше. Тапками не кидайтесь.
Чисто пример кода который там был. Не то чтобы слишком страшный или плохой код, но мне как-то не по себе. Если бы я писал это все сейчас я бы много чего изменил (например все?).
1666565084419.png

Что же делало мое приложение?
Схема работы была достаточно простая
Сканируем все на наличие моделек.
Достаем все файлы модельки.
Делаем скриншоты (тут я тоже наигрался как бы это все провернуть, но как-то потом расскажу).
Что мы (кто мы? ты тут один.) я получал в итоге? Как и заказывал: скриншот модельки, файлы самой модельки (текстуры и собственно тело модели) их пути и прочее.

Вот какие скриншоты получаются

hutao_9dfdd28f735c7205d8c5e113bd5f340d_fec913dce44e6ee042978258d5dbcefa.png

1666565861050.png

1666565890609.png

Есть также и менее удачные. Например не нашло все или вообще никакой текстуры. Из-за чего все белое.
1666565923933.png

1666565938933.png

1666565984218.png

Обычно я поворачивал модель на определенные углы, и она смотрела +- на меня.
В некоторых случаях это не работало, хз почему. Вопрос к разрабам моделек и к тем кто шарит почему так.
Потому получалось так:
1666566076331.png

1666566082940.png
За минут 30-40 (ограничивается железом и скоростью работы моего приложения, а еще моей точностью считать минуты ... я честно хз когда я запускал это все ... потому точность реально низкая) можно нагенерить достаточно много скриншотов.
Как пример 228 файлов. Заняло это все где-то минут 30-40. Точно не скажу. Так что можете спокойно делить на два или умножать на 1.5-2.0. Особо не промахнетесь.
1666565670811.png

Слишком большого смысла у поста/темы нет. Так чисто вспомнить что делал в прошлом. Возможно когда-нибудь еще допилю / перепилю и получится годнота чтобы все модели мира грузить на сайт и получать их скриншоты по щелчку мыши. С разных ракурсов, с, ВОЗМОЖНО, возможностью их покрутить на сайтике или где там они будут. С возможностью скачать файлы со всем готовым к использованию. Возможно даже с настройками для нескольких плагинов.

Стоит заметить что это все весит не то чтобы много, но достаточно. С теми инструментами, что я использовал для всех действий, это все весило: ~519MB
Сам скрипт/приложение весит конечно по меньше. С учетом того что я его написал на NodeJS и пихал в бинарник (а там где бинарь была и нода внутри), сам файл весил всего ~32MB.
Да, вес большой, но были причины почему так. Вообще, если "инструменты для скриншотов" вынести на единый сервер, вес мог бы уменьшиться до ~32MB+.
А ну и тестил это все только на Windows.
На Linux может и не работать.

Ну, пост подошел к финалу. Вроде бы все. Весело было это писать.
Оффтоп
Оффтоп
Оффтоп
 
Последнее редактирование:
Сверху Снизу