0
$\begingroup$

I'm trying to figure out how to tilt the rotational axis of my globe (like the earth, 23.5 deg off center)

I would think this would utilize the Rotate Euler node as I believe that's what I'm asking for, is to rotate the euler off center, so that z axis rotation translates to a local z axis as opposed to the global axis.

I am aware of ways to do this using emptys, but would prefer a solution that doesn't require creating parent objects and the like.

Below is a screenshot of my basic setup, I feel like this should be really simple, and it's possible there is already a question asked about this, but I couldn't find it. Off screen to the right is the combine xyz plugging into the rotation of my translation node effecting the ico sphere.

Currently my ico sphere will rotate strangely, speeding up and slowing down at seemingly random times, it has something to do with my Euler node, I've fiddled around and can't figure it out, if you want a blend file I can upload.

blender screenshot

Any help is appreciated! Thanks Y'all!

$\endgroup$
2
  • $\begingroup$ i am not sure, but are you aware that you are putting seconds (which is an integer (or float)) into a vector? so you give 3 times the same value (x,y,z) = (seconds, seconds, seconds) into your rotation input (which is a vector)? maybe this causes your issues? $\endgroup$
    – Chris
    Commented Sep 6, 2022 at 2:39
  • $\begingroup$ If your question has been solved, please be so kind and mark the answer that contributed to the solution as "Accepted answer" so that this question will not continue to be displayed as unsolved. Thank you! Here you can find more information: What should I do if someone answers my question?. If you still haven't gotten a solution to your question, please be kind enough to address it. $\endgroup$
    – quellenform
    Commented Oct 24, 2022 at 9:31

1 Answer 1

1
$\begingroup$

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 $23.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.

$\endgroup$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .