Скрипт 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 27.03.2017
Сообщений: 431
Краснодар

Цитата -NiK-:

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

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

Вот я же говорил, что не разбираюсь в кодинге) Просто я покупаю для визов штук по 5 моделей каждый день и конечно пользуюсь коннектором, но у него есть один косяк, я как-то его оставил открытым и продолжил заниматься сценой, нажал интерактив и мне всплыло окошко короны о нехватке памяти (а я какую-то мелочевку рендерил) при том что у меня 64 гига, я удивленно открываю диспетчер и вижу как коннектор за каким то фигом сожрал 98% оперативы))) И после этого я еще несколько раз забывал его закрыть и была подобная фигня, хотя в самом коннекторе я не выполнял на тот момент никаких действий. 

Спасибо за подсказку как в коннекторе указать пути сразу для раздела!

Цитата -NiK-:
Я же показал на скриншоте как одним кликом открыть все сцены в папке

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

На сайте c 31.03.2008
Сообщений: 1112
Москва
Цитата vladimir.drobzhev90:
Да, когда я делаю поиск для целого раздела библиотеки он показывает потерянные текстуры в окне manage files, но в правом столбце, где обычно он показывает что нашлось в подпапках, там ничего нет, хотя отдельно для каждого файла все находится.

Вообще это тема конечно не про Connecter, да простит нас автор Collect Asset.

В общем окне manage files нужно делать Search и так он релинкает. Конечно он не будет в риалтайме искать в соседних папках. Это небыстрый процесс

На сайте c 06.06.2016
Сообщений: 320
Киев

xiruim, Спасибо вам за ваш титанический вклад своим творением в виде Collect Asset. Но очень хочется его улучшить и добавить в него одну очень значимую для многих функцию переименования имени текстуры (очень не хватает этой функии в Collect Asset). Можно кнопку для вызова добавить.  Есть же отдельные скрипты для этого, они прекрасно работают и переименовывают само имя текстуры или добавляют префикс и делают её копию в указанное вами место. Это очень удобно. xiruim, очень бы хотелось увидеть такой функционал в ближайших релизах Collect Asset 3 (например). Вот ссылочка на данный скрипт free.

Проверил на 3dsmax2020.1 работает корректно

Добавлю скринов с сегодняшнего теста:

1. Видно оригинальный путь текстур (там где их макс по дефолту подтянул, пока не переписываем путь это лишь тест, сработает скрипт или нет).

e59f0362fef2ea596dd0c8585a4df499.jpeg

2. Видим другую тестовую папку (Test_maps) для переименованных текстур, а именно в оке скрипта указал префикс Arper (обвёл зелёным) в первой строчке окна скрипта и указал уже свой путь куда я хочу чтоб сделались копии оригиналов + мой префикс Arper добавился к имени файла.

b4c1e76e381e1995b0017debec583eea.jpeg

Готово! Работает (тест на макс2020.1)

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

ART-R

Спасибо за то что помогаете улучшить мой скрипт.

Ваша ссылка на скрипт возможно поможет. Если он с открытым кодом, может оттуда и часть кода подсмотрю.

Найти бы время заняться этим теперь

