1
$\begingroup$

I am utilising aspects of the following tutorial in a project but am deviating from the tutorial: https://www.youtube.com/watch?v=T__5FyCHL4E&t=1273s&ab_channel=MaxEdge

So I am instancing a curve, offsetting the instances and then rotating them in a spiral around the original curve.

What I am trying to do now is to have objects instanced around the instanced curves with the vector rotated to point away from the original curve. How would I rotate the vector to achieved this?

I thought that using raycast from the instanced curves to the original curve might be a good option but haven't been able to make it work.

Instanced curves rotated around original curve with instanced objects:

enter image description here

Point of interest in node tree: enter image description here

Desired result:

enter image description here

Edit: uploading additional image to help explain (note how the cones are pointing every which way instead of outwards):" enter image description here

$\endgroup$

1 Answer 1

2
$\begingroup$

The core problem concerning the alignment of the objects along the extruded curves is that the extruded curves have no relation to the centered original curve.

So the answer to your specific problem is:

enter image description here enter image description here

In words:

  1. Acquire the index of the points of the centered curve with Capture Attribute before extruding it.
  2. Using this index, transfer the position of the points of the center curve after the extrusion with Transfer Attribute and calculate a direction to the center (or pointing outward from the center).
  3. Use the node Align Euler to Vector to create a rotation from this direction, which you then transfer directly to your instances.

However, you will find that you will run into a problem with this setup if you greatly reduce the distribution of instances.

Because the resolution of the curve in your setup is linked to the distribution of the points for the instances, a low resolution will result in an incorrect rotation of the instances:

enter image description here

Therefore, you would have to separate the resolution of the curve from the number of points to be used for instantiation.

So I took the liberty to change some things and restructure this for Blender 3.2 and make some improvements:

  1. I added a Group Input called "Spacing" which controls the distribution of the objects to be instantiated.
  2. Further I renamed the Group Input "Resolution" to "Spline Resolution" and changed the behavior so that this value actually does what is usually done with curves with the value "Resolution": Splitting the segments. To achieve the above goal with the separation, this subdivision means the segments between the points where the objects are to be instantiated.

If you take a closer look, you will notice that with this setup the generated curves have become more independent from the points necessary for the instantiations and are more suitable for further processing.

The main thing, however, is that you don't have to visibly reduce the resolution of the curves to achieve a less dense distribution.

enter image description here enter image description here


(Blender 3.2)

$\endgroup$
2
  • 1
    $\begingroup$ I've been forced to take a hiatus from my computer, so haven't had a chance to test it out probably yet but this looks very correct. Thanks a tonne for the effort! $\endgroup$ Commented Aug 6, 2022 at 12:13
  • $\begingroup$ Hey @quellenform, not sure if I should open up a new question or if it's related enough to the original question. But is it possible to (transfer/capture?) the "spline factor" of the instanced curves and apply it to the instanced cone for use with a scale instance node? or does this setup break the relationship between the points and the curves? $\endgroup$ Commented Aug 16, 2022 at 6:57

You must log in to answer this question.

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