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

Независимое движение joints

Тема в разделе "Maya", создана пользователем Юрий., 4 апр 2006.

Модераторы: Dark™, Skif
  1. Юрий.

    Юрий. Активный участник

    С нами с:
    27.03.2006
    Сообщения:
    44
    Симпатии:
    0
    Баллы:
    5
    Всем добрый день!
    И снова вопрос про joints. Вводная - всё нижеперечисленное производится с помощью координат и MEL. Представим себе что есть 2 узла и "кость" между ними - они представляют "локтевую" часть. От одного из узлов отходят 5 "костей" с узлами на концах - "пальцы". Каждые соседние узлы связаны между собой IK handles. Движение "пальцев" осуществляется с помощью IK handles. Ибо когда я двигаю узлы, то трудно контролировать длину кости "пальца".
    Вопрос - как "развязать" между собой IKhandles "пальцев", чтобы при движении одного эффектора не двигались бы остальные "пальцы", т.е. не вращался бы узел, к которому приклеплены несколько управляющих пальцами IKhandles. Или - как зафиксировать длину кости так, чтобы можно было бы перемещать концевой узел по координатам (которые априори не требуют изменения длины связи) и при этом не озменялась бы её длина, т.е. перемещение из А в Б осуществлялось бы исключительно вращением?

     
  2. Юрий.

    Юрий. Активный участник

    С нами с:
    27.03.2006
    Сообщения:
    44
    Симпатии:
    0
    Баллы:
    5
    Есть подозрение, что для контроля длины кости можно ввести ещё один атрибут и вычислять его на каждом фрейме. Пока не получается это сделать.
     
  3. nemyax

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

    С нами с:
    20.04.2005
    Сообщения:
    430
    Симпатии:
    2
    Баллы:
    16
    Создать для каждого "пальца" свой собственный корневой джойнт в том же месте, где "запястье". Сделать эти новые джойнты потомками "запястья". Переназначить IK handles.
     
  4. Юрий.

    Юрий. Активный участник

    С нами с:
    27.03.2006
    Сообщения:
    44
    Симпатии:
    0
    Баллы:
    5
    Это понятно. Спасибо. Но не хотелось бы нагружать и без того перегруженную сцену. Да и ответвлений у меня - до чёрта. Может, как нибудь по другому можно?
     
  5. nemyax

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

    С нами с:
    20.04.2005
    Сообщения:
    430
    Симпатии:
    2
    Баллы:
    16
    Вряд ли другой способ будет просчитываться быстрее, чем один лишний джойнт на щупальце. Да и как по-другому? Экспрешеном? Это тоже нода...
     
  6. Юрий.

    Юрий. Активный участник

    С нами с:
    27.03.2006
    Сообщения:
    44
    Симпатии:
    0
    Баллы:
    5
    Да, вот думаю про Экспрешн. Добавлять узлы в нашу модель ну очень бы не хотелось.
    Написал Экспрешн:

    float $len;
    float $prev[];
    float $le[];
    $prev=`joint -q -a -p joint3`;
    $le=`joint -q -a -p joint4`;
    //print $le[1];
    float $x;
    float $y;
    float $z;
    $x=$le[0]-$prev[0];
    $y=$le[1]-$prev[1];
    $z=$le[2]-$prev[2];
    $len=sqrt(($x*$x)+($y*$y)+($z*$z));
    print $len;
    joint4.Length=$len;

    Да вот не знаю, как поставить лимиты на атрибут joint4.Length. И будет ли при этом Maya искать возможные пути достижения заданной координаты с помощью вращения?
     
  7. tadpole

    tadpole Знаток

    С нами с:
    12.08.2005
    Сообщения:
    712
    Симпатии:
    1
    Баллы:
    24
    почитай Криса Мараффи, там все разжевано до тупизма...
     
  8. Юрий.

    Юрий. Активный участник

    С нами с:
    27.03.2006
    Сообщения:
    44
    Симпатии:
    0
    Баллы:
    5
    Хм, а не могли бы Вы мне дать ссылку.
     
Модераторы: Dark™, Skif

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