The blend file link is below. The GeoNode is grabbing instances from a collection that have vertex groups assigned. Then using Constraints on the bones to the geonode object with the selected vertex group, also passing the vertex group through the input and output of the geonode. This worked for the first bone, but I can't seem to get the next bone to work. I need there to be one bone for each cube.
There's probably some buggy GN behavior involved in this. However, there are ways to do what you want.
The first thing to realize is that passing vertex groups from our original geometry, which is completely unrealized in our output, doesn't make any sense, and so there's no reason for passing these vertex groups through from input to output. Instead, we get these vertex groups on our output provided:
- These vertex groups are present on our input mesh object;
- These vertex groups are present on our instanced mesh objects;
- The instances are realized.
Now, in this case, when we do this, we see that it works for Cube1 groups, but for some reason all cubes get assigned to Cube2 groups. However, when we create the Cube2 groups on all instanced cubes, although perhaps with no vertices assigned, then it works properly. Here, I am instancing from a collection of 2 cubes only, and all have cube02 groups, although without all vertices assigned to that group; we can see, in our world space displacement, that our instances are inheriting this vertex group properly:
Note that creating all of these vertex groups, without assignment, is very simple in the file you have: we can simply join all of the objects, then separate by parts, to add all vertex groups of any instanced cube to all instanced cubes. However, in other situations, there would be side effects to doing this.