I recall using a script in 2.4X called mesh_mirror_tool that allow me to ‘sync’ up the sides an asymmetrical mesh. I can’t get it to work in 2.6. Is there a similar addon that will duplicate its function?
Which is pretty much useless at this stage of the game. The model I’m working with is unwrapped and has two sides, what I need is a way to to to get the vertex’s on both sides to match up.
As a work round if you are after what I think you might be?
What you could do is duplicate what you have; on each model delete the oposite half and mirror it; then see which you prefer. Or seperate the part you are interested then mirror.
You probably have solved this by now. But, you could duplicate the model, then use mirror modifier on one half and use a shrinkwrap modifier or snap to faces to get the other side to conform to your duplicate model.
Deleting half of the model will mess up the UV (it’s textured), especially for stuff like the palms of the hands, where they aren’t connected.
Also, it’s a pretty complex model, well over a thousand verts.
If there’s a script in blender 2.49, just use that, then reopen your fixed model back in blender 2.6
Would the LoopTool “Bridge” be good for this?
Something like this? It is straight brute-force so if you have a huge model this might take a while but it should do the trick. This assumes that the model is mostly symmetrical already and one side got tweaked just enough to break the X-mirror.
This script mirrors the X-axis similar to the default settings for the Mirror modifier. If you want to mirror a different axis then you will need to update the script or rotate your object first.
- Go into Edit mode and select the vertices that you want to be updated.
- Return to Object mode and make the object the Active object
- Run the script
Things to edit:
- The ‘radius’ parameter controls how far away an vertex can be from it’s mirrored vert and still snap. You should update this value to be smaller than the spacing in your mesh or all your verts will get ‘compacted’. You will probably need to use a combination of selecting vertices and updating the radius to get various pieces snapped correctly. I imagine places like fingers and mouth corners will be trick to get correct with out “pinching” the model.
import bpy def forceMirror(obj, radius): """Takes an object and forces an X-mirror on the model. The source side is the left side vertices (ie. x > 0).""" # Validate this is a mesh mesh = obj.data if type(mesh) != bpy.types.Mesh: return # Raw-n^2 brute force of the vertex matching. for sourceV in mesh.vertices: # Skip any vertices that have negative X values if sourceV.co.x <= 0: continue # See if there are any vertices on the other side that need to be 'snapped' for targetV in mesh.vertices: # Any vertices on the X+ don't need to be checked if targetV.co.x >= 0 or targetV.select == False: continue; xMirror = targetV.co.copy() xMirror.x = -1 * xMirror.x print("Magnitude: %f" %((xMirror - sourceV.co).magnitude)) if (xMirror - sourceV.co).magnitude <= radius: targetV.co.x = -1 * sourceV.co.x targetV.co.y = sourceV.co.y targetV.co.z = sourceV.co.z if __name__ == "__main__": print("--- Running ---") obj = bpy.context.active_object forceMirror(obj, 0.3)
In 2.6 you can use shape keys to make an object symmetrical.
Copy your object and delete one half. Apply a mirror modifier to make the object symmetrical.
Add a shapekey to the original object
Select the symmetrical object, Shift select the original object. In the shapekey panel select ‘Join as Shape’. A new shapekey will be added to the orginal, set its value to 1 to match the shape of the symmetrical object. This should not change the original objects UVs
Sculptris can creat symmetry using the left side if I’m correct, just make sure to remesh after words.
I guess that’s worth a shot. By the way is it possible to convert a 2.4X script into an addon? I tried running the script in the text editor, but I got a message about ‘invallid syntax’.
Thank you, that worked perfectly.