Render.ru

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

Bad Sid

Активный участник
Рейтинг
15
#1
К примеру я делаю винт самолета (корабля, да чего угодно) я хочу чтобы он вращался без моей помощи, логично написать простой экспрешен присязать вращение или к времени или к фреймам, либо проанимировать его руками и сделать кривые повторяющемися. Но как добавить свой атрибут который будет контролировать скорость вращения (для дальнейшей его анимации) от 0 до какой то величины.
Логично предположить что хочется иметь экстра атрибут который включает и выключает винт. Как это сделать. Может быть в моих рассуждения закралась ошибка и Вы знаете более простой способ. Подскажите. Спасибо
 

V-snejok

Знаток
Рейтинг
21
#2
Ну примерно должо быть так - экспрешн на время, + экспрешн на скорость, переключание авто или ручного вращения, и 2 режима on и off.
 

Voo

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

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

alex_alv

Активный участник
Рейтинг
11
#4
Такой экспрешн будет работать со сбоями, если speed не кратен 360.
Для исправления, нужно либо убрать последние строки, либо заменить их на
while(vint.rotateY>=360)vint.rotateY-=360;
while(vint.rotateY<0)vint.rotateY+=360;

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

Bad Sid

Активный участник
Рейтинг
15
#6
Зачем экспрешн? Анимировать двумя ключами и поставить кривой "cycle with offset"...
А если я к примеру захочу поменять скорость вращения или скажем остановить его что тогда делать с cycle with offset. наверное все-таки тут экспрешен с управляющим параметром грамотнее будет.
 

Juventus

Пользователь сайта
Рейтинг
2
#7
А не проще сделать такой экспрешен? Делаеш атрибут для винта "speed" (min - 0; max - 10 (например); default - 1), потом экспрешен для rotate "vint.rotateZ=frame*vint.speed;" Можно управлять вращением винта и прекращать вращение.
 

alex_alv

Активный участник
Рейтинг
11
#9
Нельзя, потому что во время изенения скороси в НЕнулевом кадре, винт будет очень быстро крутиться (может даже назад), чтобы нагнать свою позицию в условиях новой скрости. Т. е. если скорость не анимировать (а задать определенное значение и не трогать его), то такой экспрешн будет работать. Но при изменении скорости - будет глючить.
 
Сверху