Tertium Organum CollectoREX: руководство пользователя

Установка

Распакуйте архив. Файл с раширением mzp - это дистрибутив утилиты. В 3dsmax выберите пункт меню MAXScript->Run script и укажите дистрибутив утилиты. 3dsmax скопирует все файлы утилиты в нужные папки. Выберите пункт меню Custimize->Custoimize User Interface..., появится окно Custoimize User Interface. Перейдите на закладку Toolbars, в выпадающем списке Category выберите категорию Tertium Organum. В списке ниже появится строка Tertium Organum CollectoREX (или Tertium Organum CollectoREX DEMO, если вы установили демо-версию). Перетащите ее на панель инструментов. Для того, чтобы стала видна иконка, может потребоваться перезагрузка 3dsmax. Установка завершена.

Быстрый старт

Основное назначение утилиты – сбор файлов, связанных с проектом, в некоторые определенные папки – для упорядочивания работы и – потенциально – для переноса сцен на другие компьютеры. Для запуска операции сбора:
1. Загрузите сцену, не содержащую XRef-ссылок (работа со сценой, имеющей XRef-ссылки, несколько сложнее и описывается ниже)
2. Запустите утилиту (кнопка на панели управления имеет два состояния, чтобы закрыть утилиту, надо щелкнуть по кнопке еще раз)
3. Для того, чтобы видеть выводимую утилитой информацию в реальном времени (она также сохраняется в файл лога), откройте MAXScript Listener (нажмите F11 или щелкните по пункту меню MAXScript -> MAXScript Listener)
4. Выберите папки сбора, опции категории Affect станут активны



5. Нажмите кнопку Collect Resources.



6. Утилита соберет все ресурсы проекта, сохранит сцену и обновит все ссылки на них в объектах сцены. В папке со сценой добавится два файла – с расширением backup (резервное сохранение файла сцены) и log (файл лога).

Термины

XRef-дерево – текущая сцена плюс все сцены, так или иначе связанные с ней посредством XRef (XRef Scene, XRef Object, XRef Material, XRef Atmospheric). XRef-ссылки могут быть зациклены.
IES-файл – упрощенное название файла фотометрических данных (photometric web), используемых в фотометрических источниках света.
Ссылки (на файлы) – свойства сущностей сцены (материалов, геометрии, модификаторов и пр.) типа «FileName/String», «Bitmap», которые ссылаются на какие-либо файлы, входные относительно сцены – текстуры, шейдеры, IES-файлы и пр. Исключение в данном случае составляют XRef-ссылки. Если сцену представить графом «max-файл» - «файлы ресурсов», то ссылки на файлы будут его ребрами.
Папки сбора – три указываемые пользователем папки для текущего проекта, куда будут собраны соответственно: файлы изображений и IES-файлы, файлы изображений HDR (из-за своих больших размеров они вынесены в отдельную категорию) и Vray mesh – файлы.
Дерево ссылки в сцене – некоторое множество объектов, односторонне соединенных друг с другом ссылками «целое-часть», по которому можно найти ссылку на файл в сцене. Например, ссылка-свойство одной из подтекстур одной из текстур одного из материалов мультиматериала, который применен к одному из объектов, такое: объект -> мультиматериал -> материал -> текстура -> подтекстура -> имя свойства.
Реальный путь файла – путь реально существующего файла, в противовес сохраненному в сцене пути. Когда 3dsmax не находит файл по указанному в ссылке сцены пути, он ищет этот файл в папке текущей сцены, всех ее подпапках и в системных путях и путях, заданных пользователем. Поэтому путь реально загруженного файла может не совпадать с путем, сохраненным в сцене. Когда в сцену подгружаются объекты из других сцен, картина становится еще более запутанной.
Проект – в контексте утилиты это либо сцена с принадлежащим ей XRef-деревом. Если сцена не использует XRef-ссылки, то проектом считается сама сцена.

Технические условия и рекомендации по использованию

Tertium Organum CollectoREX создан для работы со сценами, предназначенными для визуализации с помощью стандартного Scanline Renderer или VRay. С материалами Fry Renderer утилита не работает, у материалов Maxwell Renderer может извлекать информацию только о текущем слое (layer) и текущей оболочке (coating).
Утилита протестирована на совместимость с 3dsmax версий: 9sp1-sp2, 2008, 2009. Работа с версией 9 без sp1 и более ранними версиями невозможна.
Сетевые пути поддерживаются, главное – чтобы сетевые папки были открыты на запись.
Желательно перед использованием утилиты перезагружать 3dsmax. Утилита оперирует большими массивами данных, поэтому возможны неполадки в работе сборщика мусора MAXScript. В некоторых случаях нестабильность и накапливающиеся сбои сборщика мусора MAXScript приводит к критическому сбою 3dsmax.
Также рекомендуется увеличить размер Initial Heap Allocation в закладке MAXScript окна Preference Settings (пункт меню Customize->Preferences…) хотя бы до 100Мб. Это позволит утилите работать стабильней.

Почему выбор за Tertium Organum CollectoREX

Функции утилиты

1. Collect resources – сбор всех ресурсов (а именно: изображений, изображений HDR, Vray mesh’ей, IES-файлов, файлов шейдеров), на которые ссылается текущая сцена или все XRef-дерево, в указанные папки и модификация в этих сценах ссылок на эти файлы
2. Unused – поиск в указанных папках файлов, на которые нет ни одной ссылки в текущей сцене или во всем XRef-дереве. Найденные файлы можно удалить или перенести в «локальную корзину» - папку «$trash$», создающуюся той в папке, где найдены неиспользуемые файлы
3. Relink to resources roots – попытка переписать все ссылки сцены или всего XRef-дерева так, чтобы они ссылались на файлы с теми же именами внутри заданных папок сбора. Если какого-то файла не найдено в указанных папках сбора, ссылка на него остается нетронутой. Эта функция нужна при «переезде» сцены или ее папок сбора на новое место
4. Resolve links to existing – выяснение реального (а не сохраненного в ссылках) местоположения файлов, на которые ссылается сцена или все XRef-дерево, и изменение ссылок, чтобы они ссылались на реальные файлы
5. Missing files Identity – выдача информации о том, в каких объектах сцены или Xref-дерева находятся ссылки на несуществующие файлы (Missing files), с выводом полного дерева ссылки
6. Convert to JPEG/TGA – конвертация файлов с расширениями ".tif", ".tiff", ".psd", ".png", ".tga" и ".bmp" в файлы jpeg или tga с RLE-компрессией (если у файла присутствует альфа-канал и пользователь хочет сохранить его)

Интерфейс

Интерфейс состоит из трех свитков.

 

Свиток «TO CollectoREX»

Files with same names
Действия с файлами, при копировании которых в папки сбора выясняется, что файл с таким именем уже присутствует
Ask even if bmps are equal – выводить диалог сравнения файлов с вариантами действий «Заменить», «Использовать имеющийся» и «Переименовать», даже если изображения полностью идентичны.
Non-img full compare (slow!) – сравнивать файлы, не являющиеся изображениями, побайтно, если контрольные суммы совпадают. Не рекомендуется использовать, если копируются большие файлы. Если помимо изображений собираются только IES-файлы, эта опция может быть использована.
Ask even if binary are equal – выводить диалог сравнения файлов (не изображений), даже если они идентичны

