1
$\begingroup$

Here is a simple nodeTree that rotates a cube around Z axis. Can it be easily changed so that we could explicitly control the rotation speed instead of the angle of rotation?

enter image description here

$\endgroup$
0
$\begingroup$

TL;DR: The B value in your Math node does that.

Your current node setup is quite simple: It picks up the current frame, multiplies it by B, and sets the result as your object's Z rotation value.

If you think of it, the "speed" in which your objects rotate is basically B for each frame. Depending on your animation's frame rate, you can get easily a value per second.

Let's say you animate on 24fps, then its B*24. Here 5*24 = 120° per second.

Now if you want an explicit representation of that in your node tree, it's simple, you just have to make so that you give how mutch degree per second you want and it divides it automatically by you animation's FPS and sends the result to your B value.

  • Select your math node, hit ⇧ ShiftD to duplicate it and move it to the left.
  • Set your new Math node to Divide and connect it to the B value of your first Math node.
  • Press ⇧ ShiftA → Number → Float. Connect it to the Divide's A value. This will be your degrees per second.
  • Press ⇧ ShiftD to duplicate that float node and connect it to the Divide's B value. This will be your animation's FPS.

Unfortunately, I can't find a way to make it automatically pick up what's used as frame rate in your scene settings so you will have to set it manually. But here's the result:

enter image description here

Notice you can add label to your nodes by selecting them and opening the sidebar with N.

For animating values through time in animation nodes, see this post.

| improve this answer | |
$\endgroup$
  • $\begingroup$ Thank you for a detailed answer, but I would like to directly control the speed of rotation, not the angle of rotation. For example, with your nodeTree, if we change speed on frame 100, it will essentially recalculate the rotation angle as if the new speed was in effect since frame 0. $\endgroup$ – user1566515 Nov 7 '19 at 16:56
  • $\begingroup$ Tell me what is speed then? $\endgroup$ – L0Lock Nov 7 '19 at 21:43
  • $\begingroup$ Speed is the rate of the change of some variable. For example, if you have an object moving along X, it can have speed v(t), where t is time. Then to find x(t) you would need to integrate v(t) over t. en.wikipedia.org/wiki/Speed#Instantaneous_speed $\endgroup$ – user1566515 Nov 8 '19 at 0:28
  • $\begingroup$ As I see it my node tree would give you 120°/s I'm not sure who else we could do. As for the "reset on change" thing, I don't know how to manage that. I guess it would require to kind of "add" the rotation to the object instead to set a rotation that grow over time. But there's is only nodes to set transform values AFAIK. $\endgroup$ – L0Lock Nov 9 '19 at 2:03

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.