Всем привет !
Продолжаю серию написания своих скриптов для 3d max. На этот раз хотел представить ещё один интересный скрипт - инструмент для моделирования CopyPaster.
Почему CopyPaster?
Само название говорит за себя - скрипт копирует и вставляет.. но как именно, покажу в деталях.. разберём на примерах которые я часто использую с этим скриптом..
Забегая вперёд сразу хотел настоятельно порекомендовать посмотреть быстрый видео ролик "demo". И уже после просмотра разобрать текстовое описание.
Как работает? Интерфейс.
Разберём интерфейс, первая группа - "назначение сторон".
Это делается один раз - назначаются точки сторон модели для её правой стороны, и нижней стороны..
Зачем это?
Скрипт автоматически будет подгонять длину объекта и высоту, именно для этого ему нужно знать какие точки он будет двигать. За длину отвечает длина ребра. Высота будет рассчитываться от выделенного ребра до следующего нижнего.
Попробуем на примере с окном
Выделяете точки правой стороны - жмёте кнопку "правая"
Аналогично выделяете точки нижней стороны - жмёте кнопку "нижняя"
эти точки записываются в память модели в Object Properties - UserDefined. поэтому они всегда будут доступны для чтения даже если вы потом перезапустите 3d макс c сохраненным проектом.
Обратите внимание в самом низу окна скрипта имеется лэйбл - "Статус объектов", который всегда скажет - какие стороны вы указали у выделенного вами объекта.
Так же цвет кнопок будет говорить о том же, если красный - не указана сторона / зеленый - уже назначено.
Локальный пивот должен быть направлен осью Z как на картинке
После чего добавляем эту модель в список использованных скриптом.
Подготовка модели на этом завершена.
Теперь о самом интересном..
Работая в Editable Poly с вашей болванкой(моделью), выделяем нужную нам грань, или несколько граней. указываем количество копий на эту грань и жмём "создать".
Видим что произошло копирование объектов на каждую выделенную грань, автоматически корректируя длину объекта сдвигая точки сторон.
Одна копия - делает одну копию на длину грани
Две копии уже будут делить длину грани на количество копий.
Так же скрипт автоматически поворачивает вашу копию под локальный угол выбранной грани.
Вы можете так же быстро переключаться к моделям которые будете использовать, просто выделите нужную модель в списке.
В настройках есть несколько кнопок и флажков:
"Удалить полигон" - будет автоматически удалять полигон под выделенной гранью..
Важно советую не резать "дырки" вручную например под окно, как раз для этого удобно использовать автоматическое удаление..
пример:
Выделяем "луп" граней. Жмём галочку "удалять полигон" и жмём "Создать"
Создались окна на каждом ребре.
Если сдвинуть их вниз - видим что под ними нет полигонов..
Переключатель Local отступ минимум и максимум. Ставит вашу модель относительно её глубины на минимум или максимум.
Минимум
Максимум
Кнопка "Удалить" работает аналогично как Ctrl+Z со множеством действиями отмены до самого первого объекта (настоятельно рекомендую не использовать Ctrl+Z )..
Так же зашивает дыры(если они удалялись флажком "Удалить полигон".
Material ID можно включить флажком - назначая для объектов которые будут созданы их Material ID.
В случае с моделью окна на неё было назначено два материала, белый пластик и стекло.. Для таких типов объектов оставляем Material ID выключенным.