Skip to main content
2 of 3
Refined answer
quellenform
  • 39.6k
  • 10
  • 56
  • 149

enter image description here

To rotate your object on a specific local axis, you can do the following:

  • First, convert your object into an instance (if it does not already exist as an instance).
  • Then rotate the instance with Rotate Instances time-controlled with Scene Time on the Z-axis in the local space.
  • Then rotate the instance in global space by the value $22.5°$.

Note: When you plug a value into the socket Rotation, the node expects the rotation in radians, and not in degrees!

PS: Of course you could also work with the node Transform, but for me the example using the instances seemed easier, because you can easily select the local or global space.

enter image description here


(Blender 3.1+)


Why does this not work as expected in your example?

Your screenshot shows a particularly unfavorable situation:

  • First you multiply the seconds by $2$. This is a float value. So let's assume for second $1$ that this value is then $2$.
  • Then you put this float value into a vector input, which automatically leads to the value $(2,2,2)$. But since the input is a Rotation, and angles in radians are expected here, this means a rotation of $114.598°$ per axis per second.
  • In addition, Rotate Euler does not actually work here, because no rotation axis has been specified.
  • Then, by putting the rotation into a float input of Combine XYZ, you convert it back into a float value. And in doing so, the value is divided by $3$ again.

That's the reason why you don't get a usable rotation at the end here.

quellenform
  • 39.6k
  • 10
  • 56
  • 149