4
$\begingroup$

Here is a potential useful use case I wish for set rotation node.(just like set position node in geometry node, but for rotation).

enter image description here

In this picture, I'm using the snapping feature to face, with align rotation to target enabled, as I wish to offset my little candle 0.15m away from the location of my point. How would one make the rotation of the original point only around z axis (not x or y)? If I had a set rotation node, I would have chosen normal as input, then separate/combine vector where I would only have plug the Z component. But this node doesn't exist for whatever reason.

Do you know any other way to reproduce expected behavior in the meantime? Thanks.

$\endgroup$
3
  • $\begingroup$ I am not sure I understand your need, but I would recommend to combine a Vector Rotate Node with a Set Position node as a first guess. $\endgroup$ Commented May 22 at 15:56
  • $\begingroup$ I'm not sure how set position could help me. My goal is to place easily via the snapping tool, multiple objects such as candles, but they need to be offsetted from the original object such that they don't overlap. Their rotation should remain aligned to Z. $\endgroup$ Commented May 22 at 16:39
  • $\begingroup$ What do you mean by "Their rotation should remain aligned to Z" ? Do you mean "Their Z axis should remain aligned with the world Z axis" ? It seems to me that what you call "rotation" is "the object Z axis", but I might be wrong... $\endgroup$ Commented May 22 at 19:18

2 Answers 2

3
$\begingroup$

You can set position on vertices, because vertices have position attribute, unlike rotation, which only instances have.

Still, there is no "Set Instance Rotation" as of Blender 4.3β.

You can, however, implement one easily:

Imgur mirror (SE image hosting has problems)

  • Clear rotation by rotating in the opposite way to current rotation.
  • Rotate by the rotation you want to set.

Test:

Imgur mirror

$\endgroup$
3
$\begingroup$

We have many more options for setting the rotation instead of a simple "set rotation" node.

There is no set rotation node as of this moment, you can use vector rotate and set position together as StefLAncien commented.

enter image description here

However, I think what you want to achieve, according to your diagram, is this:

enter image description here

Where the cylinders are replaced with cones, because they are more directional. If we want them to follow the normals of the faces, we can use this setup.

enter image description here

  1. First, get the normals of the faces using Capture Attribute

  2. Instance on the faces (rather than the points), using Mesh to Points.

  3. Set the rotation by passing on the normal through Align Euler to Vector to the rotation socket of instance on points.

  4. Translate the instances from their inital position using Translate Instances.

This is the answer as to how it can be done.

Note: I agree that Blender could be well-served to have one user-friendly node that sets the rotation. AFAIK there isn't one.

I find I often set it this specific way, by face and normal, so you can create a group, a tool or mark it as an asset.

4.1+ If you can't find 'Align Euler to Vector' it is deprecated, and becomes 'Align Rotation to Vector' (version 4.1+). Also it has moved to 'utilities', along with many new rotation nodes.

enter image description here

If a candle is on top of a shelf that comes out from a wall, the shelf can be defined in relation to the wall, and the candle to the shelf.

'Rotation to Euler' (version 4.0+) sets the degree rotation of an object.This diagram shows the cones rotating from the vertice of a mesh line as a pivot point.

enter image description here

$\endgroup$
6
  • $\begingroup$ Hi, well actually this more something like that i.imgur.com/ruNpEnX.jpeg that I want (where each cone is placed from a single point in edit mode and instanced as cone with offset using geometry node) $\endgroup$ Commented May 22 at 18:13
  • $\begingroup$ I think I understand, you want all of the candles to face upwards, but also translated forward like they are on a hanging shelf. $\endgroup$ Commented May 22 at 18:33
  • $\begingroup$ Yes exactly, and I think that I know where my issue was coming from, a single vertex doesn't seem to have any normal at all, I had to use a tiny face and use your mesh to point in order to work. This is weird, point cloud can have normal direction, it is weird blender doesn't have this (or maybe vertex mesh isn't same as point cloud, but blender doesn't seem to support object point cloud with edit mode and all yet). $\endgroup$ Commented May 22 at 18:39
  • $\begingroup$ But this solution still isn't convenient as i can't "reset" rotation of instances i.imgur.com/zSjYfRE.jpeg $\endgroup$ Commented May 22 at 18:53
  • $\begingroup$ What do you means by "reset rotation" ? $\endgroup$ Commented May 22 at 19:14

You must log in to answer this question.

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