ウェイトのコピーは、同じオブジェクトなら容易であるため、別オブジェクトの場合は統合すれば良い。
Copy ボタンを押下すると、選択した全ての頂点が、最後に選択した頂点のウェイトと同じになる。

どうしても、オブジェクトを統合できない場合に限り、以下のスクリプトを利用する。
import bpy
# オブジェクトモードに変更する
if bpy.context.mode != 'OBJECT':
bpy.ops.object.mode_set(mode='OBJECT')
# 1番目に選択されたものをソースオブジェクトに
# 2番目に選択されたものをターゲットオブジェクトと呼ぶ
source_object = bpy.context.selected_objects[0]
target_object = bpy.context.selected_objects[1]
# ソースオブジェクトで選択中の頂点を1つ取得する
source_vertices = [v for v in source_object.data.vertices if v.select]
source_vertex = source_vertices[0]
# その頂点のウェイト情報を辞書に登録する(キー:頂点グループ、値:ウェイト)
source_weights = {}
for vg in source_object.vertex_groups:
source_weights[vg.name] = vg.weight(source_vertex.index)
# ターゲットオブジェクトで選択中の頂点を全て取得する
target_vertices = [v for v in target_object.data.vertices if v.select]
# 全ての頂点グループから選択中の全ての頂点を削除する
for vg in target_object.vertex_groups:
for v in target_vertices:
vg.remove([v.index])
# ターゲットオブジェクトにソースオブジェクトと同じ名前の頂点グループがあるか探す
for key, value in source_weights.items():
vg = target_object.vertex_groups.get(key)
# 無い場合は、新たに頂点グループを追加する
if not vg:
vg = target_object.vertex_groups.new(name=key)
# ターゲットオブジェクトの全ての頂点に関して、ウェイトを設定してゆく
for v in target_vertices:
vg.add([v.index], value, 'REPLACE')
- 上記のスクリプトをコピペする
- オブジェクトを2つ選択する
- 以降、1番目に選択したオブジェクトを「オブジェクト①」と呼ぶ
- 以降、2番目に選択したオブジェクトを「オブジェクト②」と呼ぶ

- Edit モードに変更する
- オブジェクト①の頂点を1つだけ選択する
- オブジェクト②にてウェイトをコピーしたい頂点を選択する

- 実行する
以上