На сайте c 06.06.2016
Сообщений: 320
Киев
xiruim, да он с открытым. Всё должно получится. Спасибо
На сайте c 05.07.2014
Сообщений: 1
Kharkiv
Супер!!!!!! Спасибо за такой скрипт! Максовский выдавал ошибку ..11.. под  конец сборке и писал ЭРРор(((А этот скрипт за 2 минутки все собрал в архив! Спасибо!!!!!
На сайте c 01.09.2011
Сообщений: 266
Украина, г. Харьков
Цитата ART-R:
хотелось увидеть такой функционал в ближайших релизах Collect Asset 3

А еще лучше внедрение такого скрипта который мог бы переименовывать текстуры и назначать им путь в зависимости от названия модели, материала и где лежит? Так как duberBitmapCollector, не совсем то, он этого делать не умеет.

Ну предположим, модель называется Kocherga а на ней материал наз. Metal и в дифузке и в бампе допустим лежит карта с названием  "абракадабра-1.jpg" и "абракадабра-1.jpg"

Задача скрипта переименовать их так :

Наз.модели_наз.материала_наз. слота. jpg

Пример :

1. Kocherga_metal_diffuse.jpg

2. Kocherga_metal_bump.jpg

На сайте c 01.09.2011
Сообщений: 266
Украина, г. Харьков
Значит перед тем как сохранить одну и ту же текстуру только с другим именем, нужно чтоб выскакивало окошко с вопросом нужно ли переименовывать остальные копии или оставить как есть тоесть первую переименованную *_diffuse.jpg и перейти к другому материалу.
На сайте c 29.08.2013
Сообщений: 7
Россия. Астрахань
Всем привет. столкнулся с такой проблемой что скрипт перестал запаковывать сцены в архив. выскакивает ошибка при попытке запуска архиватора 

На сайте c 10.07.2008
Сообщений: 1693
Украина, Киев
Цитата sky_line:
Всем привет. столкнулся с такой проблемой что скрипт перестал запаковывать сцены в архив. выскакивает ошибка при попытке запуска архиватора

А раньше работал? Может место на диске C закончилось?

На сайте c 29.08.2013
Сообщений: 7
Россия. Астрахань
работал прекрасно. на диске 23 гига свободного места. чистил папку Temp, но проблему не решило
На сайте c 20.07.2014
Сообщений: 4
Киев

Привет. У меняя такая проблема: запускаю скрипт, нажимаю Make Archive, выбираю путь, появляется сообщение  что архив создан, но в папке он не появляется. Пробовал разные сцены, и разные пути сохранения. Max 2020, collect asset v2.097. В чем может быть проблема?

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

Привет. У меняя такая проблема: запускаю скрипт, нажимаю Make Archive, выбираю путь, появляется сообщение  что архив создан, но в папке он не появляется. Пробовал разные сцены, и разные пути сохранения. Max 2020, collect asset v2.097. В чем может быть проблема?

Интересная проблема. А в логе пишет какие-то ошибки? Там внизу кнопочка log есть

Что уже несколько раз обращались люди что не может скрипт архив сделать. Я пока не могу понять в чем именно дело. Может в виндовс 10 и ее обновлениях, а может еще что-то.

Принцип работы этой функции:

- В папке Temp windows создается папка Collect Asset,

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

- запускается архиватор

- удаляется временная папка

Так вот я пока видел что он почему-то не может удалить временную папку. Если удалить вручную ее - скрипт начинает работать.

На сайте c 20.07.2014
Сообщений: 4
Киев
Цитата xiruim:
Цитата Vlad911:

Привет. У меняя такая проблема: запускаю скрипт, нажимаю Make Archive, выбираю путь, появляется сообщение  что архив создан, но в папке он не появляется. Пробовал разные сцены, и разные пути сохранения. Max 2020, collect asset v2.097. В чем может быть проблема?

Интересная проблема. А в логе пишет какие-то ошибки? Там внизу кнопочка log есть

Что уже несколько раз обращались люди что не может скрипт архив сделать. Я пока не могу понять в чем именно дело. Может в виндовс 10 и ее обновлениях, а может еще что-то.

Принцип работы этой функции:

- В папке Temp windows создается папка Collect Asset,

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

- запускается архиватор

- удаляется временная папка

Так вот я пока видел что он почему-то не может удалить временную папку. Если удалить вручную ее - скрипт начинает работать.

Я на двух компах переутановил винду и появилась эта проблема и там и там.

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

Vlad911

а вы скрипт установили? Скачайте со scriptspot инсталяцию скрипта и запустите в максе. Он должен создать свою папку с настройками и скопирует сам файл скрипта в нужное место.

На сайте c 20.07.2014
Сообщений: 4
Киев
Цитата xiruim:

Vlad911

а вы скрипт установили? Скачайте со scriptspot инсталяцию скрипта и запустите в максе. Он должен создать свою папку с настройками и скопирует сам файл скрипта в нужное место.

Конечно, скачал и установил. Попробовал поставил предыдущую версию, результат тот же. До этого на 18 максе работал нормально. А после переустановки винды и установки 20 макса уже не работает)

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

Vlad911

Возможно в 20м максе нужно позволить скриптам записывать файлы. Я лично на 20м максе не тестировал, но у людей он работает. Там ужесточили безопасность по скриптам. Покопайтесь в настройках макса.

На сайте c 06.06.2016
Сообщений: 320
Киев
Vlad911, на 2020, 2020.1, 2020.2 полёт отличный, без лагов и вылетов со дня выхода 2020 Макса стоит.
На сайте c 10.07.2008
Сообщений: 1693
Украина, Киев
Выложил новую версию 2.098, где добавлена опция исключения xref файлов. Написал ее довольно давно, хотел еще несколько функций дополнить, но в итоге выкладываю как есть.
На сайте c 12.11.2007
Сообщений: 254
Владивосток
Благодарю! Надеюсь автостол купит у тебя твой мегаскрипт за кучу денег и наконец прикрутит к максу вместо своего хромого недоделанного штатного сборщика текстур. Так же призываю всех пользующихся пользователей, воспользуйтесь функцией доната, ссылка на первой странице, считаю такие инициативы нужно поддерживать, 100-1000 руб. за столь полезный скрипт не обременит настоящих профи, таких как мы ;-)
Читают эту тему: