1. Пользоваться форумом на планшетах и телефонах стало удобнее благодаря Tapatalk

Rotate + NormalAverage

Тема в разделе "Maya", создана пользователем Prostrelov, 29 июн 2014.

Модераторы: Dark™, Skif
  1. Prostrelov

    Prostrelov Активный участник

    С нами с:
    08.05.2014
    Сообщения:
    33
    Симпатии:
    0
    Баллы:
    5
    Подскажите пожалуйста способ (скрипт\плагин\алгоритм) выравнять
    манипулятор Rotate аналогично манипуляторам Move, Scale в режиме
    NormalAverage.
    Не "SetToPoint\Edge\Face".

    Можно ли вообще получить с манипулятора ориентацию его направляющих ?

    Я пробовал получить так
    mode = cmds.manipMoveContext( 'Move', q=True, oa=True ), но
    "orientAxes" что в Global что в NormalAverage режиме неизменны.

    Если есть посоветуйте годную статью по манипуляторам.
    В тех что находил этот момент явно не освещался.
     
  2. Dark™ vip

    Dark™ Administrator Команда форума

    С нами с:
    28.10.2001
    Сообщения:
    3.110
    Симпатии:
    217
    Баллы:
    1.520
    Ориентация манипулятора Rotate завязана на локальный осях объекта.
    Есть старый трюк повернуть эти оси:
    Пустая группа, либо локатор поворачивается как надо любыми способами.
    Нужный объект делается дочерним этой группе, потом делаем ему Freeze Transofrmation - его оси выравниваются по родительским.
    Группу можно удалить, а ориентация осей останется.
    Это все легко записать в свой скрипт.
    + Можно поискать различные готовые скрипты на просторах интернета.
     
  3. Prostrelov

    Prostrelov Активный участник

    С нами с:
    08.05.2014
    Сообщения:
    33
    Симпатии:
    0
    Баллы:
    5
    То-есть получается для того что бы мне повернуть пару полигонов обьекта, мне нужно фризить всему обьекту Transformation.
    А если у меня обьект уже повёрнут и мне не желательно его фризить ?
    Видимо нужно в переменную брать его положение прежде чем фризить что бы в дальнейшем к нему вернуться, или есть какая-то команда проще что бы вернуть положение локальных осей обьекту уже повёрнутому в пространтсве.
     
  4. Skif vip

    Skif Administrator Команда форума

    С нами с:
    26.03.2004
    Сообщения:
    6.828
    Симпатии:
    417
    Баллы:
    2.787
    а зачем это вообще делать? если не секрет?
     
  5. Skif vip

    Skif Administrator Команда форума

    С нами с:
    26.03.2004
    Сообщения:
    6.828
    Симпатии:
    417
    Баллы:
    2.787
    не правильно. что вы хотите в итоге получить?
     
  6. Prostrelov

    Prostrelov Активный участник

    С нами с:
    08.05.2014
    Сообщения:
    33
    Симпатии:
    0
    Баллы:
    5
    В итоге я хочу получить тоглер, под одну кнопку:
    - включить NormalAverage для всех манипуляторов (Move,Rotate,Scale)
    - включить World для всех манипуляторов

    при этом не хотелось бы при каждом его использовании с Rotate заново выставлять направляющие у обьекта.
    ну и разумеется что бы это работало для компонентов, а не только для обьектов.

    п.с.
    если есть примеры на python'e было бы здорово глянуть.​
     
  7. Prostrelov

    Prostrelov Активный участник

    С нами с:
    08.05.2014
    Сообщения:
    33
    Симпатии:
    0
    Баллы:
    5
    Разбирал HKLocalTool.
    Работает он через локаторы.
    Строит первый в центральной точке BoundingBox'а выбранных компонент обьекта.
    Затем считает для него усреднённое значение вектора.
    Потом складывает значения центра BoundingBox со значением вектора и строит второй локатор.
    Далее через aimConstraint берёт среднее значение между двумя локаторами и поворачивает первый локатор соответственно этому значению.

    И тут я засел. Манипуляторам можно передать orientAxes.
    Но aimConstraint -aimVector возвращает локальные координаты, а не глобальные.
    То-есть для любого обьекта кроме того для которого создавался констрейн координаты возвращаемые ключом aimVector бесполезны.

    В результате у меня есть правильно повёрнутый Locator, но я не понимаю как повернуть по нему Контексты Move,Rotate,Scale.

    Подскажите плз 4 дня убил на разбор чужого MEL скрипта.
    Парентить не хочу потому и занялся припарированием HKLocalTools.

    Может в Qt есть что-то что может решить данный вопрос ?
     
  8. Покатигорошек

    Покатигорошек Активный участник

    С нами с:
    09.12.2005
    Сообщения:
    232
    Симпатии:
    3
    Баллы:
    15
    так отчего б не запарентить констрейном без офсета с последующим его удалением?
     
  9. Prostrelov

    Prostrelov Активный участник

    С нами с:
    08.05.2014
    Сообщения:
    33
    Симпатии:
    0
    Баллы:
    5
    эм. я не очень себе представляю как можно запарентить констрейном без офсета манипулятор к локатору.​
    Можешь продемонстрировать как-нибудь плз ?​
     
  10. Skif vip

    Skif Administrator Команда форума

    С нами с:
    26.03.2004
    Сообщения:
    6.828
    Симпатии:
    417
    Баллы:
    2.787
    если честно не понял вообще зачем это делать.. что делать вы написали, а зачем - нет. может есть путь проще?
     
  11. Monkibase

    Monkibase Мастер

    С нами с:
    01.09.2006
    Сообщения:
    807
    Симпатии:
    30
    Баллы:
    374
    В 2014 например, в моделинг тулкит, можно простым шорткатом поменять оси инструментов как угодно. Там как раз удобно выровнять их по кокой-нибудь грани или полигону. Какой шорткат не помню - надо хелп открыть.
     
  12. Prostrelov

    Prostrelov Активный участник

    С нами с:
    08.05.2014
    Сообщения:
    33
    Симпатии:
    0
    Баллы:
    5
    Monkibase если не ошибаюсь то оси можно было выровнять только по уже выбранному элементу. То-есть взять и выбрать ейдж по которому нужно выровнять оси , например с другой стороны куба - не получится.

    п.с.
    кстати обалденный боец ))) текстуры детальки - супер.попёр себе в коллекцию.
     
  13. Monkibase

    Monkibase Мастер

    С нами с:
    01.09.2006
    Сообщения:
    807
    Симпатии:
    30
    Баллы:
    374
    нене, вроде кнопкой D выбираешь произвольный центр, хоть на обратной стороне, а потом шифтами или альтом снапишь направления.
     
  14. Покатигорошек

    Покатигорошек Активный участник

    С нами с:
    09.12.2005
    Сообщения:
    232
    Симпатии:
    3
    Баллы:
    15

    воспринял как нежелание создавать иерархию, по-этому и предложил констрейн. а в детали поста не вдавался - уж больно похоже на какой-то рак
     
  15. Prostrelov

    Prostrelov Активный участник

    С нами с:
    08.05.2014
    Сообщения:
    33
    Симпатии:
    0
    Баллы:
    5
  16. Покатигорошек

    Покатигорошек Активный участник

    С нами с:
    09.12.2005
    Сообщения:
    232
    Симпатии:
    3
    Баллы:
    15
    трансформ компанент. локал дирекшн - игрек.
     
  17. Prostrelov

    Prostrelov Активный участник

    С нами с:
    08.05.2014
    Сообщения:
    33
    Симпатии:
    0
    Баллы:
    5
    Это не ответ на мой вопрос заданый в теме.
    Я искал способ сориентировать манипулятор Rotate так же как это происходит с отсльными манипуляторами при применении NormalAverage.
    А то что предложил ты это грубо говоря указать направления координат (вверх вниз право лево).
     
  18. Lemieux

    Lemieux Знаток

    С нами с:
    08.06.2011
    Сообщения:
    809
    Симпатии:
    74
    Баллы:
    32
    Вообще-то, покатигорошек всё правильно посоветовал. Может Вам ещё с картинками всё показать?
     
  19. Prostrelov

    Prostrelov Активный участник

    С нами с:
    08.05.2014
    Сообщения:
    33
    Симпатии:
    0
    Баллы:
    5
    если парентить с MaintainOffset[: on] куб к правильно сориентированному локатору, координаты куба не изменяются.
    если парентить с MaintainOffset[: off] куб к правильно сориентированному локатору, координаты куба не изменяются, сам куб поворачивается в соотвутствии с координатами локатора.

    Мой изначальный вопрос был:
    Подскажите пожалуйста способ (скрипт\плагин\алгоритм) выравнять
    манипулятор Rotate аналогично манипуляторам Move, Scale в режиме
    NormalAverage.
    Видимо действительно нужно показать картинки т.к. я не могу понять как указав
    манипулятору что игрек у нас наверху(слева справа внизу) мы выравняем
    манипулятор по NormalAverage.
    Или как вариант ответить чуть подробнее чем одной строкой.
     
  20. Покатигорошек

    Покатигорошек Активный участник

    С нами с:
    09.12.2005
    Сообщения:
    232
    Симпатии:
    3
    Баллы:
    15
    не мы выравниваем - майа
     
Модераторы: Dark™, Skif

Поделиться этой страницей