diff --git a/release/scripts/mesh_boneweight_copy.py b/release/scripts/mesh_boneweight_copy.py new file mode 100755 index 00000000000..5e9ec4ed235 --- /dev/null +++ b/release/scripts/mesh_boneweight_copy.py @@ -0,0 +1,94 @@ +#!BPY +""" +Name: 'Bone Weight Copy' +Blender: 241 +Group: 'Object' +Tooltip: 'Copy Bone Weights from 1 weighted mesh, to other unweighted meshes.' +""" +import Blender +from Blender import Armature, Object, Mathutils, Window, Mesh +Vector= Mathutils.Vector + +def copy_bone_influences(_from, _to): + ob_from, me_from, world_verts_from, from_groups= _from + ob_to, me_to, world_verts_to, dummy= _to + del dummy + + def getSnapIdx(vec, vecs): + ''' + Returns the closest vec to snap_points + ''' + close_dist= 1<<30 + close_idx= None + + x,y,z= tuple(vec) + for i, v in enumerate(vecs): + # quick length cmp before a full length comparison. + if\ + abs(x-v[0]) < close_dist and\ + abs(y-v[1]) < close_dist and\ + abs(z-v[2]) < close_dist: + l= (v-vec).length + if l