Новости • Форум • Помощь • Поиск • Участники • Календарь • База |
Гость ( Вход | Регистрация ) | Выслать повторно письмо для активации |
Страницы: (16) [1] 2 3 ... Последняя » ( Перейти к первому непрочитанному сообщению ) | Ответ Новая тема |
Gescort Профиль Статус: слон Группа: Заслуженные артисты Рейтинг: 3 |
На фоне обсуждения не комплексности инструментов в кси решил покопаться в своих закромах и выложить некоторые скрипты, позволяющие комплексно объединить некоторые инструменты и команды в более функциональные. Также в дальнейшем буду выкладывать в этой теме всякую полезную мелочь, для которой нет смысла заводить отдельной темы.
Все скрипты в этом блоке на Питоне, переписывал всякое свое старье, чтобы попривыкнуть к синтаксису. Многие скрипты до банального просты, но тем не менее функциональны. Думаю кому-нибудь будут полезны. Не стал упаковывать в аддон, чтобы было проще выкинуть оттуда лишнее, просто закиньте распакованную папку в c:\Users\[Имя_Пользователя]\Autodesk\Softimage_2015\Addons\ и перезапустите кси. После установки повесить на хоткеи, либо на кнопки (искать по одноименным названиям), в меню никуда не выводил, чтобы зря не засорять место. Скачать здесь: https://www.dropbox.com/s/pvir88up7zfdsvs/CustomTools.zip И краткое описание что для чего: • alignPivotByObject и orientPivot Переработанный скрипт (часть скрипта) от Andrew Skoblyanoff. alignPivotByObject первый выравнивает позицию и положение пивота относительно другого объекта. Второй комплексный — если выделен объект, то выравнивает пивот относительно поворота другого объекта без смещения. Если выделен компонент (points, edges, poly), то выравнивает относительно компонентов. • bevelSIUnits Вызывает обычный bevel и устанавливает в качестве units - SI Units, что позволяет по умолчанию использовать понятные единицы измерения. • cleanUpPoints Есть старый одноименный vbs скрипт, который удаляет «лишние» поинты с edges (когда к одному point примыкают только два edges), но у меня с ним были какие-то проблемы, переписал свой. Работает для группы выделенных мешей — очищает все возможные «лишние» поинты. Либо для выделенных компонентов одного меша (points, edges, poly), удаляет все «лишние» поинты только среди выделения. • complexBridge Объединенные операции, запускаемые с одного хоткея (кнопки). Для выделенных мешей вызывает meshMerge в режиме blend. Для edges вызывает BridgeEdges. Для points — WeldEdges (по сути почти тот же BridgeEdges для edges). Для polygons — BridgePolygon. По сути все инструменты и есть различные разновидности бриджа, но по умолчанию разбросаны в 4 разные действия. • complexEdgeRaycastSelect и complexEdgeSelect Есть смысл заменить стандартные хоткеи I и E, для выделения edges. При выделенном меше активирует (Raycast) EdgeSelTool, т.е. стандартное выделение для edges, при выделенных curves — subCurveSelect, т.е. не нужно лишний раз тянуться в фильтры выделения, все работает с привычных кнопок I и E. • complexExtrude Для выделенных polygons вызывает ExtrudeComponentNormal, т.е. экструд по нормале, для выделенных curves — ExtrusionAlongAxis, т.е. создает из них меш экструзией вдоль осей. • complexFilterPoint Вызывает FilterPoints независимо от того, какие компоненты (points, edges, poly) или меш выделены. Стандартный работает только с выделенными поинтами или мешем. • curveExtract Извлекает выделенные edges или subcurves. По умолчанию это две разные команды. • environment Вызывает renderTree с environment. Для работы не должно быть открытых других renderTree • toggleSurround Переключает режим выделения для прямоугольного выделения «выделять только обведенные poly/edges», либо все poly/edges, по которым прошло выделение (как в максе). По умолчанию в кси это две разные галки. |
Gescort Профиль Статус: слон Группа: Заслуженные артисты Рейтинг: 3 |
И еще одна безделушка, которая мне так и не пригодилась((( Вдруг может кто найдет ей у себя применение. Изначально сделал на айсе, но понял, что делает не совсем то, что хотел. Переделал под оператор, но и здесь вышло немного не то, т.к. изначально не до конца понял задачу. В итоге бросил оператор на этой стадии. Собственно рабочий, но узкоспециализированный, где применить просто так хз.
Оператор, вешается на curve, деформируя ее по формуле затухающих колебаний. Для ровной кривой желательно, чтобы на ней было достаточное количество точек. Может быть анимирована при параметре timeSpeed больше 0. Деформирует по Y координате. Все остальное должно быть понятно из параметров и сопровождающего видео. Скачать здесь: https://www.dropbox.com/s/08polfqz8kkbrl9/D...edWave.xsiaddon Для запуска в скрипт эдиторе применить к curve: Application.ApplyDampedWave() |
/voo-doo/ Профиль Статус: три дэ бугор Группа: Заслуженные артисты Рейтинг: 7 |
Gescort
Простите, а родной вейв чем не угодил ? :) |
Gescort Профиль Статус: слон Группа: Заслуженные артисты Рейтинг: 3 |
/voo-doo/, родной вейв выстраивает профиль волны по FCurve, в то время, как мой dampedWave полностью создает параметрические затухания в колеблющейся волне.
Изначально я хотел подавать в него осцилографические колебания звукового файла, но немного не правильно связал параметры продольных, поперечных колебаний и время, по крайней мере для того результата, который хотел изначально получить. |
Gescort Профиль Статус: слон Группа: Заслуженные артисты Рейтинг: 3 |
Еще мелкий скрипт для оптимизации инструментов - complexExtract (в догонку к предыдущим CustomTools). Объединяет действия: для выделенных полигонов - extractPolygons(keep), для выделенных edges extrctFromEdges, для выделенных curves и subcurves - extractFromSubcurves, т.е. один хоткей для трех схожих действий.
Скачать: https://www.dropbox.com/s/h5xspoyvs8s82fa/c...xtractPlugin.py |
grief93 Профиль Статус: слон Группа: Артисты Рейтинг: 0 |
Адаптировал:
complexBridgePlugin.py orientPivotPlugin.py toggleSurroundPlugin.py очень полезные, спс :> |
Bravlin Pechatnik Профиль Статус: слон Группа: Артисты Рейтинг: 2 |
оО вот ведь блин !!! И как я это прошляпил. Ты мне освободил 3 кнопки, спасибо ))) - orientPivot сразу всё встало на места когда переименовал этот скрипт в MCP_PickCenterReference - complexBridge теперь не нужна страшная конструкция из CTRL+SHIFT+ALT+E ))) |
||
Gescort Профиль Статус: слон Группа: Заслуженные артисты Рейтинг: 3 |
Часто использую операцию MoveCenterToBBox с последующим смещением центра до минимального значения по Y для объекта. Чаще всего это нужно для объектов, которые затем необходимо разместить на плоскости (всякие домики, деревья и т.д.), где удобно иметь центр «не в центре», поэтому объединил эту операцию в один комплексный скрипт - dropCenterToBBox.
Для выделенных объектов сразу сбрасывает центр «по центру» + minY координате, для выделенных points, edges, polygons - по центру + минимальной координате по оси Y выделенных точек. Работает сразу для нескольких выделенных мешей. И видео для полной наглядности: Скачать здесь: https://www.dropbox.com/s/w4qzana0dfq1nyq/d...ToBBoxPlugin.py В аддон снова не пакую, поэтому скрипт закинуть в c:\Users\[Имя_Пользователя]\Autodesk\Softimage_[версия_кси]\Data\Scripts\, либо куда-нибудь в аддоны, кому как удобно. |
Gescort Профиль Статус: слон Группа: Заслуженные артисты Рейтинг: 3 |
Попробовал заюзать последний скрипт MoveCenterToBBox в полевых условиях и понял, что пока лучше в доработку, т.к. на больших мешах при данных алгоритмах работает слишком долго.
Позже переделаю. |
eistan Профиль Статус: леонардо Группа: Заслуженные артисты Рейтинг: 2 |
полезный скриптец! спасибо! на кнопку повешу :good:
|
Gescort Профиль Статус: слон Группа: Заслуженные артисты Рейтинг: 3 |
Довел до ума скрипт dropCenterToBBoxPlugin.py, теперь свободно (на сколько это возможно) работает в многополигональных объектах, не выдает ошибок в моделях. Дополнительно сделал сброс pivot'a и pivotCompensation, neutralPose не затрагивается.
Осталось побочное действие в виде фриза вращения объекта, но пока даже не могу сказать, есть ли смысл его компенсировать и восстанавливать в положение, которое у него было изначально. При необходимости в дальнейшем можно будет доработать. Также работает как и изначально с группой выделенных объектов и выделением компонентов в меше (points, edges, polygons). Скачать: https://www.dropbox.com/s/w4qzana0dfq1nyq/d...ToBBoxPlugin.py |
Bravlin Pechatnik Профиль Статус: слон Группа: Артисты Рейтинг: 2 |
Прикольная штука.
Гес если ты когда-нибудь сделаешь нам такой же волшебный Bevel как я тебе показывал (кажется в максе) с меня пара ящиков пива ))) |
Gescort Профиль Статус: слон Группа: Заслуженные артисты Рейтинг: 3 |
Bravlin Pechatnik, да сделаю, там не такая уж и большая проблема, просто лень что-то все за него браться. Мне сейчас почему-то прет всякой ерундой страдать и мелкую хрень делать :girl_cra:
|
Bravlin Pechatnik Профиль Статус: слон Группа: Артисты Рейтинг: 2 |
тогда может мелкая хрень с Tab'ом в PPG :declare:
|
Gescort Профиль Статус: слон Группа: Заслуженные артисты Рейтинг: 3 |
Заготовка для будущего полнофункционального инструмента по замене одних объектов другими ReplaceObjects:
На данный момент в качестве точки отсчета для замены используется Center объекта, поэтому перед заменой выставляем его либо в центр объекта, либо в необходимое произвольное. Вначале выбираем объекты для замены, затем после использования скрипта выбираем чем заменить. Вполне возможно, что подобные скрипты уже валяются, но обмозговывая идею комплексности инструментов пришел к тому, что помимо функциональности должна быть возможность быстрого использования без вызова тысячи окон и параметров, поэтому сделал его без вызова PPG и всяких глубоких и тонких настроек. Сейчас скрипт ресетит настройки пивота и ротейт, при замене у объектов сохраняется скейл исходника. В дальнейшем хочу при выборе объекта замены ввести модификаторы через Ctrl, Shift, MMB и т.д. (что позволит функция Pick) для замены с изменением скейла/без изменения, в качестве точки отсчета для замены использовать центр или смещение пивота и т.д. Здесь еще нужно будет хорошенько продумать функционал и полезность. Скачать ReplaceObjects (как есть в сыром виде, но уже рабочий): https://www.dropbox.com/s/vcpbo7os0riz00b/R...bjectsPlugin.py Также подлатал еще дыры в dropCenterToBBoxPlugin.py, пришлось выкинуть часть кода для работы с выделением компонентов, т.к. некорректно работает, если локальные координаты не совпадают с глобальными, сейчас работает только в режиме выделения полимеша. Скачать dropCenterToBBoxPlugin.py: https://www.dropbox.com/s/w4qzana0dfq1nyq/d...ToBBoxPlugin.py И попутная запчасть кода из предыдущих скриптов, resetPivotAndCenterPlugin. Работает аналогично штатному MoveCenterToBBox, но при этом дополнительно скидывает пивот, что гарантирует возвращение центра объекта в центр. Скачать resetPivotAndCenterPlugin: https://www.dropbox.com/s/11vm6wpt7l9so6u/r...CenterPlugin.py |
Страницы: (16) [1] 2 3 ... Последняя » | Ответ Новая тема |