3ds max удалить неиспользуемые материалы
Для назначения материалов объектам в 3ds Max® используется так называемый редактор материалов. А вот для действия обратного, то есть для удаления материалов с объектов, ни в новом « Slate Material Editor » (Планшетном редакторе материалов), ни в стандартном « Compact Material Editor » (Компактном редакторе материалов), инструментов не предусмотрено. Но это вовсе не означает, что применение к объекту материала — операция необратимая. Просто в 3ds Max для «освобождения» объектов от материалов используются другие средства: команды MAXScript, сценарии MacroScript, утилита « UVW Remove » (Удаление координат наложения). И в данной статье речь пойдет о том, как удалить материал с объекта в 3ds Max 2018…
Команды MAXScript
Удалить материал с выделенного объекта можно с помощью команды:
А если немного видоизменить ее, то получится команда, которая позволит удалять материалы сразу со всех объектов сцены:
Результаты использования команд MAXScript для удаления материалов с объектов: 1 — Сцена с наложенными на объекты материалами; 2 — Та же сцена после выполнения команды $.material=undefined; 3 — Та же сцена после выполнения команды $*.material=undefined
Ввод в 3ds Max команд на языке MAXScript осуществляется либо через « MAXScript Listener » (Слушатель MAXScript), либо через « MAXScript Mini Listener » (Мини-слушатель MAXScript).
В первом случае необходимо:
- Открыть « MAXScript Listener » [1];
- Ввести в одно из его полей соответствующую команду ( $ .material= undefined — если требуется удалить материал только с выделенного объекта, или $ *. material = undefined — если нужно удалить материалы со всех объектов на сцене);
- Нажать клавишу [ Enter ].
Удаление материала с выделенного объекта из MAXScript Listener: 1 — Команда $.material=undefined в белом поле окна MAXScript Listener; 2 — Окно MAXScript Listener после успешного выполнения команды; 3 — Окно MAXScript Listener после попытки выполнения команды, при вводе которой была допущена опечатка
Удаление материалов со всех объектов сцены из MAXScript Mini Listener: 1 — Команда $*.material=undefined в розовой строке MAXScript Mini Listener; 2 — MAXScript Mini Listener после успешного выполнения команды; 3 — MAXScript Mini Listener после попытки выполнения команды, при вводе которой была допущена опечатка
Удалять материалы с объектов при помощи этих команд не слишком удобно, особенно если делать это приходится часто: ведь команды довольно длинные, и на их ввод тратится много времени. Значительно ускорить процесс удаления с объектов наложенных на них материалов позволяет использование сценариев MacroScript…
Сценарии MacroScript
Сценарий MacroScript — это написанный на языке MAXScript скрипт, определяющий « Action » (Действие), то есть команду, вызов которой может происходить за счет клика по иконке на палитре инструментов, выбора пункта в меню или в четверном меню, нажатия сочетания клавиш. Таким образом, взяв за основу рассмотренные выше команды, можно написать два MacroScript, один из которых будет определять действие для удаления материалов только с выделенных объектов, а второй, соответственно, — для удаления материалов со всех объектов сцены.
В самом общем случае код скрипта, который будет определять действие для удаления материала с одного или нескольких выделенных объектов, будет выглядеть примерно так:
Аналогичным образом может быть написан и сценарий, который будет удалять материалы со всех без исключения объектов сцены:
- macroScript — идентификатор, указывающий на то, что данный скрипт является сценарием MacroScript;
- RemoveSelectedMaterial и RemoveAllMaterials — определяемые пользователем названия сценариев;
- Removing Materials — определяемое пользователем наименование категории, в которой будут представлены данные сценарии в диалоговом окне « Customize User Interface » (Настройка пользовательского интерфейса).
Для создания сценариев подойдет любой простейший текстовый редактор наподобие стандартного Блокнота в Windows. Но гораздо удобней пользоваться встроенным в 3ds Max « MAXScript Editor » (Редактором MAXScript). Синтаксис кода в нем подсвечивается, что позволяет быстро заметить допущенную ненароком ошибку.
Таким образом, чтобы создать сценарий MacroScript, который будет удалять с объектов материалы, требуется:
- Запустить « MAXScript Editor » [2];
- Записать в нем код скрипта (примеры кода даны выше);
- В окне редактора открыть меню « File » (Файл), и выбрать из него команду « Save As… » (Сохранить как…);
- Сохранить скрипт в файл с расширением .ms.
Чтобы воспользоваться написанными сценариями, их следует загрузить в 3ds Max, для чего можно придерживаться следующей последовательности действий:
- Выбрать команду « Run Script… » (Запустить скрипт…) из меню « Scripting » (Написание скриптов) стандартного меню 3ds Max [3];
- В открывшемся диалоговом окне « Choose Editor File » (Выбор файла редактора скриптов) найти сохраненный ранее файл сценария;
- Нажать кнопку « Open » (Открыть).
После загрузки сценариев MacroScript в 3ds Max, прописанные в них действия будут, наряду с другими командами, отображаться в диалоговом окне « Customize User Interface » (Настройка пользовательского интерфейса), что позволит добавлять для них иконки на палитры инструментов, создавать для них пункты в меню или четверном меню, назначать для них клавиши быстрого доступа…
Написанные ранее сценарии RemoveSelectedMaterial и RemoveAllMaterials в диалоговом окне Customize User Interface
Утилита UVW Remove
Чтобы удалить материал с объекта, вовсе не обязательно говорить на скриптовом языке. Возможно, не самым быстрым, но уж точно самым понятным для подавляющего большинства пользователей 3ds Max, способом удаления с объектов материалов является использование утилиты « UVW Remove » (Удаление координат наложения).
Доступ к утилите « UVW Remove » осуществляется из « Command Panel » (Командной панели) 3ds Max. Для ее запуска необходимо:
- Переключиться на вкладку « Utilities » (Утилиты) командной панели;
- Нажать кнопку « More… » (Больше…) в свитке « Utilities » (Утилиты);
- В открывшемся диалоговом окне со списком доступных утилит, найти и выделить пункт « UVW Remove »;
- Нажать кнопку « OK ».
После запуска утилиты « UVW Remove » во вкладке « Utilities » командной панели появится свиток « Parameters » (Параметры) со следующими элементами:
- Кнопкой « UVW » (Координаты наложения), нажатие которой приведет к удалению координат наложения карт со всех выделенных объектов;
- Кнопкой « Materials » (Материалы), нажатие которой приведет к удалению со всех выделенных объектов назначенных им материалов;
- Галочкой « Set Gray » (Сделать серым), установка которой приведет к тому, что при удалении материалов все объекты будут автоматически перекрашиваться в нейтральный серый цвет (RGB: 160, 160, 160).
Результаты работы утилиты UVW Remove: 1 — Объект с наложенным на него материалом; 2 — Тот же объект после нажатия кнопки UVW в свитке Parameters; 3 — Тот же объект после нажатия кнопки Materials в свитке Parameters при снятом флажке Set Gray; 4 — Тот же объект после нажатия кнопки Materials в свитке Parameters при установленном флажке Set Gray
Использование утилиты « UVW Remove » для удаления с объекта координат наложения имеет одно довольно существенное ограничение: она действует исключительно в отношении « Editable Meshes » (Редактируемых каркасов) со свернутым стеком модификаторов. Если Вы попытаетесь с ее помощью удалить координаты наложения с другого объекта, то на экран будет выведено предупреждение о том, что удаление координат наложения работает только на свернутых редактируемых каркасах.
Окошко Error при попытке использования утилиты UVW Remove для удаления координат наложения с объекта, не являющегося свернутым редактируемым каркасом
Видео к статье
Дополнительные материалы
Подскажите,как полностью удалить материал из сцены? Чтобы даже пипеткой его нельзя было взять. Просто у меня проблемка возникла - в сцене уже куча материалов. Убирала ресетом 1 партию,2 тоже всю использовала, и теперь текстуры не накладываются на новые объекты,они просто красятся в серый цвет и такими и остаются при рендере. Что посоветуете?
1.назначаете всем объектам один простой серый материал новый без текстур
2.выделяете нужные объекты
3.сохраняете выделенные объекты в отдельный файл
если вы хотите оставить на объектах материал - он всегда будет оставаться в сцене и его всегда можно будет подцепить пипеткой
1.назначаете всем объектам один простой серый материал новый без текстур
2.выделяете нужные объекты
3.сохраняете выделенные объекты в отдельный файл
если вы хотите оставить на объектах материал - он всегда будет оставаться в сцене и его всегда можно будет подцепить пипеткой
у меня большое помещение,его нельзя "разорвать" на отдельные файлы.мне нужно просто удалить материал из сцены,ПОЛНОСТЬЮ.неужели это никак нельзя сделать?
ne_buka, сформулируйте чётко задачу пожалуйста - а то вы просите взаимоисключающие вещи.
попторяю - если вам нужно удалить все материалы из сцены - создаёте новый VrayMtrl простой серый - потом жмёте Ctrl+A и назначаете всем объектам этот материал
из MtrlEditora удаляете просто все шарики с материалами простым перетаскиванием нового созданного вами материала на все слоты
после чего сохраняете файл и вуаля - жизнь прекрасна
Для этого надо удалить объект, на котором лежит этот материал, либо заменить материал на объекте.
Сам материал может ещё остаться в матэдиторе. Из матэдитора, надеюсь, знаете как удалить? Либо "reset mateditor slots" (весь эдитор очистит), либо перетащите пустой шарик на этот материал.
невозможность "наложить" на объект текстуру как правило связанна с с самим объектом, текстурой, наличием маппиега, а не с присутствием в сцене кучи материалов. Из возможных вариантов - нехватка ресурсов компа. Но как правило при рендере идет либо вылет либо комп справляется.
Zom6ie, мне нужно просто удалить один или 2 ненужных материала, не все из сцены, причем удалить полностью, чтобы он в и списке не отображался.в том то и проблема. Просто,если я изменяю параметры уже созданного материала(накладываю текстуру например),то такой материал почему то не накладывается на новый созданный объект. вот я и хочу попробовать удалить его
beard02, ну вот смотрите, создаю я объект из сплайна,выдавливаю его экструдом и текстура на него не накладывается, просто слот с цветом накладывается(и то как то через раз..),а текструра нет.что с этим делать?
condense material editor slots это в редакторе материалов в меню utilites - удаляет материалы не назначенные каким-либо объектам.
А если нужно удалить материал с объекта, то пипеткой его берете и нажимаете красный крестик reset, а в окошке переключаете кнопку на affect both in scene and mat editor - как-то так, материал будет сброшен на материал по умолчанию и в сцене и в редакторе.
Через material explorer можно все материалы смотреть и что не надо убирать. Там же видно на какие объекты материал наложен.
спасибо!!с одной проблемой разобрались)
lance_lot, супер!все ненужное удалилось))спасибо огромное еще раз!)
vip_open
Просмотр профиля
VitaminD
Просмотр профиля
если они не используются, значит их нет в сцене
проверь матэдитор на наличие этих материалов
G-Rom84
Просмотр профиля
тфу херню сморозил.
vip_open
Просмотр профиля
Нет, у меня много остается лишних и дублируемых материалов в сцене. Они храняться в материалах сцены. Каким образом автоматизировать процесс удаления лишних (неиспользуемых)?
Quadds
Просмотр профиля
В принципе, существует два способа: 1-ый - руками и "матом", 2-ой зайти в Material Editor - Utilities и выбрать пункт Clean MultiMaterial, ставим галки на нужных нам материалах и Max все остальное сделает сам.
Spear
Просмотр профиля
dimdim
Просмотр профиля
Dizeloid
Просмотр профиля
dimdim
Просмотр профиля
назначь на объект этот (на который мат ссылается) другой материал. и нажми кнопку в мат эдиторе\utilities\condense material editor slots. кнопка работает так: удаляет материалы из сцены которые не назначены на что либо
Dizeloid
Просмотр профиля
Neon_iT
Просмотр профиля
а в 3ds max можно вообще удалять материал с объекта, чтобы он вернулся в состояние до того, как на него положили материал?
kolts
Просмотр профиля
выделить объект
В скрипт листенере написать
$.material = a (любую букву хотя правильно писать undefined)
нажать enter
Задам свой вопрос в этой теме. Как скриптом задать нужному объекту существующий материал по названию. Пробовал что то не получалось.
compAz
Просмотр профиля
а в 3ds max можно вообще удалять материал с объекта, чтобы он вернулся в состояние до того, как на него положили материал?
без скрипта Utilites -> More -> UVW Remove
IOG
Просмотр профиля
а как удалить все неиспользуемые материалы/текстуры в сцене никто не знает ? както на эту тему видел скрипт - щас не нахожу..
SnDEL
Просмотр профиля
а как удалить все неиспользуемые материалы/текстуры в сцене никто не знает ? както на эту тему видел скрипт - щас не нахожу..
+1 меня от этого окошка с предупреждением тошнит уже =( вроде материалы текстуры эти давно не использую, назначены другие. А всё равно вылазит! =(
Jahell
Просмотр профиля
IOG, сказали же уже выше - "назначь на объект этот (на который мат ссылается) другой материал. и нажми кнопку в мат эдиторе\utilities\condense material editor slots. кнопка работает так: удаляет материалы из сцены которые не назначены на что либо"
2 SnDEL
Удали все эти потеряные текстуры из мата или переназначь. У меня такое было, еле нашел эту текстуру.
У меня есть другой вопрос: в мап браузере половина моих материалов помечена красным цветом. Кто знает, что это значит? Искал в хелпе не нашел. А вдруг гадость какая? )
Yuill
Просмотр профиля
Jahell
Просмотр профиля
Иногда нужно почистить какую-то сцену в 3ds max. Чистить приходится от всего. Например, от лишних 3d-моделей или от ненужных источников света. Еще бывает, что приходится чистить сцену от неиспользуемых материалов в Material Editor. Вот хочется удалить полностью все материалы в сцене и все. Душа перфекциониста просит все начать сначала и по-своему. Итак, начинаем удалять! Перед нами сцена с 3-мя объектами и одним материалом на всех.
Есть несколько вариантов удаления материалов (шейдеров).
Удаляем с объекта
Чтобы удалить материал с объекта в 3ds max, нужно выделить этот самый объект, затем найти утилиту, которая называется UVW Remove. Как это сделать, смотрите ниже.
Т.е. после того, как мы выделили объект с ненужным нам материалом, просто кликаем в параметрах утилиты справа кнопку Materials и всё. Объект чист, как будто только что родился.
Если хотите, чтобы объект стал серым после чистки, то перед операцией поставьте галочку Set Gray.
Удаляем из ячейки редактора
Для удаления неиспользуемого материала из ячейки редактора материалов нажимаем красный крестик.
Сверху — компактный (Compact) редактор материалов, снизу — расширенный (Slate Material Editor)
Если материал в сцене ничему не назначен, то 3ds max задаст вопрос: This will cause all of the current mtl/map setting to be lost. Are you sure you want to reset? (Все текущие настройки материала будут потеряны. Вы уверены, что хотите сбросить?).
Если нажмете «да», то материал полностью очистится, т.е. вернутся его первоначальные параметры: он станет серым и без текстур.
Если материал чему-то назначен в сцене и вы нажмете красный крестик, то 3ds max задаст вопрос:
- удалить материал из слота редактора и полностью из сцены;
- удалить только из слота редактора материалов.
Здесь уже выбирайте, что вам необходимо.
Удаляем все материалы сцены
Чтобы удалить все материалы сцены, можно сделать так: создайте новый материал (например, белый), выделите все объекты сцены и назначьте его им. Либо воспользуйтесь способом с утилитой UVW Remove (см.выше). А очистить все ячейки можно с помощью этой команды:
Ячейки очистятся, но материалы на объектах останутся. Можно пипеткой взять пробу с любого объекта и материал объявится в любой выбранной вами пустой ячейке.
Кстати, не помешает и проверить, остались ли в редакторе материалы, которые до сих пор назначены на какой-то объект.
Обратите внимание: если в ячейке есть треугольники по углам, то значит материал назначен какому-то объекту (3d-модели).
Найти этот объект можно с помощью инструмента Select by Material (выделить по материалу). Выберите материал, кликните на этот значок и объект(объекты) сразу найдется. Т.е. появится список тех объектов, к которым назначен именно этот материал.
Читайте также: