Render.ru

Как сделать поворот объекта равным значению слайдера?

CyberHunter

Мастер
Рейтинг
106
#1
Понимаю что вопрос простецкий, но с прогграмированием я никогда не дружил, попробовал поковырять хэлп, но быстро вникнуть не смог, а время не терпит.

Задача: привязать поворот хэлпера к слайдеру, чтобы значения поворота были равны значению слайдера.
 

CyberHunter

Мастер
Рейтинг
106
#3
Видимо я не достаточно подробно описал проблему.

Задача не в самом факте привязки, WireParameter я немного освоил, а в соответствии значений слайдера и угла поворота, т.к. по умолчанию при небольшом передвижении слайдера объект успевает провернуться на несколько раз вокруг оси.

На сколько я понимаю нужно написать некое выражение в Expression. в этом и загвоздка.

Вот кусок из хэлпа наиболее похожий на мой вопрос, но самостоятельно разобраться как адаптировать этот мануал к своей проблеме я не смог.

A user asked:
I want to create a simple expression that will rotate an object based on the current time.

Answer:
You can assign a Float Script Controller to the respective rotation sub-controller and use the currentTime global variable to get the time.

For example,

if you want to rotate the object about its X axis, you should assign a Float Script controller to the .rotation.x_rotation.controller property:

obj = Teapot()

obj.rotation.x_rotation.controller = Float_Script()

obj.rotation.x_rotation.controller.script = "currentTime"



This will rotate the object, but the rotation will be very fast because the time value is taken as radians, causing a full 360 degrees rotation every 6.28 frames!

To take the time as degrees,

you can use

obj.rotation.x_rotation.controller.script = "degToRad currentTime"



This will rotate the object 360 degrees in 360 frames. You can of course multiply the result by any factor to control the exact speed,
 

Banzay

Знаток
Рейтинг
35
#4
по умолчанию при небольшом передвижении слайдера объект успевает провернуться на несколько раз вокруг оси
Дело в том, что если просто приравнять эти значения, то слайдер будет задавать угол поворота в радианах, а не в градусах.
Следовательно, нужно разделить параметр Value на 57,3 или на (180/3,14) для большей точности :)
 

Вложения

CyberHunter

Мастер
Рейтинг
106
#5
Большое спасибо!
Оказалось если делать связь двусторонней (как я обычно делал), то эта связка работает не адекватно...
 
Сверху