Новости • Форум • Помощь • Поиск • Участники • Календарь • База |
Гость ( Вход | Регистрация ) | Выслать повторно письмо для активации |
Страницы: (16) « Первая ... 5 6 [7] 8 9 ... Последняя » ( Перейти к первому непрочитанному сообщению ) | Ответ Новая тема |
eistan Профиль Статус: леонардо Группа: Заслуженные артисты Рейтинг: 2 |
Gescort а зачем нужная команда GetValue? к примеру в твоем replace скрипте она берет име обьект и плюсует к нему стринг названия координат
когда как простое
выдает тоже самое значение а все, понял) мы же тут не имя берем а координаты, просто подумал как то много текста пишется каждый раз ".kine.global.posx", мне казалось как то проще берутся координаты в одну две строчки, или есть способ сократить ? к примеру взять ".kine.global" |
||||
eistan Профиль Статус: леонардо Группа: Заслуженные артисты Рейтинг: 2 |
и еще можно ли как то таким же способом получить координаты выделенной вершины? или нескольких
|
maxFox Профиль Статус: нажиматель кнопок Группа: Элита Рейтинг: 17 |
eistan для работы с вершинами или полигонами есть объект subselection
|
eistan Профиль Статус: леонардо Группа: Заслуженные артисты Рейтинг: 2 |
maxFox не знаю что ты имел ввиду) но вопрос был про питон и как вывести строкой
вершины, полигоны или грани, вобщем нашел SubComponent, но как из него получить .kine.global.posx ? |
||
Gescort Профиль Статус: слон Группа: Заслуженные артисты Рейтинг: 3 |
eistan Большинство моих старых скриптов написаны так, как сейчас бы я писать уже точно не стал. GetValue я теперь стараюсь не пользоваться, только в тех случаях когда без этого никак не обойтись или совсем лень получать нужные данные правильно. Вот код для работы с сабкомпонентами.
maxFox а где про сабселекшн посмотреть, а то в хелпе что-то не находится или это и есть сабкомпоненты? |
||
eistan Профиль Статус: леонардо Группа: Заслуженные артисты Рейтинг: 2 |
Gescort Спасибо! то что надо! пока тренируюсь, изучаю команды, сделал такую простенькую штуку без условий, выделяем вершину, запускаем скрипт и тыкаем на обьект, он встает на вершину, раньше помню нужен был такой тулз, но не мог сделать) простой но иногда полезный, добавлю еще к нему штуки, а как кстати получить нормали с точки? чтоб еще и повернуть обьект по нормали, и конвертить это в ротейшн
|
||
Gescort Профиль Статус: слон Группа: Заслуженные артисты Рейтинг: 3 |
eistan Еще вчера не успел написать. Вот у тебя была фраза
Наверное стоит сделать пояснения по доступу к параметрам объектов. Сделал вспомагательную картинку. Итак, в сцене есть какие-либо объекты: камера, ее рут и интерест, лайт и грид. Все они будут x3dObject, сам SceneRoot тоже x3dObject. Чтобы узнать все что с ним можно сделать в хелпе SDK пробиваем этот x3dObject и перейдем на страницу: http://docs.autodesk.com/SI/2015/ENU/Softi.../X3DObject.html Сейчас интерес в свойствах Parameters и Properties. Параметры - это те значения, которые есть у исследуемого класса. Код:
Если нагляднее по моей картике, для выделенного грида (x3dObject) - это Имя объекта, кинематика, значения сабдивижн и др. Выделяем visibility и для него это весь набор чекбоксов и жругих переключалок, которые у него есть. Свойства же позволяют исследовать вложенную структуру для объекта (правда с определенной долей условности, т.к. могут быть вызваны для объекта не всегда). Код:
Для выделенного грида это kine, visibility, ambientLight, displlay и geomapprox, т.е. все квадратики с градиентом если смотреть по эксплореру + сюда же будут попадать кастомные параметры. Для выделенного кластера - его амбиентлайт и материал. Для кластера Texture_Coordinates - возможность добраться до проекций и их свойств. Возвращаясь к цитате и конкретно .kine.global.posx. Кинематикс имеет отношение к всему объекту целиком и если задача узнать координаты отдельных точек, то стоит искать их где-то глубже (хотя у тебя и был частный случай для выделения, но все равно общий принцип остается). Итак, x3dObject имеет доступ к ActivePrimitive (http://docs.autodesk.com/SI/2015/ENU/Softi.../Primitive.html) Интересного здесь ConstructionHistory, Geometry, ICETrees. ConstructionHistory дает возможность пощупать существующие операторы и все что с ними связано, ICETrees - соответственно доступ к айс-операторам. Переходим в Geometry (http://docs.autodesk.com/SI/2015/ENU/Softi...m/Geometry.html) и здесь как раз информация по поинтам, полигонам и т.д. Т.е. вся вот эта структура, которая в эксплорере, она довольно наглядно передает с программной точки зрения где что искать. Если не знаем за что браться то первым делом узнаем тип объекта с чем работаем Type, далее находим его в хелпе SDK и смотрим свойства Properties. По возможности прощупываем его Parameters и Properties, чтобы узнать что можно из него достать, ну и что там еще для него в СДК предлагается. Также что-то специфичное может быть в методах объекта. Чтобы все это более почуствовать - надо больше поработать именно с ObjectModel подходом, без использования GetValue(), который используется в ScriptModel (или как-то так оно звучит). GetValue() и SetValue() позволяют сразу брать или присваивать значения там, где это надо. Но если мы просто запускаем скрипт, то это всегда логи в скрипт эдиторе. ObjectModel логи не пишет, выполняется вроде бы быстрее. Сравнение скрипт и обжект:
Зачастую писать через ObjectModel дольше и кода больше, но зато всегда остается понятной структура и проще ориентироваться и отлаживать более сложные скрипты, т.к. отдаешь себе отчет в том что делаешь и зачем. Плюс это обязательный вариант при переходе на Си. Пока это все в голове уложилось тоже не мало времени прошло. |
||||||||||
Gescort Профиль Статус: слон Группа: Заслуженные артисты Рейтинг: 3 |
Потребовалась самому помощь - помогите разобраться как правильно сделать. Вообщем скрипт-оператор. Общая болванка кода (здесь все стандартно, но для наглядности):
Основные манипуляции (изменение геометрии) происходят в блоке Update, geomOut.Set(oGet[0], oGet[1]) я вывожу полностью готовую геометрию. В блоке Execute я создаю порты и соответственно здесь у меня есть переменная InputObjs, в которой вся входная информация. Вопрос в том, где в операторе должна храниться информация о том, с каким выделением надо работать? Допустим у меня задача что-то сделать с выделенными поликами. В Execute информацию о них я знаю спокойно. А дальше она должна куда-то присваиваться. Куда именно? in_ctxt, но тогда как и куда записать. Что-то я сильно на этом туплю и никак не получается разрулить. На кону новые полезности стоят, а на этом работа стрянет. |
||
Mr.Core Профиль Статус: - Группа: Модераторы Рейтинг: 17 | |
Gescort Профиль Статус: слон Группа: Заслуженные артисты Рейтинг: 3 |
Mr.Core И все равно возвращает None. Где я допускаю ошибку?
|
||
Mr.Core Профиль Статус: - Группа: Модераторы Рейтинг: 17 |
Gescort
тут не подскажу ничего, всегда юзердату использовал в с++ апи |
eistan Профиль Статус: леонардо Группа: Заслуженные артисты Рейтинг: 2 |
Gescort
ого, благодарствую за такое подробное разьяснение) этого хватит разбираться на долго)) что то не могу найти как через питон можно вызвать команду obj import, точнее его диалоговое окно, саму команду можно и в скрипт едиторе посмотреть |
Gescort Профиль Статус: слон Группа: Заслуженные артисты Рейтинг: 3 |
eistan Правильно, что не можешь - оно герерится на лету. Вот vbs из файла c:\Program Files\Autodesk\Softimage 2015\Application\DSScripts\importexport.vbs
Только дисплейс кажется будет нерабочим, там еще функцию нужно вставлять. А вообще если просто задача это окно быстренько вызывать, то оно в списке хоткеев есть вроде. |
||
Gescort Профиль Статус: слон Группа: Заслуженные артисты Рейтинг: 3 |
Для Bender Bending. ExplodeForBaking.
Не знаю, подходит ли реализация, сделал просто что-то похожее на то что было на видео. Итого ставим аддон, создаем горячую кнопку/клавишу. Искать в списке команд как explodeForBaking. Выделяем нужные меши и запускаем. Создается модель, в ней управляющий нуль и переносятся все выделенные меши. У модели кастомное свойство DistanceAtNull, через него управление насколько разбрасывать. Каждому мешу создается айс нода и в нее компаунд, все они завязаны на DistanceAtNull. Разлет объектов идет по экспоненте (не знаю, надо ли), т.е. ближайшие удаляются медленнее, дальние - быстрее. Чтобы убрать этот ExplodeForBaking дистанцию возвращаем на 0 и фризаем все меши или вручную удаляем из них айс ноды. Если что-то надо подправить - пиши. Скачать ExplodeForBaking: https://www.dropbox.com/s/vjfhub5znbm2an2/E...Baking.zip?dl=0 |
eistan Профиль Статус: леонардо Группа: Заслуженные артисты Рейтинг: 2 |
Gescort
ух ты, это ж та самая эксплод нода в гудине) круто! иногда полезна для текстурирования, хотя впринципе можно изолейтом обойтись, но это тоже думаю не лишней будет) |
Страницы: (16) « Первая ... 5 6 [7] 8 9 ... Последняя » | Ответ Новая тема |