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

вопрос по скриптописанию

Тема в разделе "Maya", создана пользователем AlexFecit, 30 сен 2011.

Модераторы: Dark™, Skif
  1. Алексей Петровский

    Алексей Петровский Знаток

    С нами с:
    03.05.2006
    Сообщения:
    184
    Симпатии:
    0
    Баллы:
    55
    Итак, вот какой вопрос: можно ли сделать так, чтобы скрипт начинал выполняться при проигрывании анимации или допустим выполнялся в каждом кадре при проигрывании анимации, как-то отслеживал текущий кадр. Я знаю что это в принципе делают экспрешены, но их функционала мне не достаточно(мне нужно создавать объекты и переводить их в nCloth).
     
  2. Алексей Петровский

    Алексей Петровский Знаток

    С нами с:
    03.05.2006
    Сообщения:
    184
    Симпатии:
    0
    Баллы:
    55
    И еще уж заодно сюда: как занести в массив местоположение всех точек объекта, а потом их оттуда прочитать?
     
  3. minstrel

    minstrel Знаток

    С нами с:
    10.01.2009
    Сообщения:
    120
    Симпатии:
    1
    Баллы:
    26
    можно сделать scriptJob на событие timeChanged.

    ответ на второй вопрос: если пользуешься Мелом, то заноси по три числа в одномерный массив.
    например, 0 0 0 1 2 3 4 5 6... и считывай элементы по три (x,y,z координаты для каждой вершины).
     
  4. Алексей Петровский

    Алексей Петровский Знаток

    С нами с:
    03.05.2006
    Сообщения:
    184
    Симпатии:
    0
    Баллы:
    55
    спасибо, но задавая эти вопросы, я надеялся увидеть конкретные примеры, кусочки кода, честно говоря, потому что синтаксис интересует меня чуть ли не в первую очередь)
     
  5. iNOD

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

    С нами с:
    10.11.2009
    Сообщения:
    631
    Симпатии:
    2
    Баллы:
    19
    Выделяешь в окне объект и запускаешь этот скрипт

    Код:
    expression -s "if (time != 0)\ntest02"  -o "" -ae 1 -uc all ;
    global proc test02()
    {
    string $testsphere[] = `ls -sl`;
    int $ty = rand (0, 10);
    setAttr ($testsphere[0] + ".translateY") $ty;
    }
    Скрипт создает экспрешон который выполняет скрипт что ниже global proc
     
  6. iNOD

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

    С нами с:
    10.11.2009
    Сообщения:
    631
    Симпатии:
    2
    Баллы:
    19
    Вот второй скрипт.

    Код:
    string $copyVertex = `window -t "CV"`;
    columnLayout;   
        button -label "copy" -w 100 -c vertexCopy;    
        button -label "paste" -w 100 -c vertexTo;
    showWindow;
    
    global proc vertexCopy()
    {
    global string $vts[];
    $vts = `ls -sl -flatten`;
    }
    
    global proc vertexTo()
    {
    string $vtt[] = `ls -sl -flatten`;
    int $y;
    int $i = 0;
    for ($y in $vtt)
        {
        global string $vts[];
        float $d[] = `xform -ws -q -t $vts[$i]`;
        select -r $vtt[$i];
        xform -ws -t $d[0] $d[1] $d[2];
        $i++;
        }
    }
    Выделяешь точки которых нужно скопировать положение нажимаешь copy за тем выбираешь точки к которым нужно присвоить значения и нажимаешь paste.

    P.S. положение точек в скрипте в глобальных координатах.
    P.S.S и учти что как ты выделяешь точки по очередности так они и будут копироваться
     
Модераторы: Dark™, Skif

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