Скрипт Collect Asset

Автор
Сообщение
На сайте c 10.07.2008
Сообщений: 1693
Украина, Киев

Решил создать тему по своему скрипту Collect Asset. Качать тут

Пишите в тему, если найдете ошибки, или знаете, как его улучшить, или можете что-то подсказать. Или если что-то не понятно.

Скрипт предназначен для сбора всех текстур и других используемых в сцене файлов в одну папку. Имеется проверка на совпадение имен файлов.

Скрипт видит специфические карты (например VRayBMPFilter, Camera_Map_Per_Pixel). Так же скрипт обрабатывает тектуры в XRef файлах.

Описание работы:

Вверху статусная строка. Показывает сколько карт с полными путями (Ok), сколько фалов найдено по другому пути (Found), и сколько файлов не найдено (Missing).

Path to seek textures - позволяет выбрать папку для дополнительного поиска текстур

Кнопка Seek - совершает поиск потерянных текстур в папке для поиска. Подпапки не учитываются.

Resolve path - прописывает всем найденным картам полный путь, по которому их нашел 3ds max.

Del Missing Paths - удаляет потерянные текстуры.

Selected Directory - Путь для сбора всех текстур.

Collect Files - собтвенно кнопка для начала сбора. Если стоит галка "and relink..." - то в сцене пропишутся пути к новому месту (не забудте сохранить сцену после этой операции). Если поставить галку "from selected objects", то текстуры соберуться только с выделенных обьектов. Собираются только используемые в сцене текстуры. Если в мат.эдиторе есть не назначенные материалы, текстуры с них не будут обработаны.

При копировании производится проверка на одинаковые имена файлов. Если в папке сбора уже существует файл и размер у него отличается от копируемого, то выдается окно сравнения текстур и выбора действия, что с ними делать. Можно заменить, использовать существующую или переименовать.

Set Path - Назначет всем текстурам путь к указанной директории. Это полезно, когда перенесли сцену с текстурами в другую папку или другой компьютер, и нужно переназначить пути к текстурам, что-бы компьютер их все время не искал (при том что компьютер может найти не правильную текстуру в другом месте).

Rename Russian - Заменяет русские символы английскими в именах файлов. Новые файлы складывает в указанную директорию и прописывает к ним пути в сцене.

Make Archive - Создает архив сцены с текстурами в формате 7zip или zip. Текстуры помещает в папку maps.

Скрипт с открытым кодом. Если кому интересно - может покопаться в нем. Или изменить под свои нужды.

Для установки в 3ds max выберите меню Scripting -> Run Script... и выберите скачанный файл. После этого зайдите в меню Customize -> Customize user interface -> Toolbars. Category: # Scripts. Перетащите скрипт на любую панель в удобное для вас место.

Для обновления проведите установку новой версии и она заменит старую.

Версия v2.099c
- Новый инсталлер, теперь можно не только установить / обновить, но и удалить скрипт
- Добавлены новые классы для ассетов
- Можно выбрать версию макс файла при создании архива
- В настройках можно выбрать тип архива по умолчанию
- При запуске не сканирует ассеты сразу. Нужно нажать кнопку Refresh. Можно изменить в настройках.
- При создании архива для выделенных объектов скрипт в новом файле сбрасывает настройки рендера, чистит matedit, удаляет бэкграунд в окружении.
- устранены некоторые баги

Версия v2.098

- Добавил опцию исключения Xref файлов при коллекте ассетов

Версия v2.092

- Добавлено еще несколько классов (Corona LUT, Forest Pack...)

- Добавлена кнопка "Del RE Paths" которая очищает пути в рендер элементах.

Версия v2.09

- Поддержка Final Render

- Исправлены проблемы с Redshift

- Добавлен класс BitmapHDR

- Добавлена кнопка "Strip paths"

- Исправлены некоторые ошибки

Версия v2.08

- Добавлена поддержка FStorm и Redshift

Версия v2.07

- Исправил ошибку в обработке источников света. Теперь скрипт их обрабатывает намного быстрее.

- Исправил еще некоторые ошибки

Версия v2.05

- Добавлена функция поиска текстур в указанной папке

