Multi-Sub CC 1.0 (Script для 3d max)

Всем привет ! =)

Наконец то закончил работу над своим следующим скриптом. Который я назвал Multi-Sub CC (Color Correction).

8d0a4468c7fe5e743b71180a82b65aa5.jpg

Демонстрация скрипта и обучение доступно в видео уроке, который я вам советую первым делом посмотреть, и уж потом читать дальше, если вас это заинтересует =)

Обо всём теперь более подробно.

доступен к скачиванию - здесь 

Почему Multi-Sub?

Всё просто, скрипт создает мультиматериал (multi-sub). Умеет распознавать какой движок рендера вы используете. Автоматически создаёт нужные материалы такие как (VrayMtl и CoronaMtl)

ВАЖНО - работает только с движками Corona и Vray.

Я постарался сделать интерфейс удобным для редактирования и быстрых созданий множества материалов, потратив на этом меньшее время. Как он выглядит?

66df8ded31e8bf5f98cce580c6e504f1.jpg

По порядку:

ID-  номер материала находящегося в Multi-Sub.

Enabled-  включить/выключить этот материал в основном Multi-Sub.

Name-  Имя материала.

Diffuse (Color) - показывает цвет Diffuse, зависит от режима слоев который вы выбрали.

Maps / Textures  - Карты, которые будут использоваться для материалов.

Enabled - включает/выключает режим отображения карты на материале.

Далее идут столбцы которые отвечают за цветокоррекцию самих карт. Любая карта которую вы назначили в любом слое будет автоматически ложится в Color CorrectionОтсюда и управление цветами, вы можете быстро и легко придать нужный вам цвет. Добавить какое-либо разнообразие в материал. Подробнее в видео уроке.

Brightness- яркость,  Saturation- насыщенность,  HUE- калибровка цвета.

 

Так же вы видите что у скрипта доступно меню, расскажу что там и как работает.

4a982375247b752059c65601a07a5dba.jpg

Первая вкладка Main- доступна сразу после открытия, остальные выключенны пока вы не создали или не загрузили материал.

Create New Multi-Sub - создает новый мульти-материал, записывая его в выбранном слоте материал эдитора. 

Pick From Selected Material - загружает в себя выделенный слот из материал эдитора, при этом этот материал должен быть типа Multi-Sub. Если у вас там стандартные материала - то скрипт не будет с ними работать.. Работает только с VRAY и CORONA.

Load Presset / Save Presset  -  загружает или сохраняет ваши настройки материала в файл формата .mat

c2e19c5c877d9f11b14119add4f45670.jpg

Mode- режим выбора нужных вам слоёв для редактирования.  Включил сюда самые основные для поверхностей.Diffuse, Reflect, Glossy, Bump.

8c3e2eb12d61d5949b7562fba99a5c15.jpg

Operations:  

Fast Load Bitmaps - позволяет легко и быстро выбрать множество картинок, которые будут в той же последовательности добавлены к картам материалов.. В зависимости от того какой вы выбрали слой. Если Diffuse - то вставлять будет в карты диффуза, если bump - то в Bump и т.д.Вставляет только в пустые(незанятые) ячейки, не пустые - пропускает мимо.

Delete All Maps - аналогично быстро удаляет все карты в выбранном вами слое.

Apply material to Objects - Назначает материал к выбранным объектам, можно выбрать группу объектов. Ко всем этим объектам в случайном порядке будет назначен индекс(номер материала). Каждое последующее нажатие генерирует разные ID.

Apply material to Multi-Objects  -  аналогично применяется к мульти-объекту (несколько элементов в одном объекте)

Copy all maps to   -   Копирует все ваши карты в выбранном слое, со всех материалов, в выбранный другой слой.порядок индекса сохраняется.

7bc4586b31f8237bb5b38009c4c8db96.jpg

Randomize: один из самых основных.

Здесь происходит случайная генерация цветокоррекции, такой как Brightness, Saturation, HUE, Glossy, Color, Bump Power.