Security
Безопасность данных
Make back-ups – создавать резервное сохранение перед каждой операцией утилиты, изменяющей файл сцены
Incremental back-ups – при наличии файла резервного сохранения присваивать новому имя, состоящее из имени сцены, порядкового номера, и двойного расширения «max.backup»: myscene.max.backup, myscene1.max.backup, myscene2.max.backup и т.д. Если эта опция не выбрана, файл будет каждый раз перезаписываться (например, myscene.max.backup)
Ask user when file op fails – выводить запрос о полной отмене текущей операции утилиты в случае ошибки файловой системы. Такие ошибки возникают, если какие-либо файлы заняты редактирующими их программами или при проблемах с оборудованием (неработающая сеть, осыпавшиеся носители). Если пользователь соглашается, выполнение функции отменяется, и он может попробовать устранить проблему сам, иначе такие файлы просто пропускаются. Чтобы отменить изменения в сцене, пользователь может перезагрузить сцену, поскольку при отмене сцена не сохраняется. Сколько файлов и какие именно файлы скопированы во время отмененной операции утилиты, может быть установлено по логу операции.
Reload while fix (slow!) – перезагружать изображения во время изменения ссылок. Перезагрузка всех изображений занимает много времени и оперативной памяти (если сцена большая и включает значительное количество ресурсов, возможно получение сообщений от Windows об увеличении объема виртуальной памяти). Часто такая перезагрузка не является необходимой. Опцию следует выбирать только в том случае, когда вы выбираете «Использовать имеющийся» при совпадении имен копируемого и уже имеющегося в папке сбора файлов, вы уверены что имеющийся отличается от копируемого, и хотите увидеть его сразу после операции сбора. На небольших сценах переписывание ссылок с этой опцией несильно замедляет процесс, однако в большинстве случаев необходимости в ее выборе нет.

Content Содержимое сцены
Process medit-only content – собирать объекты (текстуры и материалы), присутствующие только в редакторе материалов и не примененные к объектам сцены.
Process XRef structure – обрабатывать не только текущую сцену, но все ее XRef-дерево.
Clear medit before proceed – очищать палитру редактора материалов перед операцией. Если выбрана эта опция, то опция Process medit-only content недоступна.
Ignore shaders – игнорировать файлы с расширениями ".cgfx", ".mi", ".psh", ".vsh", ".fx", ".fxh", ".axml", ".msl". Сбрасывать опцию не рекомендуется, если только вы не используете собственные шейдеры, которые можно – и нужно – переносить с места на место (они не подгружают другие файлы).
Scan all tex instances also – просканировать также все объекты типа TextureMap, имеющиеся в системе. Эта опция добавлена на случай, если алгоритм сбора упустит какие-либо текстуры, являющиеся частью плагинов, которые невозможно просканировать стандартным алгоритмом. Ввиду универсальности и абстрактного подхода алгоритма сбора, до настоящего времени такие текстуры найдены не были, опция добавлена на всякий случай. К сожалению, эта опция не решает проблем со материалами Maxwell Render и Fry Renderer.

Collect Roots
Папки сбора. Кнопка с многоточием рядом запускает диалог выбора папки
Images & ph.web root – папка сбора изображений (кроме HDR) и IES-файлов. В эту же папку попадают шейдеры, если не выбрана опция Ignore shaders из категории Content
HDRI root – папка сбора HDR-изображений
VRay meshes root – папка сбора Vray-mesh’ей

Affect
На что воздействуют операции утилиты
Images & ph.web – обрабатывать изображения и IES-файлы (также будут обработаны шейдеры, если не выбрана опция Ignore shaders)
HDR images - обрабатывать HDR-изображения
VRay meshes - обрабатывать VRay mesh’и

Resource roots related
Операции утилиты, напрямую относящиеся к папкам сбора. В операциях участвуют ресурсы выбранных в категории Affect типов. Осуществляется обработка всех ссылок в текущей сцене или (если выбрана опция Process XRef structure из категории Content) всего XRef-дерева текущей сцены.
Collect resources – собрать ресурсы выбранных типов в соответствующие папки из категории Collect Roots
Unused - найти в папках из категории Collect Roots ресурсы выбранных типов, на которые нет ни одной ссылки в текущей сцене или во всем XRef-дереве; если выбрана опция Summary only, то при обработке Xref-дерева окно со списком неиспользованных файлов выводится только по завершении обработки всего дерева, иначе окно выводится также после обработки каждого файла, показывая какие файлы не использованы именно текущей сценой
Relink to resources roots – переписать все ссылки на ресурсы выбранных типов так, чтобы они указывали на файлы в соответствующих папках из категории Collect Roots

Resolve links to existing – переписать все ссылки на ресурсы выбранных в категории Affect типов так, чтобы они указывали на реальные файлы, если сохраненные в сцене пути указывают на несуществующие файлы, но 3dsmax обнаружил их в другом месте (см. Реальный путь файла в Терминах)
Missing files identity – идентификация объектов, в которых присутствуют ссылки на потерянные файлы
Continue op after crash – продолжить последнюю операцию, начатую для XRef-дерева, но прерванную неустранимой ошибкой 3dsmax (см. ниже – Continue op after crash)
 

Свиток «Convert to JPEG/TGA»

Конвертация изображений ".tif", ".tiff", ".psd", ".png", ".tga" и ".bmp" в JPEG. Если изображение содержит альфа-канал, то оно не может быть сохранено без потери альфы в JPEG, поэтому пользователю предлагаются варианты.
If image has alpha (ask/skip/JPG/TGA) – если изображение содержит альфа-канал, то: спросить пользователя / пропустить / все равно конвертировать в JPEG (с потерей альфа-канала) / конвертировать в TGA c RLE-сжатием (сохраняется альфа-канал)
Premultiplied alpha in TGA – смешивать с цвет полупрозрачных пикселей цветом фона (при сохранении в TGA)
JPEG quality – качество JPEG.
Use NConvert© if exists – если NConvert© присутствует в папке утилиты («maxroot\scripts\tocollectorex» или «maxroot\scripts\tocollectorex Demo» для демо-версии), в корневой папке 3dsmax, в папке Windows или в папке Windows\System32, то она будет использована для конвертации в JPEG (вместо стандартного компрессора 3dsmax)
Convert – запустить операцию конвертации всех изображений сцены или XRef-дерева (опции из категории Affect свитка TO CollectoREX не оказывают действия на эту операцию)
 

Свиток «Help & config»

Справка и настройки
Настройки автоматически сохраняются вместе со сценой и загружаются во время загрузки сцены. Кроме того они могут быть глобально сохранены в ini-файле. Такие настройки называются глобальными умолчаниями (defaults) пользователя или настройками по умолчанию. Настройки по умолчанию загружаются, если текущая сцена не содержит настроек. Также можно загрузить их принудительно или сбросить в начальные значения.
Config
Настройки
Save config as defaults – сохранить текущие настройки как значения по умолчанию
Load config from defaults – загрузить настройки из значений по умолчанию
Clear defaults – сбросить настройки по умолчанию в исходные значения

About – запустить браузер с файлом справки
License search/request (в демо-версии – How to buy) – произвести поиск подходящей лицензии в папке утилиты («maxroot\scripts\tocollectorex»), в корневой папке 3dsmax, в папке Windows или в папке Windows\System32. В демо-версии эту кнопку заменяет кнопка How to buy, которая выводит краткую информации о получении полной версии.

Подробное описание функций утилиты

Функции, работающие с папками сбора

Все функции выводят подробную информацию о своих действиях – в файл лога и в консоль MAXScript Listener. Чтобы увидеть её, нажмите F11 или щелкните по пункту меню MAXScript-> MAXScript Listener.
Прогресс каждого этапа операции (и его название) отображается индикатором прогресса в нижней части окна 3dsmax. Каждая из операций может быть прервана на любом этапе нажатием кнопки Cancel индикатора прогресса или клавишей ESC.

Collect resources

Эта операция включает в себя:
- выбор пользователем папок сбора
- резервное сохранение файла сцены
- сбор информации о ссылках
- вывод карты реального расположения файлов, использованных в сцене
- поиск и вывод ненайденных файлов и полного дерева каждого объекта, ссылающегося на этот файл
- копирование файлов в папки сбора
- переписывание ссылок
- сохранение файла сцены

