Render.ru

Надеюсь ,что маленькая но проблема !!! (rotate ,at

Maxzzr400

Пользователь сайта
Рейтинг
2
#1
Всем привет !!!
Возникла проблема с решением достаточно простой задачи, нужно было сделать коробку передач на основе шестерней, решил использовать скрипты , и все было бы хорошо если не одна проблема , при простой передачи вращения, типа "угол вращение ведущей" =" угол вращения ведомой умножен на соотношения количества их зубов" не подошел , так как при переключении передачи происходит скачек как будто вся система все предыдущее время вращалась на текущей передаче, пошел другим путем , решил воспользоваться командой rotate <имя объекта> <угол>
и опять ....
Проблема в том что теперь ведомый вал крутится примерно в 3 раза быстрее ,думал но то ,что беру разницу между кадрами , а процедура вызывается при каждом тике , попробовал тики, вообще вращение отсутствует .....

ПРИСОВЕТУЙТЕ ЧТО-ТО

Приведу пример кода
(скрипт вспомогательного объекта)

dr1= at time f $Driver_dummy.rotation.controller.'Y Rotation'
dr2= at time (f-1) $Driver_dummy.rotation.controller.'Y Rotation'
temp= dr1-dr2 -- Вычисляем дельту угла ведущего вала

if 0 == gear_pos then k=0 -- проверяем текущую активную передачу
else
if 1 == gear_pos then k=temp*0.44
else
if 2 == gear_pos then k=temp*0.81
else
if 3 == gear_pos then k=temp*1.25
else
if 4 == gear_pos then k=temp*2.13

rot_ang = eulerangles 0 k 0 -- вращаем ведомый вал
rot_obj=$Val_2
rotate rot_obj rot_ang
 

Вложения

ASK'R

Активный участник
Рейтинг
5
#2
"при переключении передачи происходит скачек как будто вся система все предыдущее время вращалась на текущей передаче" - почему бы не взять последнее значение до перемены передачи и плясать от него
 
Сверху