Render.ru

Как скопировать объект, чтоб получить уникальные материалы?

Trofimm

Знаток
Рейтинг
27
#1
При копировании объекта, я получаю объект с материалом оригинала.
Как скопировать объект, чтоб получить копию материалов, но не связанную с оригиналом?
 

Trofimm

Знаток
Рейтинг
27
#4
Некоторые материалы используются инстансом как на отдельных объектах, так и в группах и т.д. Задача сохранить структуру шейдер нетворка и получить его клон, со всеми инстансами и связями.
В майе это решается одной галкой, но надо для макса.
 
Рейтинг
49
#5
Выдели то, что нужно скопировать, File > Save Selected As > temporary.max.
File > Merge > temporary.max
Он ругнется, что объекты и маты одинаково называются - поставь галку на автоматическое переименование и того, и другого.
 

GoodMan

Мастер
Рейтинг
260
#6
Можно попробовать так
Делаешь копию объекта - выделяешь объекты которым нужно сделать уникальные материалы на базе клонированного.
Теперь запускаем скрипт приведённый ниже через MaxScript->New Script: вставляем текс скрипта и жмем Ctrl+E или File->Evaluate All (в скрипт-редакторе)
Объекты получат копии исходного материала с соотв. припиской к имени материала для избежания конфликта имен:
for i = 1 to $.count do ($.material = copy $.material; $.material.name = $.material.name + "_copy" + i as string)
 
Рейтинг
37
#7
В ментале есть карта Multisub map которая может рандомно или по цвету обьекта или же по мат айди назначать материалы...
 

Trofimm

Знаток
Рейтинг
27
#8
Всем спасибо.

Ругается на скрипт:
-- Error occurred in anonymous codeblock; filename: ; position: 0
-- Unknown property: "count" in $Editable_Poly:Teapot02 @ [-6.124977,-11.219513,0.000000]
 

GoodMan

Мастер
Рейтинг
260
#9
Сорри я не проверил его на работе с 1-м объектом..
Поробуй этот вариант:
Код:
c = 1; for i in selection do (i.material = copy i.material; i.material.name = i.material.name + "_copy" + c as string; c += 1)
 
Сверху