Папки сбора
Папки сбора могут совпадать. Одна и та же папка сбора может быть указана для нескольких проектов (например, для хранения больших Vray mesh). В этом случае функция утилиты Unused должна быть использована с осторожностью – будут показаны файлы, которые не используются только текущей сценой или ее XRef-деревом. Например, если несколько проектов используют каждый свою папку сбора для изображений, но одну и ту же папку для сбора Vray mesh’ей, то при использовании функции Unused на любом из этих проектов при выбранной опции VRay meshes категории Affect главного свитка утилита покажет не используемые только текущим проектом.

Резервное сохранение
Утилита позволяет осуществлять резервное сохранение. При этом возможны два варианта: инкрементное (по умолчанию) и обычное. При инкрементном имя backup-файла будет состоять из имени оригинального файла, порядкового номера (если это не первое резервное сохранение для этого файла) и двойного расширения «max.backup». При обычном – в имя не включается порядковый номер, и, если файл с таким именем уже есть, он перезаписывается поверх.

Сбор информации о ссылках
Утилита просматривает следующие сущности 3dsmax:
- геометрию
- источники света
- пространственные ловушки
- вспомогательные объекты
- плоские фигуры
- текстуры, назначенные рендереру (например, карта среды VRay)
- карту среды 3dsmax
- эффекты
- эффекты атмосферы
- все объекты родительского типа для всех текстур в системе (если выбрана опция Scan all tex instances also категории Content главного свитка)
- все материалы и карты, содержащиеся в Material Editor и не примененные к объектам сцены (если выбрана опция Process medit-only content also категории Content главного свитка)
В сущностях утилита ищет изображения, IES-файлы, HDRI и VRay mesh’и – смотря, какие выбраны опции в категории Affect главного свитка

Карта реального расположения файлов
См. Термины: Реальный путь файла. Утилита выводит в лог пути в формате «сохраненный в сцене путь» -> «реально найденный путь». Если файл не найден, то вместо реально найденного пути будет служебное слово «missing». При выводе повторения не учитываются – любой файл будет показан только один раз.

Сбор: копирование файлов в папки сбора. Файлы с совпадающими именами
Если при копировании файлов в папки сбора обнаруживается, что файл с таким именем уже есть, то утилита пытается сравнить файлы. Изображения она сравнивает полностью (с альфой и без), у прочих файлов вычисляет контрольную сумму алгоритмом HMACSHA512. При желании можно использовать полное побайтное сравнение у таких файлов, но оно занимает слишком много времени, а сравнение контрольных сумм в большинстве случаев гарантирует, что файлы одинаковы. При идентичности файлов с одинаковыми именами ссылки переписываются так, что они указывают на существующий в папке сбора (это поведение может быть изменено с помощью опций Ask even if bmps are equal и Ask even if binary are equal).
При совпадении имен копируемого и имеющегося файлов, если файлы неодинаковы (или выбрана одна или обе опции Ask even if bmps are equal и Ask even if binary are equal) пользователю выводится окно сравнения, чтобы он мог правильнее принять решение. Он может: заменить копируемым файлом имеющийся, использовать имеющийся, или переименовать (соответственно, кнопки Replace, Use Existing, Raname to…). Имя файла для переименования, уникальное для папки сбора, подставляется в окно сравнения. При желании его можно изменить, но утилита не даст задать имя, неуникальное для папки сбора. В окне сравнения между миниатюрами ставятся знаки равенства (==) или неравенства (<>) – это результаты сравнения изображений без учета альфа-канала (rgb) и с учетом (rgba). Под изображениями приводится информация о файлах: если это изображения, то разрешение, размер, наличие дополнительных каналов (для RLA) и альфа-канала. Для файлов, не являющихся изображениями, выводится только размер. Ниже указывается исходный путь к файлу до сбора.
При желании пользователь может отменить операцию сбора на этом этапе, нажав кнопку ABORT COLLECT.



Переписывание ссылок в сцене
После завершения копирования утилита перебирает все объекты, в которых были найдены ссылки на файлы и переписывает их новыми значениями. При этом, если выбрана опция Reload while fix (slow!) категории Security главного свитка, утилита может перезагружать изображения. Как правило, это не требуется. Однако если известно, что при совпадении имен будут использованы уже имеющиеся в папках сбора файлы изображений, и они явно отличаются от тех, что копируются, можно выбрать эту опцию.

