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

Анимация вращающегося винта

Тема в разделе "Maya", создана пользователем Bad Sid, 29 май 2009.

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

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

    С нами с:
    01.02.2007
    Сообщения:
    305
    Симпатии:
    0
    Баллы:
    13
    К примеру я делаю винт самолета (корабля, да чего угодно) я хочу чтобы он вращался без моей помощи, логично написать простой экспрешен присязать вращение или к времени или к фреймам, либо проанимировать его руками и сделать кривые повторяющемися. Но как добавить свой атрибут который будет контролировать скорость вращения (для дальнейшей его анимации) от 0 до какой то величины.
    Логично предположить что хочется иметь экстра атрибут который включает и выключает винт. Как это сделать. Может быть в моих рассуждения закралась ошибка и Вы знаете более простой способ. Подскажите. Спасибо
     
  2. V-snejok

    V-snejok Знаток

    С нами с:
    17.06.2008
    Сообщения:
    346
    Симпатии:
    0
    Баллы:
    22
    Ну примерно должо быть так - экспрешн на время, + экспрешн на скорость, переключание авто или ручного вращения, и 2 режима on и off.
     
  3. Voo

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

    С нами с:
    30.08.2006
    Сообщения:
    193
    Симпатии:
    0
    Баллы:
    14
    Для винта добавить атрибут например speed (можно по умолчанию равным 0), а на вращиние винта повесить експрешен такого типа:
    vint.rotateY+=vint.speed;
    if(vint.rotateY>=360){
    vint.rotateY=0;}

    После этого можно просто регулировать атрибут speed
     
  4. alex_alv

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

    С нами с:
    23.04.2008
    Сообщения:
    150
    Симпатии:
    0
    Баллы:
    14
    Такой экспрешн будет работать со сбоями, если speed не кратен 360.
    Для исправления, нужно либо убрать последние строки, либо заменить их на
    while(vint.rotateY>=360)vint.rotateY-=360;
    while(vint.rotateY<0)vint.rotateY+=360;

    либо заменить на vint.rotateY=vint.rotateY%360 (не уверен, что будет корректно работать с отрицательными числами)
     
  5. Решатель

    Решатель Знаток

    С нами с:
    20.04.2005
    Сообщения:
    1.413
    Симпатии:
    0
    Баллы:
    44
    Зачем экспрешн? Анимировать двумя ключами и поставить кривой "cycle with offset"...
     
  6. Bad Sid

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

    С нами с:
    01.02.2007
    Сообщения:
    305
    Симпатии:
    0
    Баллы:
    13
    А если я к примеру захочу поменять скорость вращения или скажем остановить его что тогда делать с cycle with offset. наверное все-таки тут экспрешен с управляющим параметром грамотнее будет.
     
  7. Juventus

    Juventus Пользователь сайта

    С нами с:
    05.02.2009
    Сообщения:
    3
    Симпатии:
    0
    Баллы:
    2
    А не проще сделать такой экспрешен? Делаеш атрибут для винта "speed" (min - 0; max - 10 (например); default - 1), потом экспрешен для rotate "vint.rotateZ=frame*vint.speed;" Можно управлять вращением винта и прекращать вращение.
     
  8. (SG)Liber

    (SG)Liber Знаток

    С нами с:
    27.09.2006
    Сообщения:
    219
    Симпатии:
    0
    Баллы:
    30
  9. alex_alv

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

    С нами с:
    23.04.2008
    Сообщения:
    150
    Симпатии:
    0
    Баллы:
    14
    Нельзя, потому что во время изенения скороси в НЕнулевом кадре, винт будет очень быстро крутиться (может даже назад), чтобы нагнать свою позицию в условиях новой скрости. Т. е. если скорость не анимировать (а задать определенное значение и не трогать его), то такой экспрешн будет работать. Но при изменении скорости - будет глючить.
     
Модераторы: Dark™, Skif

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