Скрипт 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 10.07.2008
Сообщений: 1693
Украина, Киев
Цитата wosser2:
а разве не в том и был смысл чтобы все текстуры (и прокси?) разбросанные по папкам собрать в одну? И что там такое по времени? не полчаса же собирает?

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

На сайте c 15.02.2015
Сообщений: 10

runtime error: $directory not recognized: $R3PG713.cube

Добрый день. Неожиданно появилась такая ошибка. CUBE это LUT короны. Я корону переустановила на всякий случай, но проблема не решилась. Может код ошибки как-то иначе расшифровывается.

Спасибо за ответsmiley-wink.gif

На сайте c 10.07.2008
Сообщений: 1693
Украина, Киев
Цитата ashvch:
runtime error: $directory not recognized: $R3PG713.cube

Думаю ошибка из-за символа "$" в названии файла. Я исправлю это в новой версии

На сайте c 15.02.2015
Сообщений: 10
Цитата xiruim:
Цитата ashvch:
runtime error: $directory not recognized: $R3PG713.cube

Думаю ошибка в символе "$" в названии файла. Я исправлю это в новой версии

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

На сайте c 22.12.2009
Сообщений: 121
Город, близ которого греки впервые разгромили персов
Цитата xiruim:
Пишите в тему, если найдете ошибки

Привет всем, на 2020 макс collect asset версии v2.099b не поставилась, просто не появилась в списке Toolbars, а вот предыдущая поставилась без проблем))

На сайте c 10.07.2008
Сообщений: 1693
Украина, Киев
Цитата TAHK_74:
Привет всем, на 2020 макс collect asset версии v2.099b не поставилась, просто не появилась в списке Toolbars, а вот предыдущая поставилась без проблем))

Спасибо что отписываетесь.

В последней версии мне пришлось поменять инсталятор, чтобы скопировать иконки в папки с доступом администратора. На моих компьютерах он отработал нормально и на windows 7 и на windows 10.

Так же поменял категорию. Теперь скрипт нужно искать в категории Xiruim. Решил что так более правильно делать, чем размещать его в общей категории. Так что когда будете искать скрипт чтоб вытащить его на панель - ищите его в категории Xiruim.

На сайте c 04.05.2011
Сообщений: 95
Баку-Сумгаит
Цитата xiruim:
Цитата Niiik27:
но в последних версиях почему то размножает текстуры - сохраняет по отдельности все карты с добавлением номера, если там одна и таже текстура.

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

--- upd

Работаю сейчас над новым релизом скрипта и это дело что-то затягивается. Выложу сюда бета версию.

https://www.dropbox.com/s/5jvqrb44u1mr28d/collect_asset_v2.099b.mzp?dl=0  

Что сделано:

- новый установщик. Скрипт теперь ставится в категорию xiruim. Старый скрипт удаляется. Нужно будет заново его вытащить на панель.- обновленный дизайн (спасибо пользователям на scriptspot)

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

- убрал создание лишних файлов при переименовании русских символов (спасибо Niiik27 за указание на ошибку)

- Добавил класс Redshift Sprite (спасибо Qwa7)

- Добавил проверки для исключения ошибок в функции сравнения файлов (спасибо astartagrey)

Над чем сейчас работаю:

- Работаю над секцией архивирования. Хочу сделать новый алгоритм без копирования всех файлов в отдельную папку, что сократит время создания архива.

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

Протестируйте пожалуйста новую версию. Спасибо что пишите об ошибках и предложениях.

Мир всем! Обращаюсь к автору сего чудо инструмента ...было бы великолепно если б как бы в дополнение к resolve path или как отдельный алгоритм  была возможность конвертировать абсолютные пути на сетевые и обратно (сетевые на абсолютные)  !!! Спасибо заранее!

