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

Ротейт с оффсетом

Тема в разделе "Maya", создана пользователем -, 22 июл 2004.

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

    В общем как сделать чтобы ряд объектов поворачивался одной операцией. Первый например на 2 градуса, следующий на 4, следующий на 6... или например в в геометрической прогрессии ?

    Через Driven Key можно вроде только напрямую связывать 1:1 , так ?
     
  2. Ghostfly

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

    С нами с:
    31.10.2005
    Сообщения:
    461
    Симпатии:
    0
    Баллы:
    16
    скриптом. например имя одного обьекта.translateY=имя другого.translateY*2
     
  3. Guest

    Это типа как в Learning Maya про мячик ? Честно пытался сделать так же - не вышло. Попробую еще раз.
     
  4. Guest

    Не так... Путаете connect и driven кey
     
  5. mickey 1373

    mickey 1373 Знаток

    С нами с:
    21.12.2001
    Сообщения:
    461
    Симпатии:
    0
    Баллы:
    29
    //simple time offset

    string $root[];
    string $express_X;
    string $express_Y;
    string $express_Z;

    $root =`ls -sl`;

    addAttr -keyable true -ln offset -at double -dv 5 $root[0];


    //creating a text of expressions (converting strings to a text)


    $express_X = $root[1]+".rotateX = `getAttr -t (frame-"+$root[0]+".offset) "+$root[0]+".rotateX`;";

    $express_Y = $root[1]+".rotateY = `getAttr -t (frame-"+$root[0]+".offset) "+$root[0]+".rotateY`;";

    $express_Z = $root[1]+".rotateZ = `getAttr -t (frame-"+$root[0]+".offset) "+$root[0]+".rotateZ`;";


    //adding expressions


    expression -s $express_X;

    expression -s $express_Y;

    expression -s $express_Z;
     
  6. Guest

    Очень плохой экспрешн Вы написали... Использование мел-комманд в экспрешенах это очень очень дурной стиль... а использование getAttr вообще не рекомендуется....
     
  7. Guest

    А я задачку решала не дома, забыла условие, поэтому на экспрешенах сделала анимацию и колбасинг... Жалко добру пропадать... Повешу как есть :о)))

    string $expNam = "rotateX"; // имя атрибута и название эксперешена
    float $rotAn = 10; // поворот объекта за фрейм
    float $rtAn = 0; // поворот 1-ого выделенного объекта в 0 кадре
    float $delt = 30; // разница в повороте между объектами в 0 кадре
    string $my[]; //массив с названиями выделенных объектов
    $my = `ls -sl`;
    int $amount = size ($my);

    for ($i=0; $i<$amount; $i++)
    {
    string $ob = $my[$i] + "." + $expNam;
    string $obExp = "if (frame<1) {" + $ob + " = " + $rtAn + ";}" + "\n" + "else {" + $ob + " = " + $ob + "+" + $rotAn + ";};";
    // текст экспрешена
    expression -s $obExp -n $expNam; // создание экспрешена

    $rtAn = $rtAn + $delt;
    // вот оно, поворот каждого следующего выделенного объекта на какой-либо
    // градус в 0 кадре, арифметическая прогрессия, панимаешь...
    //если $rtAn = $rtAn *$delt, получится само сoбой геометрическая
    //прогрессия...
    }

    это для того, чтобы все-все эти бесконечные экспрешены убить одним махом. :о)))
    delete -all -e;

    З.Ы. Если чуть переписать можно вместо анимации в зависимости от фреймов устроить поворот объектов в зависимости от первого выделенного.
     
  8. Guest

    Спасибки, буду тестить.
     
  9. Guest

    ЭфОдин : Хорошо, пиши свой.
     
  10. Wental

    Wental Знаток

    С нами с:
    04.10.2001
    Сообщения:
    256
    Симпатии:
    0
    Баллы:
    36
    Я так и не понял а почему не драйвен кей ????!
     
Модераторы: Dark™, Skif

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