Так же вы видите диапазон случайных чисел, где-то это -50/0, либо -100/0.  В видео уроке с этим всё более понятно.

Вкладка About- обо мне на 3ддд )

Так же имеется панель редактирования карт, вызывать её можно правым кликом мыши на Maps Textures

d4dacefe16a8d7e008d2a5bbb355db0e.jpg

Здесь также доступны следующие операции:

Edit- редактирование карты, откроется материал эдитор с выбранной картой.

Copy- скопировать карту.

Paste- вставить карту.

Paste to All - вставить скопированную карту во все пустые ячейки выбранного слоя

Delete- удалить карту

В самом низу имеется счетчик количества материалов. легко можно добавить новые - создаваться будут опять же материалы в зависимости от вашего выбранного рендер движка. (VrayMtl или CoronaMtl)

P.S. Скрипт не требует никаких плагинов, работает сам по себе. Очень удобно что можно быстро загружать и сохранять прессеты настроек.  

Так же он будет отличным дополнением для создания материалов к моему первому скрипту.

Всем спасибо !

Комментарии (64)

+3
u2shkin
Поздравляю с новым скриптом)))

Вопрос: если 90% интерфейса на английском зачем кнопка "применить" и прикол про "случайно суда зашёл" ?
А так очень полезный скрипт.
Не поверите для себя писал недавно нечто подобное но немного с другой целью видимо вселенная посылает всем похожие мысли)))
+7
StunBreaker
Спасибо и вас тоже поздравляю с тем же =)

На самом деле всё просто - конечно же скрипт пишется исключительно для нас, для русских людей, Но переводить такие вещи как Reflect Bump и прочее нет смысла. Ведь даже новички которые учат впервые понимания рендера - учат их на Английском интерфейсе ) Отсюда и кнопки английские - чтоб не ломать голову, всё то что мы прекрасно понимаем - остаётся таким же для понимания.. А про случайно зашёл - мини стёб =))
+4
sergyn4ik
Нравится подход автора к пользователям, так держать +5 от меня.
Кстати вот есть конкурс моделей, а по скриптам не бывало еще ))))))
0
StunBreaker
спасибо рад что вы цените это =)
+1
necBTpuko
Ну за блоги тоже можно получить награду. Да и многие ли пишут скрипты? :)
+1
Charlyxxx
Прикольно! Поздравляю с релизом!
0
StunBreaker
Спасибо ! )
+1
Skap
Скрипт не качал пока, но у вас что то в одном месте написано ColorCorrect в другом ColorCorrection. Вы как то определитесь, в Максе то и то и другое есть. Может это конечно не значительно, но в глаза бросилось
0
StunBreaker
ColorCorrect - это сокращенно Color Correction.. А насчёт и то и другое вы ошибаетесь, ColorCorrect - такого нет в стандартах макса, если вы конечно не поставите какой-то специальный плагин - которого ещё нет.

P.S. ошибка на превью блога думаете меняет что-либо в поведении скрипта? )
+1
Skap
Ну тем не менее это плагин у значительного большинства стоит.

P.S. ошибка на превью блога думаете меняет что-либо в поведении скрипта? )
Это то да не меняет, прост смутило.
0
StunBreaker
хорошо чтоб не вызывало сомнений, исправлю превью )
+3
Uraken
нене Color Correct вызывает зубовный скрежет, не надо так
+2
u2shkin
Не грузите программиста орфографией! Он и так должен следить за каждой буквой, скобкой и запятой в коде пусть хоть на счёт названий не парится. Сам сижу на "Гоголь транслейте" чтобы назвать свою кнопку ))) Главное чтобы работало.
+1
MastaMan
Весьма не дурно. Мои поздравления большая работа проделана!
0
StunBreaker
спасибо что оценили ! =)
0
mazan
Хороший скрипт. Скажите,а можно сделать так, чтобы высвечивалось название, с каким параметром в данный момент идет работа -дифуз, рефлект или бамп, где-то внизу поля.
+1
StunBreaker
С этим вообще нет проблем, изначально думал именно так и сделать в нижнем левом углу.. Но потом подумал - зачем одно и то же два раза показывать ) В режиме Mode - аналогично отображается галочкой - какой слой текущий. Да и слоёв не очень много думаю большой путаницы не должно возникнуть с этим =)
+2
mazan
Еще вопрос,можно ли сделать такого "помощника", который нарезает хаотично ребра на объекте, для складок на мягкой мебели?
+1
StunBreaker
пока что только в мыслях )
+1
mazan
Удачи! Молодец!
0
Yehat
Если в слоте мультисаба лежит Layered material, что будет регулировать скрипт?
0
StunBreaker
с этим думаю он не будет работать к сожалению, в этой версии точно.
+1
ygoryan
В самом начале описания скрипта, хочется сразу увидеть для чего этот скрипт.
Посмотрел бегло видео, почитал описание, но так и не понял зачем он? Еще один мультитекстур?
Можно объяснить его назначение?
И еще, если есть желание, не могли бы вы написать скрипт под хоткей или кнопку, чтобы выбирать камеру ту которая во вьюпорте, а то через менюшки длинно получается.
Спасибо!)
+1
StunBreaker
Доброго времени, в неком смысле можно сравнить и с мультитекстурой.

У меня всегда возникает желание сделать что-то именно на MaxScript, отвязаться от требований для установки тех или иных плагинов. Сцена настроенная с мульти-текстурой не будет работать на другом компьютере где нет этого плагина.
Я не рассматриваю то что многие пользуются сломанными версиями - это уже другой вопрос будет ) В моём случае будет всё работать на самых стандартных установках макса. И скрипт максимально (на данный момент) будет экономить ваше время а иногда и нервы для настройки мульти-саб материалов особенно с большим количеством материалов..
У меня в скрипте нет ограничений - можете выбрать хоть 30 или 50 материалов и с помощью рандомизации получите быстро настроенные не идентичные друг к другу материалы, которые при желании можно легко уже довести руками.

Да и в целом - тут применений масса - внести разнообразие (иногда некую живность) в визуалку )

Насчёт камер, это будет не сложно сделать =)
И вам спасибо !

P.S. перечитал ваш вопрос - вам просто нужно чтоб она становилась выбранной? )
P.S.2 Может я вас не правильно понял: Вот код для max script (сохраните его на панельку)

try (destroydialog getcam) catch()
rollout getcam "GetCam" width:112 height:40
(
button btn1 "Select active cam" pos:[8,5] width:92 height:26
on btn1 pressed do
(
cam = getActiveCamera()
select cam
)
)
createDialog getcam
+1
-NiK-
А не логичней привязываясь к рендеру использовать их родные VrayMultiSubTex и для короны CoronaMultiMap? Всё равно ведь все шейдеры в определенном рендере.
Я понимаю, что в таком случае половина кода идёт в помойку, но это уже другой вопрос :)
Я кстати хотел скачать посмотреть код из интереса, но не понял где качать.

Дело в том, что одним шейдером рулить проще чем 30-50. Грубо говоря, захотите изменить глосси, так вам придется либо писать строку кода, либо юзать пакетный редактор материалов типа моего BatchMatEditor.
Если не нравится использовать плагин (он вроде бесплатный, но я могу понять нелюбовь к плагинозависимости), то мапу от рендер-движка использовать вполне безопасно.
+1
StunBreaker
VrayMultiSubTex и CoronaMultiMap - это карты а не материалы, может я не совсем понял вопроса, каким образом я буду менять глоси на 10ках разных материалах а не карт. Через эти ваши карты? )
+2
-NiK-
И правда не совсем поняли :) возможно я коряво написал.

Наверное вам не нужно объяснять функционал этих карт, но скажу на всякий случай. Это встроенные в рендер аналоги мультитекстуры, но без рандомизации по цветам. И в результате один шейдер а не десятки.
Как контролировать десятки шейдеров если я хочу изменить глосси на 0.8 или изменить что угодно еще? Если это один шейдер с мультимапой, то я просто беру и меняю глосси на 0.8, а в случае с десятками шейдеров мне нужен скрипт для банальной операции.

По моему скромному мнению этот воркфлоу (с десятками независимых материалов) неверный и переусложняет простую задачу. Подобный подход нужен в крайне редких случаях. Не припомню даже когда последний раз такой случай у меня был. Но это всё имхо.
А вопрос у меня к вам остался. Почему не мультимапы встроенные в рендер?
0
StunBreaker
Понял о чем вы, честно хотелось оставить всё именно на стандартном мульти-сабе )
0
-NiK-
Таки где его скачать? В разделе скриптов его до сих пор нет.
Вы не зашифровали код? :)
0
StunBreaker
на момент публикации блога, скрипт уже был на модерации.. Думаю завтра уже будет доступен для скачивания.
В описании блога написано сразу что скоро будет доступен для скачивания =)
+1
Uraken
http://www.scriptspot.com/3ds-max/scripts/select-active-camera - не оно?
+1
ygoryan
StunBreaker - да, просто выбрать, чтобы править. К сожалению не разобрался с вашим кодом, выдает ошибку, но спасибо!
ошибкаhttp://c2n.me/3LBEpfS 

Uraken - то что надо, поставил все работает(макс14), большое спасибо, а то задолбался через менюшки выбирать!!!
0
StunBreaker
а что пишет за ошибку? на 15ом максе работет.
0
ygoryan
Комментарий удален
+1
ygoryan
Разобрался!))
я не весь скрипт скопировал, да работает но сначала зачем то предлагает нажать кнопку.
Зачем, если других действий совершить невозможно?))
В скрипте который Uraken дал, ставишь хоткей и все. Самый оптимальный вариант.
+1
StunBreaker
Там я по иному не много сделал, это маленькое окно всегда у вас открыто - на протяжение всей работы, - захотели к камере нажали кнопку. =)

про хот кей конечно удобнее )
+5
-NiK-
Изобретаете велосипед :)
Customize - Select Viewport Node
Сам такой хоткей юзаю.
0
ygoryan
дык век живи, а весь макс все равно не выучишь!)
0
Artnway
Классно, спасибо,а то я себе сделал хоткей по-топорному, просто "селект физКамера001", ибо сил уже не было каждый раз выделать камеру через селект бай нейм.
0
grdesigner
А так никто разве не выбирает? https://www.youtube.com/watch?v=2IBRSl0Ke1k 
0
StunBreaker
два клика против одного =))
0
grdesigner
Да, согласен на горячую кнопку было бы быстрей, но уже привык именно так.
0
Artnway
Не, вы что, там еще нужно прицелиться в текст, правая кнопка, в сплывающем окне пролететь на 2 сверхмышиной скорости и не вылететь за границы, бросьте сударь, слишком рисковое предприятие
+1
grdesigner
Мое дело предложить. )
+1
stuffmoscow
Нужно попробовать. Спасибо!
0
Artnway
И кстати спасибо за плагин, для работы например с растениями, когда нужно массово им изменить цветовую гамму, просто идеально.
Аве тем кто умеет програмить
0
StunBreaker
вы угадали с применением ) Удачного пользования.
0
Artnway
Где бы его скачать, пока на 3ддд не появился)
0
StunBreaker
завтра уже скачаете - на 3ддд ) чуть чуть терпения =)
+1
АлЕвп
Спасибо за труд)
+1
StunBreaker
всегда пожалуйста =)
+1
StunBreaker
Скрипт прошёл модерацию =)
https://3ddd.ru/3dmodels/show/multi_sub_cc_1_0 
+1
volo.dp.ua
Нуууууу.... блин, чувак, работа просто титаническая! Ты красава!
Хотя лично я не уверен что буду использовать, но просмотрев скажу что нереально круто!)))
0
StunBreaker
спасибо ! работа была реально сложной, одни лишь тесты багов заняли неделю )
+1
volo.dp.ua
Успехов в следующих проектах!)
0
giglen
я конечно извиняюсь, а Material By Element?)
объясню. Вешаешь этот модификатор на объект (такой же, как в видосе), он назначает рандомные маты и создает под них Multisub Object. После этого выбираешь нужный элемент, тыкаешь выделить все элементы с тем же номером, выделяются рандомносозданные плашки. Uvw на них, Edit Poly, выбираешь следующий, uvw и так далее. итого 1й текстурой дерева можно разрисовать весь пол в 2 секи
+1
-NiK-
Ваш пример не повторяет функционал скрипта.
Функционал скрипта повторяет мультитекстура :) Почему зависимость от плагина плохо, а зависимость от скрипта хорошо, это уже другой вопрос.
0
StunBreaker
Я конечно тоже извиняюсь, не понимаю для чего вы одну из функций моего скрипта - мне же и рассказываете =)
И к чему вообще сказано в целом?

