SoftimageRu Форум -> Мелкие скрипты и разработки

Новости • Форум • Помощь • Поиск • Участники • Календарь • База


Страницы: (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, по которым прошло выделение (как в максе). По умолчанию в кси это две разные галки.
Персональное сообщениеПисьмо на e-mail пользователю
Цитировать сообщение Дата 10.04.2014 - 22:24 Top
Gescort
Профиль
Статус: слон
Группа: Заслуженные артисты
Рейтинг: 3
И еще одна безделушка, которая мне так и не пригодилась((( Вдруг может кто найдет ей у себя применение. Изначально сделал на айсе, но понял, что делает не совсем то, что хотел. Переделал под оператор, но и здесь вышло немного не то, т.к. изначально не до конца понял задачу. В итоге бросил оператор на этой стадии. Собственно рабочий, но узкоспециализированный, где применить просто так хз.
Оператор, вешается на curve, деформируя ее по формуле затухающих колебаний. Для ровной кривой желательно, чтобы на ней было достаточное количество точек.
Может быть анимирована при параметре timeSpeed больше 0. Деформирует по Y координате. Все остальное должно быть понятно из параметров и сопровождающего видео.


Скачать здесь: https://www.dropbox.com/s/08polfqz8kkbrl9/D...edWave.xsiaddon
Для запуска в скрипт эдиторе применить к curve: Application.ApplyDampedWave()
Персональное сообщениеПисьмо на e-mail пользователю
Цитировать сообщение Дата 10.04.2014 - 22:52 Top
/voo-doo/
Профиль
Статус: три дэ бугор
Группа: Заслуженные артисты
Рейтинг: 7
Gescort
Простите, а родной вейв чем не угодил ? :)
Персональное сообщениеПисьмо на e-mail пользователю
Цитировать сообщение Дата 11.04.2014 - 09:00 Top
Gescort
Профиль
Статус: слон
Группа: Заслуженные артисты
Рейтинг: 3
/voo-doo/, родной вейв выстраивает профиль волны по FCurve, в то время, как мой dampedWave полностью создает параметрические затухания в колеблющейся волне.
Изначально я хотел подавать в него осцилографические колебания звукового файла, но немного не правильно связал параметры продольных, поперечных колебаний и время, по крайней мере для того результата, который хотел изначально получить.
Персональное сообщениеПисьмо на e-mail пользователю
Цитировать сообщение Дата 11.04.2014 - 10:40 Top
Gescort
Профиль
Статус: слон
Группа: Заслуженные артисты
Рейтинг: 3
Еще мелкий скрипт для оптимизации инструментов - complexExtract (в догонку к предыдущим CustomTools). Объединяет действия: для выделенных полигонов - extractPolygons(keep), для выделенных edges extrctFromEdges, для выделенных curves и subcurves - extractFromSubcurves, т.е. один хоткей для трех схожих действий.
Скачать: https://www.dropbox.com/s/h5xspoyvs8s82fa/c...xtractPlugin.py
Персональное сообщениеПисьмо на e-mail пользователю
Цитировать сообщение Дата 18.04.2014 - 12:33 Top
grief93
Профиль
Статус: слон
Группа: Артисты
Рейтинг: 0
Адаптировал:

complexBridgePlugin.py
orientPivotPlugin.py
toggleSurroundPlugin.py

очень полезные, спс :>
Персональное сообщениеПисьмо на e-mail пользователю
Цитировать сообщение Дата 18.04.2014 - 20:03 Top
Bravlin Pechatnik
Профиль
Статус: слон
Группа: Артисты
Рейтинг: 2
Цитата
  - convertSelection и Adjacent по факту это одно и то же, только Adjacent функциональнее

оО вот ведь блин !!! И как я это прошляпил.
Ты мне освободил 3 кнопки, спасибо )))

- orientPivot сразу всё встало на места когда переименовал этот скрипт в MCP_PickCenterReference

- complexBridge теперь не нужна страшная конструкция из CTRL+SHIFT+ALT+E )))
Персональное сообщениеПисьмо на e-mail пользователю
Цитировать сообщение Дата 18.04.2014 - 22:06 Top
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\, либо куда-нибудь в аддоны, кому как удобно.
Персональное сообщениеПисьмо на e-mail пользователю
Цитировать сообщение Дата 19.04.2014 - 11:02 Top
Gescort
Профиль
Статус: слон
Группа: Заслуженные артисты
Рейтинг: 3
Попробовал заюзать последний скрипт MoveCenterToBBox в полевых условиях и понял, что пока лучше в доработку, т.к. на больших мешах при данных алгоритмах работает слишком долго.
Позже переделаю.
Персональное сообщениеПисьмо на e-mail пользователю
Цитировать сообщение Дата 19.04.2014 - 12:48 Top
eistan
Профиль
Статус: леонардо
Группа: Заслуженные артисты
Рейтинг: 2
полезный скриптец! спасибо! на кнопку повешу :good:
Персональное сообщениеПисьмо на e-mail пользователюСайт пользователяICQAOLYahooMSN
Цитировать сообщение Дата 19.04.2014 - 14:35 Top
Gescort
Профиль
Статус: слон
Группа: Заслуженные артисты
Рейтинг: 3
Довел до ума скрипт dropCenterToBBoxPlugin.py, теперь свободно (на сколько это возможно) работает в многополигональных объектах, не выдает ошибок в моделях. Дополнительно сделал сброс pivot'a и pivotCompensation, neutralPose не затрагивается.
Осталось побочное действие в виде фриза вращения объекта, но пока даже не могу сказать, есть ли смысл его компенсировать и восстанавливать в положение, которое у него было изначально. При необходимости в дальнейшем можно будет доработать.
Также работает как и изначально с группой выделенных объектов и выделением компонентов в меше (points, edges, polygons).
Скачать: https://www.dropbox.com/s/w4qzana0dfq1nyq/d...ToBBoxPlugin.py
Персональное сообщениеПисьмо на e-mail пользователю
Цитировать сообщение Дата 28.04.2014 - 16:36 Top
Bravlin Pechatnik
Профиль
Статус: слон
Группа: Артисты
Рейтинг: 2
Прикольная штука.
Гес если ты когда-нибудь сделаешь нам такой же волшебный Bevel как я тебе показывал (кажется в максе) с меня пара ящиков пива )))
Персональное сообщениеПисьмо на e-mail пользователю
Цитировать сообщение Дата 29.04.2014 - 08:16 Top
Gescort
Профиль
Статус: слон
Группа: Заслуженные артисты
Рейтинг: 3
Bravlin Pechatnik, да сделаю, там не такая уж и большая проблема, просто лень что-то все за него браться. Мне сейчас почему-то прет всякой ерундой страдать и мелкую хрень делать :girl_cra:
Персональное сообщениеПисьмо на e-mail пользователю
Цитировать сообщение Дата 29.04.2014 - 12:59 Top
Bravlin Pechatnik
Профиль
Статус: слон
Группа: Артисты
Рейтинг: 2
тогда может мелкая хрень с Tab'ом в PPG :declare:
Персональное сообщениеПисьмо на e-mail пользователю
Цитировать сообщение Дата 30.04.2014 - 09:33 Top
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
Персональное сообщениеПисьмо на e-mail пользователю
Цитировать сообщение Дата 8.05.2014 - 19:26 Top
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Страницы: (16) [1] 2 3 ... Последняя » Ответ в темуОтвет      Создание новой темыНовая тема   

 

Текстовая версия