1
$\begingroup$

I'm trying to intance objects along a curve, but every setup I find uses the tangent of the curve, this is what I'm trying to achieve:

image depicting what I'm trying to achieve.

I've already tried these methods Method 1 Method 2, but both of them make the instance follow the tangent of the curve. Here's my current setup: enter image description here

$\endgroup$
5
  • 1
    $\begingroup$ Would this geometry nodes tutorial by Joey Carlino help? youtube.com/watch?v=T_ZzO86dBIA $\endgroup$
    – John Eason
    Commented Dec 20, 2022 at 0:36
  • 1
    $\begingroup$ Have you already tried this variant? blender.stackexchange.com/a/259117/145249 $\endgroup$
    – quellenform
    Commented Dec 20, 2022 at 0:58
  • $\begingroup$ Hey @JohnEason I've tried this after you mentioned it, it uses the vector tangent, so sadly it doesn't work for me $\endgroup$ Commented Dec 20, 2022 at 1:10
  • $\begingroup$ Hey @quellenform, I tried it and it also didn't work $\endgroup$ Commented Dec 20, 2022 at 1:10
  • $\begingroup$ Ok. Worth a try! :^( $\endgroup$
    – John Eason
    Commented Dec 20, 2022 at 9:02

3 Answers 3

1
$\begingroup$

This version subtracts the Position at Index of the resampled curve from the Position at Index +1, and uses that vector to align the instance at Index:

enter image description here

The Length of that vector could be used to stretch (Scale) the instances exactly between points, if that's what you wanted.

enter image description here

If you sometimes had to deal with cyclic curves, that would additionally require a Switch on Is Cyclic, to include an instance on the curve's last point.

The stretch and cyclic features are included in the .blend:

$\endgroup$
4
$\begingroup$

Very similar to Fred's answer, just another approach:

enter image description here

Here I simply subdivide the curve with Subdivide Curve, then transfer the tangents of the preceding points back to the points at which an instantiation is to take place, and ultimately use these tangents to create a rotation for the instances.


(Blender 3.2+)

$\endgroup$
2
$\begingroup$

May be another approach will work for you, it's less elegant for sure but any way.

Just resample the curve 2 times, the first is the curve definition you need (d), now resample it a second time by (2*d)-1, it will give you intermediates points in the center of the segment obtain with the first resample. Then use Curve to points. Now you must delete all the points made with the first resample they are odd so you can easily select them with a modulo.

enter image description here

I hope it will help.

Edit: I have change the .blend, now the length of the instances match the length segment, almost...

$\endgroup$
2
  • $\begingroup$ This one almost works, but the moment you have something that's not the right length it goes wrong. $\endgroup$ Commented Dec 20, 2022 at 20:13
  • $\begingroup$ Ok, I try to edit the blend with the right length this time... $\endgroup$
    – Fred I. R.
    Commented Dec 21, 2022 at 7:58

You must log in to answer this question.

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