Давайте я вам объясню лучше - у каждого полигона в эдитабл поле(и других редактируемых сетках) по умолчанию Material ID равен 1.. Это связанно с тем что по умолчанию вы применяете один материал к объекту.. Как только вы примените к какому-либо полигону этого объекта другой материал, то Material ID у этого полигона изменится. Именно эти ID отвечают за номер материала который будет применен к полигону либо элементу .

Модификатор MaterialByElement внутри своей процедуры генерирует случайные те самые Material ID по разным параметрам - он не назначает ни маты ни уж тем более не создаёт мульти саб объект..

А дальше я вообще потерял логику комментария, обычно если вы хотите поправить автора - то это делается либо в лучшую сторону работы, либо в стабильность, либо в потраченное меньшее время..

И вот я думаю как связь между всем этим?

p.s. и вас ждет большое разочарование как только вы попробуете применить этот модификатор на группу объектов( создайте 10-20 копий боксов или сфер = добавьте всё это в группу)
0
UFO
Интересный скрипт, спасибо, заберу себе в копилочку!
0
StunBreaker
пользуйтесь на здоровье ! )
+1
mamaelaramy
Во-первых спасибо автору за труд, очень круто. Во-вторых возможно это то, аналоги чего так долго искал в сети. Итак вопрос - Если Вам необходимо затекстурить, допустим, большую стену сложной формы, с разноразмерными плитами покрытия. Вы её отмоделили, а затем сможете ли Вы с помощью Вашего скрипта разбросать по этим блокам, из которых состоит стена, разные заранее подготовленные текстурки по аналогии с флоргенератор+мультитекстура, с разницей лишь в том, что размеры и форму составных частей стены моделируете Вы сами(вместо того чтоб делать громосткую текстуру для всей стены) ?Был бы очень признателен автору за ответ.
+1
StunBreaker
Приветствую !
Если я вас правильно понял, стена состоит из множества 3д панелей, они могут быть в группе объектов, либо могут быть "приатаченны" все к одному объекту (Мульти-Объект).. скрипт сработает правильно в обоих случаях. )
+1
mamaelaramy
Я конечно новичок, работаю немногим больше полугода на Вашей кухне, но есть мнение, что если Вы ОБ ЭТОМ запишите отдельный урок, с наглядной алгоритмикой действий, то очень многие пересядут с флоргенератора на Ваш аналог т.к. в этом случае Ваш скрипт куда более гибкий и не даёт крэш в случае сложных форм.Просто в паркетных делах есть крутые аналоги, а в делах отделки сложных вертикальных покрытий Вы можете легко задоминировать, за такое и задонатить не лень, но это уже другая история. Спасибо Вам и удачи.
+1
StunBreaker
Спасибо за отзыв, очень приятно ) В принципе есть видео урок по работе этого скрипта он был в описании,

Floor Designer скрипт: https://www.youtube.com/watch?v=VOIlkyR_msg 

Multi_Sub_CC скрипт: https://www.youtube.com/watch?v=Nz_71ISpTak