0
$\begingroup$

Here is what I have until now:

  1. I open a new "general" file.
  2. I remove the cube.
  3. I create Suzanne.
  4. I change Suzanne's location to <0,0,3>. She is now looking to the left.
  5. I set the origin to the 3D cursor (which is at <0,0,0>)
  6. I choose rotation type "Axis Angle" and put <45°, 1,0,0> (she moved in space but now looks down ).
  7. I set the origin back to geometry.
  8. I set the rotation back at <0°,1,0,0> (suzanne is now at the same position but looks right up to the left)

What is my question: How can i do this operation is one step? Why do I need this operation to be done: I want to create, for pedagogical purposes, a rotating cube, with the vertices labeled by text-numbers, but I want the numbers to face de user at all times. I could write a python script that does this but what will the animation interpolate between keyframes?

$\endgroup$

1 Answer 1

1
$\begingroup$

There are a number of different techniques. Here, where you're concerned about animation and interpolation, it sounds like you want to inherit location from a rotating object, without inheriting rotation. One easy way to get this is to use object constraints. This doesn't involve Python, but it doesn't sound like you're married to a Python solution (and usually, when Blender supports something without custom code, I prefer the codeless solution; "once and once only" is the coding principle here: don't reinvent something that already exists.)

Make a Suzanne and two empties. Move one of the empties to Z=3, then parent it to the other empty. Now, give Suzanne an object constraint, "copy location", on default settings, and set the target to the elevated, child empty. She copies the location of that empty without copying its rotation.

Try rotating the parent empty around. You'll see that Suzanne rotates around the location of this parent empty but doesn't change her facing. (If you'd like, you can still rotate Suzanne herself to change the facing.)

enter image description here

I want the numbers to face de user at all times

This is often called "billboarding", and there are other constraints that you can use to achieve this. Here, my text object has a tracking constraint to track the camera:

enter image description here

We can see, on the sidebar, that the object has no transform, but because of the track-to constraint, it is pointing its Z axis at the camera and its Y axis upwards.

$\endgroup$
1
  • $\begingroup$ I opted for the second solution and it works fine. The numbers now always face the user? $\endgroup$ Commented Oct 20, 2022 at 14:05

You must log in to answer this question.

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