Unused

Эту функцию надо использовать уже после того, как сцена прошла процесс сбора. Unused позволяет определить, какие файлы в папках сбора не используются текущим проектом. Функция включает в себя:
- выбор пользователем папок сбора
- сбор информации о ссылках
- показ таблицы неиспользуемых файлов

Таблица неиспользуемых файлов




В этой таблице отображаются не используемые сценой файлы. Для удобства приведена информация о размере и дате последнего изменения каждого файла. Напротив каждого файла слева находится флажок. Операции Kill checked и Checked to trash относятся к тем файлам, у которых этот флажок не сброшен.
Пользователь может удалить файлы или переместить в локальную корзину. Локальная корзина – это папка $trash$, создающаяся в папке, в которой найдены неиспользуемые файлы, когда пользователь решает переместить их в локальную корзину.
Кнопки окна:
Kill checked – удалить файлы, флажок которых не сброшен
Kill all – удалить все файлы
Checked to trash – переместить в локальную корзину файлы, флажок которых не сброшен
All to trash – переместить все файлы в локальную корзину
Checkers: Invert – инвертировать флажки
Checkers: None – сбросить все флажки
Checkers: All – установить все флажки
Checkers: Selected on – установить флажки у выделенных строк (несколько строк можно выделить, придерживая CTRL или SHIFT)
Checkers: Selected off – сбросить флажки у выделенных строк
Двойной щелчок мыши по строке открывает изображение в VFB (virtual frame buffer). Каждый раз создается новое окно VFB, следует не забывать закрывать эти окна вручную, чтобы не расходовать память попусту.

Relink to resources roots

Эта функция применяется в следующей ситуации: проект прошел процесс сбора, после этого папки сбора (или папки сбора и проект) были перенесены в другое место: другой диск или другой компьютер. Внимание: если просто файл проекта (сцены или нескольких связанных сцен) перемещен, данная операция не требуется. Дело в том, что при изменении местоположения папок сбора все ссылки проекта будут указывать на несуществующие файлы.
Возможна ситуация, когда эти файлы не попадут в категорию потерянных (missing files). Это возможно, если папки сбора перенесены куда-нибудь внутрь папки проекта (имеется ввиду в саму папку или в любую ее подпапку с любой степенью вложенности) или внутрь папки, содержащейся в путях, которые «видит» 3dsmax (например, user paths). Однако даже в такой ситуации, если все оставить как есть, то при попытке сделать из этой сцены в другую merge потерянные файлы все-таки появятся.
Данная функция изменяет все ссылки так, чтобы они указывали на файлы с теми же именами, но находящиеся внутри указанных папок сбора (если ранее указанные папки не существуют, то при загрузке настроек утилиты из сцены соответствующие поля будут очищены).

Операция включает в себя:
- выбор пользователем папок сбора
- резервное сохранение файла сцены
- сбор информации о ссылках
- вывод карты реального расположения файлов, использованных в сцене
- поиск и вывод ненайденных файлов и полного дерева каждого объекта, ссылающегося на этот файл
- переписывание ссылок
- сохранение файла сцены

Прочие функции

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

Resolve links to existing

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

Missing files Identity

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

Convert to JPEG/TGA

Эта функция конвертирует ".tif", ".tiff", ".psd", ".png", ".tga" и ".bmp" в JPEG. ВНИМАНИЕ: опции категории Affect не действуют на данную функцию.
Если изображение содержит альфа-канал, то оно не может быть сохранено без потери альфы в JPEG, поэтому пользователю предлагаются варианты: конвертировать в JPEG, сохранить как TGA (если это не TGA-файл) или оставить без изменений. Действие по умолчанию можно выбрать в категории If image has alpha свитка Convert to JPEG/TGA.
Когда утилита встречает изображение, имеющее альфа-канал, она выводит окно, в котором находится миниатюра этого изображения, информация о его разрешении и размере, дополнительных каналах.
Ниже показаны два варианта окна (на левом изображение уже имеет формат TGA).




Кнопки окна:
Convert to JPEG – конвертировать в JPEG с потерей данных альфа-канала
Don’t convert – оставить без изменений
Convert to TGA – конвертировать изображение в формат TGA с RLE-компрессией, если опция PreMultAlpha выбрана, то с цвет полупрозрачных пикселей будет смешан с цветом фона; установлена ли эта опция при каждом открытии диалога, зависит от состояния опции Premultiplied alpha in TGA свитка Convert to JPEG/TGA.

Работа с XRef-деревом

Если сцена содержит XRef-ссылки (XRef Scenes, XRef Objects, XRef Materials и XRef Atmospherics), то при выбранной опции Process XRef structure категории Content главного свитка утилита может обработать все сцены, связанные с текущей посредством этих ссылок.
С XRef-деревом может работать любая функция утилиты. Тогда при запуске функции выводится окно, демонстрирующее XRef-дерево сцен. Отступами показана глубина вложенности.

Поиск сцен, входящих в XRef-дерево, ведется:
- в XRef Scenes и включенные в них сцены и т.д.; граф может быть зациклен, в построенном утилитой списке не будет дубликатов
- в объектах сцены, которые имеют тип XRefObject; если содержащийся в этом объекте объект имеет тип XRefObject (сквозное включение), то поиск идет до такой степени вложенности, где базовый объект – не XRefObject
- в прокси XRef-объектов сцены
- в материалах сцены и, если надо (опция Process medit-only content категории Content главного свитка), в материалах Material Editor, не примененных к объектам сцены – так же до необходимой глубины вложенности
- в эффектах атмосферы, импортированных из других сцен посредством XRef-ссылки - так же до необходимой глубины вложенности




В нижнем левом углу показано название текущей операции.
Кнопки окна:
Abort operation – отменить операцию
Continue without XRef tree – продолжить только с текущей сценой
Continue – продолжить с полной обработкой всего XRef-дерева
При обработке всего XRef-дерева, 3dsmax загружает, обрабатывает и сохраняет, если это необходимо, все файлы, входящие в дерево. Обработка каждого файла происходит, как описано выше. Особенностью является лишь то, что ко всем сценам в процессе обработки применяются одни и те же настройки утилиты, в том числе и пути папок сбора.

Continue op after crash

Поскольку критические сбои 3dsmax достаточно часты, в частности – при загрузке-выгрузке больших файлов, возможна ситуация, когда происходит критический сбой в процессе обработка длинного списка файлов. Для того, чтобы продолжить начатую операцию после перезагрузки 3dsmax (необходимо убедиться, что после закрытия окна 3dsmax его процесс также закрылся), предназначена функция Continue op after crash.
После перезапуска 3dsmax, если предыдущая операция была прервана критическим сбоем или действиями пользователя, кнопка Continue op after crash главного свитка находится в разрешенном состоянии. При нажатии ее пользователь видит окно Continue After Crash. В окне отображены настройки, с которыми была запущена операция, название операции (в нижнем левом углу) и список файлов, которые еще не обработаны (Files scheduled).




Кнопки окна:
Cancel – просто закрыть окно: на случай, если пользователь просто захотел посмотреть, что содержится в файле информации для Continue op after crash
Abort operation – отменить прерванную операцию и удалить все данные о ней
Continue – продолжить прерванную операцию

В процессе обработки XRef-дерева в batch-режиме после каждого файла сохраняется текущее состояние операции, чтобы в случае сбоя было возможно продолжение. При успешном завершении операции такой файл стирается. Файл, в котором хранится информация для Continue op after crash, имеет имя «TOCollectoREX_cac.ini» и находится в папке настроек плагинов 3dsmax: если ввести в MAXScript Listener строку symbolicPaths.getPathValue "$plugcfg" и нажать ENTER, MAXScript покажет, где находится эта папка, например:
"С:\Documents and Settings\Administrator\Local Settings\Application Data\Autodesk\3dsmax\2008 - 64bit\enu\plugcfg".
Не рекомендуется его редактировать вручную, утилита сама удалит его, когда он станет не нужен.

Настройки утилиты

Для удобства настройки утилиты сохраняются отдельно в каждой сцене, например, чтобы при следующей операции сбора не задавать вновь папки сбора и не выбирать необходимые опции. Если в сцене еще не сохранены настройки утилиты, вписываются настройки по умолчанию (они приведены в таблице описания интерфейса).
Для того, чтобы настроить утилиту «под себя», предусмотрены изменение этих умолчаний. «Умолчания пользователя» сохраняются в файле с именем «TOCollectoREX_defaults.ini», находящемся в папке настроек плагинов 3dsmax (см. выше). С помощью кнопок категории Config свитка Help & Config пользователь может сохранить настройки из текущей сцены как умолчания, загрузить настройки из умолчаний, сбросить умолчания в исходное состояние.

Типичная схема работы с утилитой (workflow)

Пользователь создает сцену, подключает к ней различные ресурсы и редактирует ее. После завершения каждого этапа (если его работа подразумевает деление на этапы) или просто периодически пользователь использует функцию утилиты Collect resources. По мере надобности (например, по факту завершения разработки сложных текстур в Adobe Photoshop) он использует Convert to JPEG/TGA и время от времени – Unused, чтобы установить, какие ресурсы больше не нужны, и их можно удалить. Если в сцену добавляются объекты из других сцен, пользователь может использовать Resolve links to existing, чтобы установить, какие реально существующие ресурсы загружаются в импортированный кусок сцены. Если какие-то файлы выводятся в списке Missing Files при загрузке сцены, можно использовать Missing Files Identity, чтобы установить, какие именно объекты включают потерянные файлы и устранить проблему.
Та же схема работы, если сцена использует XRef-ссылки, но возможно использование Continue op after crash при сбоях 3dsmax.
Для удобства пользователь может сохранить конфигурацию утилиты как глобальные умолчания (например, если он предпочитает обычное резервное сохранение инкрементному или не желает, чтобы Material Editor очищался с выполнением каждой операции утилиты).

Отказ от пользования утилитой

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

Известные проблемы и решения

1. Если вы используете displace space warp, и в нем используете поле bitmap, и собираетесь сделать Relink To Resources Roots (а в настоящее время все файлы сцены имеют статус Missing), то есть вероятность, что эта картинка не будет перелинкована на новый путь. Поэтому советуем использовать в displace space warp параметр Map вместо Bitmap
2. Если во время операции Find Unused Files по X-Ref дереву произойдет сбой 3dsmax, то при восстановлении (Continue op after crash) будет показан суммарный список файлов, не используемых только теми сценами, которые обрабатывались после сбоя. Попробуйте перезапустить 3dsmax и повторить операцию
3. Утилита пользуется возможностями Microsoft .NET, а связка MaxScript-.NET несовершенна, поэтому периодически могут не отрисовываться некоторые элементы управления. Достаточно пощелкать по этим элементам или переключиться на другую задачу, а потом обратно в 3dsmax, чтобы они отрисовались.
4. При длительной работе утилиты возможны странности в работе 3dsmax. Обычно этому предшествует вывод одного или нескольких диалогов 3dsmax, сообщающих что в работе сборщика мусора MAXScript произошел сбой. В этом случае перезапустите 3dsmax и проследите чтобы его процесс был снят после закрытия его окна. Лучше всего запускать утилиту в "свежезапущенном" 3dsmax.
5. IFL - если имена файлов не относительные, то в результате сбора ссылаться IFL будет все равно на то место, куда указывают пути, только если файлы там присутствуют. Рекомендуется создавать IFL-файлы, не используя абсолютный путь - в каждой строке должно быть только имя файла (вариант по умолчанию)
6. Утилита копирует файлы шейдеров, однако указанные в них файлы она копировать не может. Опция "don't copy shaders" позволяет не собирать файлы шейдеров. Положение по умолчанию - включено.



Tertium Organum ® 2008-2019