На сайте c 26.06.2012
Сообщений: 612
Белгород
Еще есть такой нюанс. Допустим, есть несколько сцен в которых присутствует текстура dirt, а в папке куда собираешь текстуры уже есть другая текстура с таким же именем. И тут либо в каждой сцене эту текстуру переименовывать вручную, либо позволить скрипту переименовать эту текстуру для каждой сцены, тем самым получив несколько копий одного файла под разными именами.
На сайте c 31.08.2011
Сообщений: 269
г.Астана
Отличный скрипт. То что искал!
На сайте c 04.05.2011
Сообщений: 95
Баку-Сумгаит
Цитата IK86:
Еще есть такой нюанс. Допустим, есть несколько сцен в которых присутствует текстура dirt, а в папке куда собираешь текстуры уже есть другая текстура с таким же именем. И тут либо в каждой сцене эту текстуру переименовывать вручную, либо позволить скрипту переименовать эту текстуру для каждой сцены, тем самым получив несколько копий одного файла под разными именами.

...странно я вообще не понимаю зачем собирать текстуры в одну папку (тем самым рождая этот "ньюанс")...разве ли что кроме случаев переноса сцены на другую рабочую станцию....да и то для этого используется опция архивации.... для закрепления путей ведь проще сделать резолв путей ...и пускай лежат текстуры там где они лежали с начала времен....

На сайте c 23.07.2016
Сообщений: 807
architect14  для заливки моделей на продажу.
На сайте c 04.05.2011
Сообщений: 95
Баку-Сумгаит
Цитата Makasharip:
architect14  для заливки моделей на продажу.

...ну и ... чем же процесс архивации не горазд?

На сайте c 06.07.2018
Сообщений: 7
Москва
Скрипт не может заколлектить текстуры, которые находятся в OSL-картах, используемые в материале, примененном к геометрии в сцене.
На сайте c 10.07.2008
Сообщений: 1693
Украина, Киев
Цитата DoubleDucky:
Скрипт не может заколлектить текстуры, которые находятся в OSL-картах, используемые в материале, примененном к геометрии в сцене.

да, с такими картами еще не работал. Посмотрю, разберусь и добавлю. Спасибо за указание
На сайте c 24.06.2014
Сообщений: 4526
Ни разу проблем с установкой и работой скрипта ни на одной из версий 3Ds Max-а не было.
Но чет вот сейчас он устанавливается с какой то ошибкой. И вроде бы как все работает.
И вроде бы как только картинки в шапке-скрипта не хватает. Не знаю с чем это связано.
Пробовал включать-отключать UAC, запускать от Имени Админа Макс. Отключал Win Defender.
Менял директорию откуда кидаю скрипт. Удалять ошметки от старого скрипта. Не помогало.
Винда Английская, нигде никакой кириллицы в путях нету отродясь. Злых антивирусов тоже.
Винда Win 10 Pro X64 (MSDN чистая) с последними апдейтами, 1909 версии.
Гугл не знает что это за файл такой - TempinstallCA.vbs smiley-sad.gif

P.S. Ах, да. Еще иконка раньше была на кнопке когда скрипт в тулбар кидал, теперь там пустота )

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

Earanak

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

Можете пользоваться или предыдущей версией скрипта, или открыть collect_asset_v2.099b.mzp файл как zip архив и скопировать все файлы вручную. Вот нужные пути:

папки Icons и IconsDark в c:\Program Files\Autodesk\3ds Max 2017\UI_ln\

папку Collect_asset в c:\Users\Anton\AppData\Local\Autodesk\3dsMax\2016 - 64bit\ENU\scripts\

Наверно придется какой-то другой инсталятор делать. Пока не знаю какой.

На сайте c 27.04.2010
Сообщений: 5
Я понимаю, что дело не в скрипте, но может быть кто-нибудь подскажет, в чем может быть проблема. Окошко справа не появляется.

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

terka

Не пойму какое окошко не появляется? Не появляется новая панелька, которую вы создаете? Возможно из-за галочки Hide

На сайте c 27.04.2010
Сообщений: 5
Цитата xiruim:

terka

Не пойму какое окошко не появляется? Не появляется новая панелька, которую вы создаете? Возможно из-за галочки Hide

Справа должно появится окно со стрелками "перенести скрипт в панель". А у меня- тишина. Не перетаскивается. И оно не появляется, как при изменении категорий слева, так и при изменении позиций из списка справа. Галочка Hide, тоже "не а-ле".

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

terka

Похоже на глюк макса. Попробуйте сбросить интерфейс, загрузить другую UI схему.

Читают эту тему: marina1