Скрипт Collect Asset

Автор
Сообщение
Возраст: 40
Пол: М
На сайте c: 10.07.2008
Сообщения: 1591
Откуда: Украина, Луганск

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

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

ed7cad9fe80a53f466b82beff8c986fe.jpg

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

Скрипт видит специфические карты (например 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.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. Пожалуйста, отписывайтесь об ошибках. Не молчите, если что-то не работает, или работает не так как нужно. Это важно. Я не всегда могу все протестировать в одиночку.

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

Возраст: 40
Пол: М
На сайте c: 10.07.2008
Сообщения: 1591
Откуда: Украина, Луганск

astartagrey

Спасибо что нашли ошибку. Похоже он не находит путь к файлу в этом блоке программы. Буду разбираться.

Возраст:
Пол: М
На сайте c: 20.09.2012
Сообщения: 4
Откуда:
Скрипт супер! но в последних версиях почему то размножает текстуры - сохраняет по отдельности все карты с добавлением номера, если там одна и таже текстура. И было бы неплохо, чтоб по умолчанию все собиралось в maps, а внутренняя структура maps не менялась. Т.Е. если там есть папки для мультитекстур, то чтоб они так и оставались папками после коллекта. И при переименовании кириллических текстур - было бы хорошо сделать автоудаление кириллической (ну и попутно чтоб сами маты тоже латинизировались).
Возраст: 40
Пол: М
На сайте c: 10.07.2008
Сообщения: 1591
Откуда: Украина, Луганск
Цитата Niiik27:
но в последних версиях почему то размножает текстуры - сохраняет по отдельности все карты с добавлением номера, если там одна и таже текстура.

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

--- upd

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

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

Что сделано:

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

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

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

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

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

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

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

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

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

Возраст: 33
Пол: М
На сайте c: 26.11.2008
Сообщения: 24
Откуда: Екатеринбург
Скрипт супер, спасибо большое, но очень нужна функция выбора версии при создании архива, а то работаю в 2020, и сейчас нужно около 300 моделей сохранить по отдельности, но в 2017 версии, приходится в ручную потом открывать каждый архив и пересохранять, сделаете очень большое дело если избавите от этого геморроя :)
Возраст:
Пол: М
На сайте c: 08.02.2018
Сообщения: 425
Откуда: Оттуда
Nightt:
флейм
Действует до:
15.07.2020 00:00:00
Цитата xiruim:
Хочу сделать новый алгоритм без копирования всех файлов в отдельную папку, что сократит время создания архива.

а разве не в том и был смысл чтобы все текстуры (и прокси?) разбросанные по папкам собрать в одну? И что там такое по времени? не полчаса же собирает? 

Возраст: 40
Пол: М
На сайте c: 10.07.2008
Сообщения: 1591
Откуда: Украина, Луганск
Цитата wosser2:
а разве не в том и был смысл чтобы все текстуры (и прокси?) разбросанные по папкам собрать в одну? И что там такое по времени? не полчаса же собирает?

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

Возраст:
Пол: Ж
На сайте c: 15.02.2015
Сообщения: 8
Откуда:

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

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

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

Возраст: 40
Пол: М
На сайте c: 10.07.2008
Сообщения: 1591
Откуда: Украина, Луганск
Цитата ashvch:
runtime error: $directory not recognized: $R3PG713.cube

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

Возраст:
Пол: Ж
На сайте c: 15.02.2015
Сообщения: 8
Откуда:
Цитата xiruim:
Цитата ashvch:
runtime error: $directory not recognized: $R3PG713.cube

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

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

Возраст:
Пол: М
На сайте c: 22.12.2009
Сообщения: 76
Откуда:
Цитата xiruim:
Пишите в тему, если найдете ошибки

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

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

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

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

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

Возраст: 37
Пол: М
На сайте c: 04.05.2011
Сообщения: 91
Откуда: Баку-Сумгаит
Цитата 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 или как отдельный алгоритм  была возможность конвертировать абсолютные пути на сетевые и обратно (сетевые на абсолютные)  !!! Спасибо заранее!

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

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

Возраст:
Пол: М
На сайте c: 23.07.2016
Сообщения: 398
Откуда: Сочи
architect14  для заливки моделей на продажу.
Возраст: 37
Пол: М
На сайте c: 04.05.2011
Сообщения: 91
Откуда: Баку-Сумгаит
Цитата Makasharip:
architect14  для заливки моделей на продажу.

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

Возраст: 25
Пол: М
На сайте c: 06.07.2018
Сообщения: 1
Откуда: Москва
Скрипт не может заколлектить текстуры, которые находятся в OSL-картах, используемые в материале, примененном к геометрии в сцене.
Возраст: 40
Пол: М
На сайте c: 10.07.2008
Сообщения: 1591
Откуда: Украина, Луганск
Цитата DoubleDucky:
Скрипт не может заколлектить текстуры, которые находятся в OSL-картах, используемые в материале, примененном к геометрии в сцене.

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

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

Читают эту тему: igoryoks , irinawurst