Версия v2.04

- поддержка Octane Render

- собирает сиквенцию из ifl фалов

- собирает point cache

- теперь проверяет файлы с одинаковыми именами не по размеру, а по чексуму

- быстрее проводит повторное сканирование файлов после выполнения операций

- можно автоматически повторять операции сравнения одинаковых файлов

- теперь есть лог файл и окно логов операций

- изменилось окно выбора папки

- исправлены ошибки

Создал версию 2. Полностью переписал скрипт и изменил метод работы с файлами. Ушел от максовского Aseet Tracking. Теперь скрипт работает в некоторых моментах быстрее, но главное должен работать надежнее. Пока что интерфейс и функционал остался прежним.

- Видит карты VRayBMPFilter, Camera_Map_Per_Pixel, CoronaBitmap

- Обрабатывает Xref файлы и ссылки внутри них

- Добавлена функция переименования русских символов

p.s. Пожалуйста, отписывайтесь об ошибках. Не молчите, если что-то не работает, или работает не так как нужно. Это важно. Я не всегда могу все протестировать в одиночку.

Вы можете отблагодарить меня за скрипт материально, если желаете.

На сайте c 01.12.2009
Сообщений: 123
Цитата xiruim:
Цитата monotumba:

Спасибо автору за скрипт. Обнаружился момент такой, что при использовании анимированных текстур при использовании скрипта меняется только путь к контейнеру, а внутри него пути к конкретным текстурам остаются старые.

Это как бы не проблема при локальном просчете, но при дистрибьюте на нодах ошибка вылетает.

Хотелось бы, чтобы скрипт умел в самом материале переназначать путь к секвенции.

да, когда делал эту функцию, я помнится решил оставить текстуры в контейнере без путей, так как проблем тогда не обнаружил. но скрипт можно заставить прописывать абсолютные пути. Я должен был оставить соответсвующую строку закомментированной в скрипте. могу изменить и выслать вам версию для пробы

Да, если пришлете оттестирую и отпишусь.

На сайте c 27.03.2017
Сообщений: 431
Краснодар

Добрый день! Вернусь к своей просьбе и выражу ее картинкой

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

Очень надеюсь, что у вас найдется время!

На сайте c 10.07.2008
Сообщений: 1693
Украина, Киев

Обновил скрипт до версии 2.097

Добавил поддержку V-ray volume grid файлов. Добавил поиск по подпапкам. Сделал окошко настройки скрипта, куда вынес настройку сохранения путей в ifl файлах и настройку вида окна выбора папок.

На сайте c 10.07.2008
Сообщений: 1701
Екатеринбург
Цитата xiruim:
Обновил скрипт

а есть возможность сделать выбор сохранения версии макса при создании архива?

На сайте c 25.11.2008
Сообщений: 163
Москва
Вот это было бы здорово.
Цитата dead_lyric:
Цитата xiruim:
Обновил скрипт

а есть возможность сделать выбор сохранения версии макса при создании архива?

На сайте c 10.07.2008
Сообщений: 1693
Украина, Киев
Цитата dead_lyric:
а есть возможность сделать выбор сохранения версии макса при создании архива?

Такое можно реализовать, хотя придется подумать как именно, так как вызвать стандартное окно через скрипт нельзя. Займусь на досуге.
На сайте c 29.09.2015
Сообщений: 5
Москва
Цитата vladimir.drobzhev90:

Добрый день! Вернусь к своей просьбе и выражу ее картинкой

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

Очень надеюсь, что у вас найдется время!

Поддерживаю.

И у меня такой вопрос: когда я выбираю путь к папке (Path to search...), то невозможно выбрать именно нужную корневую папку, если в ней есть подпапки. Кнопка Open не выбирает, а открывает папку дальше, пока не дойдет до конечной. Мне приходится копировать путь к нужной мне папке и вставлять в поле Path to search...

Только так. У меня одной такое происходит?)) и в чем может быть проблема?А за скрипт большое спасибо. Очень удобно и полезно! 

