0
$\begingroup$

I am quite new to Blender and I am trying to have arrows following a path snapped onto a surface. The arrows' direction must be normal to the surface. I tried so many different things, array + curves, particle etc. I just cannot make it happen. I attach what the surface in blue I have and the path I want the arrows the follow. You can see how the final result would look like

surface+arrows+path.

How would you procede?

Any help would be so very welcome!

Thank you very much

$\endgroup$
2
  • $\begingroup$ "The arrows' direction must be normal to the surface" -> must it really be the normals or can it pretend to be? In the latter case, you can simply tilt the bezier's vertices (ctrl T or Tilt value in the N panel), or, if you've used a duplifaces as a support for your arrows, tilt the faces $\endgroup$
    – moonboots
    May 24, 2020 at 6:09
  • $\begingroup$ Script version here blender.stackexchange.com/questions/174727/… $\endgroup$
    – batFINGER
    May 24, 2020 at 8:29

2 Answers 2

2
$\begingroup$

Unless I've misunderstood the question:

You could make cylinder (a ribbon) to shrinkwrap to the surface, and in its Object > Instancing panel, set its method to 'Faces'

Parent an appropriately oriented arrow-object to the ribbon, and Modifiers > Shrink-Wrap the ribbon to the surface by the projection method that best picks up the normals you're looking for.

enter image description here

You could even adjust the edges between the faces by hand, if you want finer control of the distribution of arrows. The ribbon does not have to be rendered, you can switch that off in the Instancing panel.

enter image description here

$\endgroup$
10
  • 1
    $\begingroup$ That is amazing! Simple and exactly what I needed. I have another small question, I want my surface to be transparent, but the arrow is hidden in the center, how can I hide the arrow without hidding all of them? $\endgroup$
    – Gael
    May 25, 2020 at 4:16
  • 1
    $\begingroup$ Although the dupli-source arrow shows in the viewport, (even if the view is set to 'Rendered',) it does not appear in the final F12 render. If you need to hide it in the viewport as well, you can Obj Mode > M move it to another collection, and hide that collection from the viewport (toggling the Eye icon in the outliner). I've always found this logic a bit mysterious, myself.... $\endgroup$
    – Robin Betts
    May 25, 2020 at 6:18
  • $\begingroup$ Wrote a script to do exactly this, but baulked when trying on Suzanne (get a convex hull arrangement around the ears), Updated it to use the edges of bisect instead.. .. but is it worth posting it? (prob not) Good to see you. $\endgroup$
    – batFINGER
    May 25, 2020 at 9:09
  • 1
    $\begingroup$ I can see some situations where this answer wouldn't work that well, or at least be fiddly? You're replacing Shrinkwrap's raycasting with your own, or something? I for one would love to see how it's done. $\endgroup$
    – Robin Betts
    May 25, 2020 at 9:18
  • $\begingroup$ Thanks again Robin! By any chance, would you also know how to make the color gradient following the changes of curvature of this surface, but only for the changes of curvature along z? Like in the image I posted. $\endgroup$
    – Gael
    May 26, 2020 at 2:38
1
$\begingroup$

Add a circle a round the object you want.Add a shrink wrap modifier to the circle and set mode to project and check negative.Then add a particle system to the circle and set it's type hair and check advanced.Under emission set source to verts.Check rotation and set it to Normal.Then create an arrow mesh.Under render in the circle's particle system set render as object and set the object to your arrow mesh check check object rotation and uncheck object scale.Then edit your arrow mesh to point to the normal in edit mode.

link updated: https://drive.google.com/file/d/1DITVs9UplaVjc6pFR6hpl69-cRimdk25/view?usp=sharing

$\endgroup$
5
  • 1
    $\begingroup$ your link ask for an authorization, and please don't just give a link, give a full answer ;) $\endgroup$
    – moonboots
    May 24, 2020 at 15:56
  • $\begingroup$ I have edited the answer.I have also provided public link It wont ask for authorization . $\endgroup$
    – Bruk
    May 24, 2020 at 19:29
  • 1
    $\begingroup$ ..but the arrows aren't normal to the underlying surface? $\endgroup$
    – Robin Betts
    May 24, 2020 at 20:07
  • $\begingroup$ Thank you, that is a neat trick, but indeed, the arrows are not normal to the surface. $\endgroup$
    – Gael
    May 25, 2020 at 4:17
  • $\begingroup$ In fact, is it possible using particles, to have arrows normal to the surface? $\endgroup$
    – Gael
    May 27, 2020 at 5:12

You must log in to answer this question.

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