23

Макроскрипт для фасок в 3DS Max

В одном из прошлых постов я ругал Autodesk за баг в их модификаторе Chamfer - он задавал исправленные нормали для фасок на предпросмотре, но при сохранении терял эту информацию. Так вот, поскольку ошибку они так и не исправили, пришлось решать проблему своими силами)

Сразу уточню, что вникал в maxscript методом научного тыка, и скорее всего это тот еще быдлокод =)


Представляю вашему вниманию простенький макрос, объединяющий в себе упомянутый в том же посте Noors Simple Average Normals с модификатором Chamfer: WeightedChamfer (редактируется простым блокнотом или Notepad++)

https://yadi.sk/d/bcZGG1ok7DSMcA

Вот что он делает:

1. Кнопка AddChamfer добавляет модификатор с заранее заданными параметрами - он влияет на все "харды".Для последующего выделения полигонов фасок им назначается 50-й id материала.

2. При нажатии Collapse модель конвертируется в Edit Poly, и нормали ломаются как и раньше. После этого происходит выделение всех фасок по material id, им назначается одна группа сглаживания, после инвертируется выделение и "жестким" граням задается другая группа сглаживания. Затем в ход идет ранее упомянутый скрипт, для которого заданы все необходимые входные данные.

Для пользователя происходящее незаметно, т.к. происходит слишком быстро, и мы просто получаем готовый результат)


Из минусов сразу хочу заметить, что данный скрипт "портит" material id полигонов, т.к. ему необходим признак, по которому он будет проводить выделение. В любом случае, при задании фасок на моделях с несколькими материалами происходит подобный баг, как минимум на стыках.


Кроме того, в зависимости от параметров единиц измерения возможно несоответствие значения в поле "Chamfer size". В моем случае исправляет это костыль под конец скрипта, если у вас тоже имеется несовпадение - менять делитель тут:

$.modifiers[#Chamfer].amount = Size.value/5

Буду рад, если подскажете более изящное решение проблемы.


***


Для установки разместите его по пути

C:\Users\<имя пользователя>\AppData\Local\Autodesk\3dsMax\<используемая версия>\ENU\usermacros

Затем в самом 3DS Max зайдите в

Customize User Intrface, во вкладке Category выберите Pikabu-Tools (ничего оригинальнее не придумалось:D ) и смело назначайте горячие клавиши для его вызова.

CGI Media

3.1K постов6.5K подписчик

Правила сообщества

• Посты должны соответствовать тематике cообщества.

• Не допускается спам и нарушение правил сайта pikabu.

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества