packing UVs on top of each other?

I’m a bit stuck and I am hoping that someone will be able to help me. I am building a pretty large brick structure. The brick walls are made up from 10 basic brick textures that I want to randomly assign to individual bricks. The structure has been built and now I want to assign the textures to each brick. Here is my problem the bricks are dotted all over the structure and I want to assign the same texture to the face of each brick. At the moment when I unwrap I end up with a sea of UVs which isn’t really that useful. What I want to do is put all of the UVs for each brick (each brick is simply a quad) on top of each other so that I can then assign the texture and all the bricks will look the same. What I can’t, easily, do is move all of the UV quads on top of each other. Does anyone know of a script that would do this? Ok, I could do t by hand but I have over 3000 bricks in the entire structure and that would be a lot of manual moving.

In other words what I want to be able to do is align all the centre points of the UV quads.

If I’m reading this correctly then it sounds like you are sort of doing this backward from the standard solutions. Usually, people make 10 unique bricks then duplicate those ten bricks and build them into a wall using various modifiers.

However, if you really want to manually pile up UVs then I can think of a few options.

  • In the UV Editor you can position your 2D cursor on the corner of a brick texture, then select all the vertices you want mapped there and “Snap to cursor”.
  • You could do the generic unwrap then manually pile bricks one top of eachother and write a Python script to snap all the vertices together.

I have not done a lot of UV unwrapping but from what I’ve seen the unwrapping algorithms are designed to keep UVs spread out. Since that is the opposite of what you want you might have a bit of a fight ahead of you.

yes, you have read it correctly and I am probably doing it opposite to the norm. Thing is that I have modelled the structure and now I want to apply brick textures. The modelling took many hours so I don’t really want to have to start again.

I have just manually stacked 800 bricks on top of each other. It took about 20 minutes :frowning: Only about 3000 more to go. I’ve not done any python scripting but what you suggest is what I need.

well I’ve just rendered my stacked bricks and they look terrible. Oh well looks like I will have to go back to the tried and tested way of doing this. I will have to think of some cunning way of mapping the new bricks onto the old. hmmmm.