Geometry Nodes: Random Arrays
ฝัง
- เผยแพร่เมื่อ 21 ส.ค. 2024
- This is a tutorial about how you can make an array along a curve with random elements. I haven't added this node or a similar one to my collection yet, this is just a tutorial about random arrays.
For an interactive look at all my nodes, check my website:
danielhickox.c...
You can get my Geometry Node Assets from these links:
blendermarket....
danielhickox.g...
The above links are for a collection of Geometry Node setups that I extracted from my project files. They are all setups I found useful for creating something, now neatly packaged as an asset collection.
Just what I needed! and this totally should be in the asset pack.
Seriously Awesome! Super in depth without being tedious! Been looking to take my procedural skills beyond the intermediary level and into the complicated stuff like this! Thanks a lot 🙏
Just spent the past 4-5 hours trying to get my arrays to have random scales, it wasn’t exactly what I wanted but I thought it would be the easiest idea to set up my placeholders. I haven’t watched the video yet but this looks like this will solve my problem with the placeholder and make deciding what will go where in my final render much easier.
Edit:
Got it working, there’s still a problem, it’s probably on my hand, all my objects in the collection are the same shape, rectangles, but with different lengths, despite that, when I put them in the random array they’re all the same length as one another. I’m trying to find where to fix the problem but I’ve been having trouble.
2nd Edit: WOAH I THINK I JUST FOUND IT, I thought the solution was something really complicated and I started improvising, and then I noticed I set the random value onto a boundary at index, I switched it with the Adj Length Estimate and got the inverse of my improvisation. The only problem I’m seeing now is that the scales are off by quarters, the X Scale is .5 and the Y is .25, but I’m not complaining I just had the only worrying problem FIXED. My day was not an entire waste😂!
Hey! Just read your comment and edits, so maybe I'm too late. But my gut instinct would be make sure the scale of your rectangles is applied (ie = 1.0). If you scaled them in object mode, they will be reset before getting instanced, if you scaled them in edit mode or applied the transform the different sizes are 'baked' into the meshes. Or maybe I'm thinking in the complete wrong direction, hard to say without looking at it.
Very cool!
Hey man ! First of all thank you so much for sharing. I used a part of your graph to do a modular setup on straight lines, that needed to be precise, so I did some changes. Today though I'm actually going through your video three times already to do the full graph for something else, all this function is actually pretty amazing for a lot of stuff, but I'm blocking on the last step. Everything is good except everything is meshed flat on the curves. So I'm probably messing up something in the part with the vector math to the last set position.
I really can't find where I'm messing up. If you get this message, anyway to get some help on this ?
Finally got it working, not really sure what was the issue do, frustrating. I copy pasted the block you did in Curve Deform, was thinking of branching it to this in case I couldnt get it out and it worked out of the box, rematch everything on mine plug it back and it was working. I had the first node on Add instead of Cross product, but I did check this several times, so maybe when I unplug replug trying other stuff, so I don't know in the end. But hey, I learned a lot and the whole thing is really great. Many thanks
Hey! You're welcome. If the geometry on the curve is flat then there's probably something wrong with the offset vector construction (19:34). If you're missing the Add node that sums the normal and binormal offsets, that would have a flattening effect. I'm not sure what else...if the cross product of the tangent and normal had the same vector in both input sockets (ie tan & tan OR nor & nor), it would be flat.
Thanks a lot for this breakdown! I really wanted to find something like this and it helped so much ! I have 2 questions if you don't mind :
Do you think there would be a way for it to work with collections? (Instancing not objects but collections instances).
Also, I was trying to find a way to keep the spacing from the object sizes, but not have them deform along the curve, just follow it and keep their distances
Also, thanks so much for sharing some of the nodes you created, they are very useful
Great! You're very welcome.
I believe using collections would partially work, you can create a collection of collections in geometry nodes. The issue would be with calculating a bounding box for each collection, I think it would default to bounds around each object in the sub-collections, rather than a bounds around each sub-colleciton.
To have the curve not deform the instances, you should evaluate the curve at a single point for each instance rather than the vertex positions. That should be the 'single axis' vector (16:06) that is used to make the array, you can capture the instance position in an attribute before realizing the mesh. Then when constructing the offset vector (19:50) you will also need an offset for the aligned axis, which would be the curve's tangent scaled by the aligned axis value of the vertex position minus the instance position.
Alternativly, it might be easier skip realizing the instances (16:37), and then construct a rotation for each instance from the curve tanget/normal in place of the offset vector stuff.
Another thought, On the collection question, I would consider making the collection to be arrayed out of objects using my collection to object node to instance the collections you want to array.
@@looseEdges Thanks a lot for the detailed and very fast reply ! I'm reaching the limits of my understanding with the indexation and manipulating with vectors. But I'm learning quite a lot by looking at the different segments of the nodes and understanding what each does. Eventually I'll get it !
I'm going to look into that ! I haven't had the time to look at all your videos and breakdown of the nodegroups you made ! But they are very very useful
@@looseEdges
please upload the blend file.
it's been my pain in the ass for last week.cant make the same one myself
The node group is in the arrays and deformers .blend file from my geometry node assets, it's just not marked as an asset. An object with the modifier on it can be found to the left of all the examples and the node is named 'Random Array'