I understand that you feel the need to explain this, but many of us went through that and I assure you I understand when you say you’re a visual learner, etc. I’m exactly like you. Blender helped me make sense of all this math stuff because it actually reflects visually. It’s a bit like a visualization tool after all.
In any case your capture with the modulo was almost spot-on, except you should use a math node, not a vector math node, because the index is just a single value. The result of the modulo can be fed into a switch in vector mode where you input zero in the first field and 90 (or whatever) in the second, and that’s your rotation value that you can then feed into the transform node.
Here, I drew out what it’s doing. Using a modulo set to 3 with your index is basically x/3, where x is the number on the index. So, using it to determine your selection will…
…okay, my math is wrong. Those first two should be 1 divided by 3 should be 0 with a remainder of 1, and 2 divided by 3 should be 0 with a remainder of 2.
So i got this and have it all working, with switches
I can rotate all or use the skip row number and i added a linier vs constant rotation as i noticed by accident if i have an index in the accumulate field then all instances snap to the same rotation but if i have nothing then then each rotate around bit but bit? dont know how to describe that but i worded as a linier or constant rotation
Atm if i have a number in the other axis it applies to the one array, need to workout a toggle so i can have it add a new array outward, so in this example i would have 5 on z and 5 on y
I think i know how to do this so im not asking about that quite yet unless someone has an elegant solution to that. Id want to have this as an array mode or keep the axis values as offsets and adding new ones that expand the array
@Renzatic But thankyou you for showing me the links and examples, i better learn from these. I struggled to find relevant things on google but i probably wasnt wording the search terms quite right to find good results
Sure, you could just learn it once and forget it, but what are you going to do when you need to make something similar? Are you going to stumble through the process once again and waste the same amount of time? You have to learn to retain information, even when you’re not particularly interested in it – otherwise, all of our support and dedication is in vein.
There are many ways to save and retain information, even if your brain doesn’t do that naturally. (Which is perfectly normal. Very few people can learn things intuitively without dedication and studying. )
Such as:
Taking notes/screenshots for future reference
Explaining the process to other people can strengthen your grasp on the subject (for this reason, a lot of users on this forum retain a sketchbook or a collection of tips and tricks)
Breaking down a nodegroup and adding annotations/comments for your future self to read
Like it or not, mathematics and art are inseparable. They are both methods of describing the universe, and have a lot in common. This doesn’t mean one has to like math, or that it’s fun for everyone, but it does mean that understanding how it works can be beneficial or even necessary to learning artistic skills. Face it. Art is all about solving problems and overcoming obstacles, even if those obstacles are within yourself.
If i set the selected switch to false rotation dosnt work but if i unplug this then rotation works
Any ideas here should i do this in a different way, i tried adding a value node to t false as 0
And leaving skip rotation on and setting it to 1 or 0 also brakes rotation
30 years of trying all sorts, i cant explain to you more about how my brain works i just know the way it works and the way it dosnt. I only mention it so people can understand why i might be struggling.
The idea with this is i wont need to code similar as this is meant to do all sorts of things as a universal node module/tool
When i want to do some spawning of objects i grab my spawn node when i then want to array some stuff i grab my array node even if i had forgotten how to remake it, it dosnt matter i can just use the node. Thats why im doing what im doing as im not designing this for a specific use im doing for a a long check list of uses as a universal thing, with as many toggles and options as i can get in there
But im also hoping blender dosnt brake everything as that would suck but then i can just keep this version of blender if anything to use with this till i upgrade the nods ect but thats a future problem(maybe)
Edit:
Peoples help here wont go in vain as these nodes im making will be reused 100s of times so thats not a waste. Without the help from everyone i would have half function nodes that would have been used alot less. So nothing is in vain, and yer i can always relook at these nodes and see how i used something. Im okay at reverse engineering but i have to have the thing in order to reverse it
Im pretty good at taking things apart and putting them back together even if i dont really know how or why the work. I once took apart a pocket watch and put it back together still working but i couldn’t tell you how the thing actually works and why lol
Can’t recommend enough: leave concise comments and name things meaningful names (through node/frame/group labels).
Nothing like a pain of having to go back to your own code/nodes and just untangling the damn noodles for three days before adding a minor tweak in five seconds
Well if the number is at 0 or 1 i get no rotation, i understand 0 not rotating anything as its satin no instances rotate but why not 1 should all instances rotate at 1?
Bricks.blend (4.3 MB)
Here is my latest version with the updates and changes to the array node
I added a count for each axis instead of one for all the top amount if used for an offset mode
I have them separate as i couldn’t thing how to havet them both at the same time
An issue i have is each array axis puts an instance in the same spot
each one is its own thing then joins, what i want to do is have the array not put an instance in the original location then i can just join in the original instance after shown in red
So the array only adds out from the original and then then original remains the original
Otherwise atm i have 3 instances int he same spot
Or perhaps there is a much better way to do this, the goal is to have the array be able to go in the 3 directions according to there count and also have a toggable fill or individual mode
Fill being this
Nope, because anything divided by 1 equals exactly itself. There’s no remainders in play for the modulo to get a kickstart from, so rotation is always set to off on your instances.
Right but if i turn rotation skip off i get no rotation on any instance so there is currently no way to just have all the instances rotate unless i remove the hole thing from the selection of the instance rotation node.
Thats the issue, i need a way to turn of the instance skip rotation thing so i can just have all instances rotate if i want
Something is off with having the false of the switch have nothing in it or this is one of those bugs and its meant to work the same as having nothing in selection
Yeah, because without the Modulo in play, it’s rotating all the instances at once. With it plugged in, it’s either rotating per it’s settings, or not rotating at all.
You might want to insert a 2nd rotation node in after the first to apply a rotation to the entire object, rather than per row.
edit: Actually, put a compare node into the False socket, like this…
Okay had to put b as -0.5 otherwise it didnt rotate the bottom instance
But thanks that fixes this so i can go between skipping instances with the number or just rotate all as before
Any ideas for stopping multiple instances being placed with the array axis things i have
Im after two modes a mode where it arrays out individually for each axis like the one on the right
And a second mode that fills out using all 3 axis instance counts like on left.
The offsets i thought was only good for a single axis use but im not sure about that i just have it there just because atm till i think of something better
for each axis place an instance in the same spot so i get 3 instances in the same place at the center of the array. I was looking for a way to make off 3 axis arrays skip the first placement then just join in the input geometry to have the first placement filled with the original
So an array of 5 in each axis only places 4 instances in each axis missing out the first then i just join in the original instance to fill that first placement.