Макроскрипт для фасок в 3DS Max
В одном из прошлых постов я ругал Autodesk за баг в их модификаторе Chamfer - он задавал исправленные нормали для фасок на предпросмотре, но при сохранении терял эту информацию. Так вот, поскольку ошибку они так и не исправили, пришлось решать проблему своими силами)
Сразу уточню, что вникал в maxscript методом научного тыка, и скорее всего это тот еще быдлокод =)
Представляю вашему вниманию простенький макрос, объединяющий в себе упомянутый в том же посте Noors Simple Average Normals с модификатором Chamfer: WeightedChamfer (редактируется простым блокнотом или Notepad++)
Вот что он делает:
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
3K постов6.5K подписчиков
Правила сообщества
• Посты должны соответствовать тематике cообщества.
• Не допускается спам и нарушение правил сайта pikabu.