3
$\begingroup$

I need to make an animated flow diagram with many arrows - some curved, some straight lines with 90 degree corners. I would like to make the process easily repeatable, so I draw a path, and the arrow head will follow the path, with the arrow tail filling in behind it.

I've read the "easiest arrows" post, but that doesn't really cover animations.

I was wondering whether this is something that could be done with geometry nodes?

I'd really like the arrows to be "parametric" so I could tweak the size of (eg) the arrow head and tail adjustments and all the arrows in the diagram would follow along.

I've tried running arrays of planes along paths, but the arrow head doesn't track around 90 degree corners nicely, and I would have to adjust the count of planes in the array every time I adjusted the length of each path.

Is there an easier way?

I basically want this: https://kylasaurusrex.gumroad.com/l/LNSVU but for Blender. Many thanks

$\endgroup$
2
  • $\begingroup$ Maybe this will help you: blender.stackexchange.com/questions/263726 $\endgroup$
    – quellenform
    Commented Oct 10, 2022 at 9:50
  • $\begingroup$ Hello and welcome. While files, images, and external videos or links may be helpful additions they should not be the only way to obtain information about your issue. Don't make understanding your question rely on downloading a file, watching a video or visiting an external site. Use the builtin tools to upload images or gifs, along with thoroughly explaining the problem in written form so it can be indexed and searched for thus helping future visitors with similar issues. $\endgroup$ Commented Oct 10, 2022 at 9:57

1 Answer 1

5
$\begingroup$

enter image description here

You can achieve this goal with the following setup:

enter image description here

The basic principle is that I shorten an existing curve with the node Trim Curve and instantiate a triangle at the endpoint.

By controlling the trim of the curve with the node Scene Time, I achieve the animation here.

You can of course instantiate any object at the end, but in this example I simply use a triangle that is scaled and rotated accordingly.

Finally, the essence of the setup is that here the Rotation is used, which the node Curve to Points provides automatically. This rotation always corresponds to the curve.


(Blender 3.1+)

$\endgroup$
9
  • $\begingroup$ this looks awesome - many thanks! $\endgroup$
    – tomh
    Commented Oct 10, 2022 at 10:54
  • $\begingroup$ and it behaves well at right-angles, if you include a tweak of your even thickness group from this answer :) (Personally, I exposed line thickness to the group's interface) $\endgroup$
    – Robin Betts
    Commented Oct 10, 2022 at 11:12
  • $\begingroup$ What's the right way to 'solidify" the whole arrow without applying the geometry node? When I do it via "Curve to Mesh" and "Extrude", I get a weird hill, and when I use "Solidify" on the whole object, the arrow head stays flat. Example here: imgur.com/a/4L1Sykj. Many thanks again $\endgroup$
    – tomh
    Commented Oct 10, 2022 at 14:51
  • 1
    $\begingroup$ @tomh The variant with the node Extrude is already correctly chosen. But please forgive me, there is indeed a mistake on my side: at the "weird hill" are two points, instead of one. Simply edit the curve and delete the excess point. If you want to use the other variant with the Solidify modifier, which also works, you would have to insert the node Realize Instances after the node Instance on Points so that the instance is converted into an editable geometry. $\endgroup$
    – quellenform
    Commented Oct 10, 2022 at 15:24
  • $\begingroup$ Aha - that fixes it! Two questions if you have time: 1) is there a way to join the geometry such that a bevel doesn't form gap between the arrow head and the tail: imgur.com/a/BALHc6B and 2) how would I turn this into a dashed line for the tail? $\endgroup$
    – tomh
    Commented Oct 10, 2022 at 17:00

You must log in to answer this question.

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