На сайте c 10.07.2008
Сообщений: 1693
Украина, Киев
Цитата Ellie van Vierhort:
И у меня такой вопрос: когда я выбираю путь к папке (Path to search...), то невозможно выбрать именно нужную корневую папку, если в ней есть подпапки. Кнопка Open не выбирает, а открывает папку дальше, пока не дойдет до конечной. Мне приходится копировать путь к нужной мне папке и вставлять в поле Path to search...

В последней версии 2.097 я предусмотрел смену окна выбора папок. Нажмите внизу кнопочку settings и выберите там вид окна standart
На сайте c 29.09.2015
Сообщений: 5
Москва
Цитата xiruim:
Цитата Ellie van Vierhort:
И у меня такой вопрос: когда я выбираю путь к папке (Path to search...), то невозможно выбрать именно нужную корневую папку, если в ней есть подпапки. Кнопка Open не выбирает, а открывает папку дальше, пока не дойдет до конечной. Мне приходится копировать путь к нужной мне папке и вставлять в поле Path to search...

В последней версии 2.097 я предусмотрел смену окна выбора папок. Нажмите внизу кнопочку settings и выберите там вид окна standart

Ясно, спасибо. У меня эта версия. Завтра попробую.

На сайте c 27.03.2017
Сообщений: 431
Краснодар
Идея пришла. Можно ли сделать так, чтобы модель можно было не в сцену мерджить, а в окно скрипта? Ну или как то чтобы через скрипт добавлять модели в сцену? В таком случае можно было бы включить галочку "автопоиск текстур", который бы осуществлялся автоматом в папке и подпапках, откуда был перетянут файл модели. Релинк бы нервно покурил в сторонке)) Мне кажется это бы много чего упростило)
На сайте c 30.11.2011
Сообщений: 316
Казахстан
Цитата vladimir.drobzhev90:
Идея пришла. Можно ли сделать так, чтобы модель можно было не в сцену мерджить, а в окно скрипта? Ну или как то чтобы через скрипт добавлять модели в сцену? В таком случае можно было бы включить галочку "автопоиск текстур", который бы осуществлялся автоматом в папке и подпапках, откуда был перетянут файл модели. Релинк бы нервно покурил в сторонке)) Мне кажется это бы много чего упростило)

Project Manager https://3d-kstudio.com/product/project-manager/  

На сайте c 10.07.2008
Сообщений: 1693
Украина, Киев
Цитата vladimir.drobzhev90:
Идея пришла. Можно ли сделать так, чтобы модель можно было не в сцену мерджить, а в окно скрипта? Ну или как то чтобы через скрипт добавлять модели в сцену? В таком случае можно было бы включить галочку "автопоиск текстур", который бы осуществлялся автоматом в папке и подпапках, откуда был перетянут файл модели. Релинк бы нервно покурил в сторонке)) Мне кажется это бы много чего упростило)

В общем то можно что-то такое организовать. Только это наверно идея для отдельного Merge скрипта. Который при мерже модели будет у нее считвать используемые текстуры и искать их по пути откуда мержится модель
На сайте c 31.03.2008
Сообщений: 1112
Москва

Релинк предполагает, что текстуры будут находиться по указанному пути.

Почему бы не сделать релинк 1 раз в файле который мержится, вместо бесконечного релинка в каждой новой сцене куда мержим?

Бесплатный Connecter позволяет это сделать со всей библиотекой

На сайте c 27.03.2017
Сообщений: 431
Краснодар
Цитата -NiK-:

Релинк предполагает, что текстуры будут находиться по указанному пути.

Почему бы не сделать релинк 1 раз в файле который мержится, вместо бесконечного релинка в каждой новой сцене куда мержим?

Бесплатный Connecter позволяет это сделать со всей библиотекой

то есть коннектор может сделать релинк внутри всех файлов и пересохранить их? 

Это круто! Времени уйдет уйма, но было бы классно

На сайте c 31.03.2008
Сообщений: 1112
Москва
Цитата vladimir.drobzhev90:
то есть коннектор может сделать релинк внутри всех файлов и пересохранить их?

Формат max позволяет задать пути ассетов даже не открывая его. Manage External Files в коннекторе делает именно это. 

