Without knowing your specific setup, I'm going to show a basic example of how to use the Data Transfer modifier to restore either Crease data or Vertex Group data after they have been destroyed/modified by a Boolean modifier from a copy of the object.
Here we have a sphere with some creasing applied to some of the edges of a sphere that has a Subsurf modifier added to it:
And now above the Subsurf I add a displace modifier and set it to only use the bottom half of the sphere by specifying a vertex group:
So we now have vertex and crease data and we can test ways that the boolean modifier might destroy/modify that data and how to restore it.
Here I add a Boolean modifier at the top of the modifier stack (Subsurf disabled):
We can see that actually the vertex group of the Displace modifier has been preserved and is still working as only the bottom half of the sphere is displaced:
However, in the image above we can also see that the crease data has been removed by the Boolean; we no longer have the pinching effect shown in the previous images.
We can now restore this data from a copy of the object. The copied object has no modifiers on it, but it does have the same topology as the original sphere and it does have the creases marked on it.
I add a Data Transfer modifier above the Subsurf modifier, but below the other modifiers. The order is important because if the Subsurf is above the Data Transfer modifier the creases will already have been calculated, so restoring the crease data after that will have no effect. We must restore data then Subsurf so the Subsurf has access to the transferred data before it does any calculations. I choose the copy of the original sphere as the Source Object, choose Edge Data as the type of data I want to transfer and specify the Subsurf Crease option as the actual data I want:
We now see that the pinching is back indicating the crease data has been successfully transferred.
There is, however, one thing to note, and that is the Solver the Boolean modifier is set to use. It's an option on the modifier and by default it's set to BMesh when the modifier is added and is the Solver type I used in this example. However, if you remove the Data Transfer modifier and change the Solver to Carve you will see that the Boolean no longer destroys the edge data, but instead destroys the vertex data:
The displace modifer is now effecting the whole mesh, meaning the Vertex Group has been modified and the pinching the crease data was creating has not been effected, whereas before, the opposite was true. I'm not quite sure why this happens or whether it's intentional, but this allows you to instead preserve the crease data and restore the vertex groups, though this time the Data Transfer modifier has to be above both the Displace modifier and the Subsurf:
(This also means the copy of the object we are transferring from needs a copy of the vertex group instead of the same crease marks.)
There doesn't seem to be a disadvantage to using one type of Solver over the other, but it does allow you to use either Solver (in case you need to use a specific Solver for other purposes) and always preserve the data.
- BMesh Boolean Solver destroys Crease data.
- Carve Boolean Solver destroys Vertex Group data.
- The Data Transfer modifier has to be above any modifier that needs to use the transferred data.
I have added the Blend file so you can see the exact setup I've used (the copy of the original object is on layer 2):