На сайте c 27.03.2017
Сообщений: 431
Краснодар

Цитата -NiK-:
Цитата vladimir.drobzhev90:
то есть коннектор может сделать релинк внутри всех файлов и пересохранить их?

Формат max позволяет задать пути ассетов даже не открывая его. Manage External Files в коннекторе делает именно это. 

Буду пробовать)

Цитата -NiK-:

Релинк предполагает, что текстуры будут находиться по указанному пути.

Почему бы не сделать релинк 1 раз в файле который мержится, вместо бесконечного релинка в каждой новой сцене куда мержим?

Бесплатный Connecter позволяет это сделать со всей библиотекой

Большое спасибо за совет с коннектором!! Крутая штуковина) только я пока не понял как всю библиотеку так по-быстрому обработать, пока что тыкаю в коннекторе на файл и жму "set path" вручную. К тому же был случай сижу рендерю, а у меня всплывает окошко короны о нехватке памяти, думаю это как, ведь у меня 64 гига, открываю диспетчер, а там коннектор 89% использует))) В общем его нельзя держать открытым долгое время. поэтому если знаете как применить автопоиск путей ко всей библиотеке буду очень благодарен)

На сайте c 31.03.2008
Сообщений: 1112
Москва
Цитата vladimir.drobzhev90:
как применить автопоиск путей ко всей библиотеке буду очень благодарен

Не рекомендую открывать окно Manage External Files для всей библиотеки, пожалейте свои нервы и компутер. Коннектер может конкретно задуматься над релинком.

Но вот по своим категориям несколько раз пройтись и всё.

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

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

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

На сайте c 27.03.2017
Сообщений: 431
Краснодар

Цитата -NiK-:
Если честно я так и не привык к коннектеру как к проге из которой можно мержить модели.

Я вот тоже, вижу, что инструмент типо крутой, но у меня все и так хорошо организованно. У меня тоже все по папкам и в каждой папке есть превью с именем "prev", что позволяет в винде делать поиск по имени, это очень удобно. В связи с чем мне пришла в голову такая мысль а можно ли сделать скрипт, чтобы прямо в файловом менеджере винды на файл макса клацать правой кнопкой мыши и открывать окошко manage files, проводить те же манипуляции с релинком в подпапках и стрип пасс, и потом уже закидывать в сцену, но это уже получается целое отдельное приложение.

Поэтому другая идея. Коннектор добавляет скрипт со своим меню при драгндропе в сцену, так вот можно ли написать отдельный скрипт, который бы добавил пункт manage files при драгндропе из проводника винды? И далее открывалось бы окошко как в коннекторе, где уже был произведен автопоиск в подпапках, либо можно было бы указать папку для поиска. Главное, чтобы скрипт так же прописывал пути в самом файле, как коннектор, чтобы в следующий раз файл открывался уже с найденными текстурами. 

Я не эксперт в скриптах и ни разу не писал, но может идея хорошая?)

Цитата vladimir.drobzhev90:
можно ли написать отдельный скрипт, который бы добавил пункт manage files при драгндропе из проводника винды?

Кстати, в коннекторе так делать можно выбрав при драгндропе about/config, но это нужно только из коннектора тянуть. Было бы круто приспособить collect asset работать таким образом, тогда можно было бы для каждого нового файла библиотеки искать пути один раз, а при необходимости делать поиск в указанной директории и collect в указанную папку. Было бы нереально круто!)

На сайте c 31.03.2008
Сообщений: 1112
Москва

Вы переусложняете. Нужно 1 раз сделать релинк коннектером для всей библиотеки и больше его не открывать до следующего её пополнения. Я же показал на скриншоте как одним кликом открыть все сцены в папке.

Вместо нескольких кликов мышью вы предлагаете неделю кодинга :)

На сайте c 10.07.2008
Сообщений: 1693
Украина, Киев
можно попробовать сделать скрипт, чтоб он при мердже прописывал временный путь максу для поиска текстур к модели. Или отдельный скрипт мерджа, чтоб через него мержить модели в сцену. Он будет у замерженых объектов прописывать пути к текстурам, искать их возле модели.
Читают эту тему: taoo2014