本日はBlender枠です。
〇環境
・Blender4.1
・Windows11PC
〇ウェイトペイントを含めた頂点グループの複製
ウェイトペイントはオブジェクトのリグやクロスシミュレーションの強さなどあらゆる範囲で使用することができます。
例えば先日行った髪の毛を揺らす処理の場合はクロスシミュレーションを使用して髪の毛が受ける重力の強さを制御しました。
このようにウェイトを使うことで様々なことができます。
このウェイトの情報を含む頂点グループはデータプロパティからアクセス出ます。

頂点グループをウェイト事複製して使いまわしたい時など、頂点グループを選択して右クリックなどを押しても複製することができません。

今回はPythonを使用してコードで複製を行います。
〇コード
今回はこちらのようなコードをChatGPTを使用して作成しました。
import bpy
# アクティブオブジェクトを取得
obj = bpy.context.active_object
# アクティブオブジェクトがメッシュオブジェクトであるか確認
if obj and obj.type == 'MESH':
# 現在選択されている頂点グループを取得
active_vertex_group = obj.vertex_groups.active
if active_vertex_group:
# 新しい頂点グループを追加し、名前を変更
new_vertex_group = obj.vertex_groups.new(name=f"{active_vertex_group.name}_copy")
# 現在の頂点グループのウェイト情報を新しい頂点グループにコピー
for vertex in obj.data.vertices:
for group in vertex.groups:
if group.group == active_vertex_group.index:
new_vertex_group.add([vertex.index], group.weight, 'REPLACE')
print(f"頂点グループ '{active_vertex_group.name}' を '{new_vertex_group.name}' として複製しました。")
else:
print("No selected vertex group")
else:
print("No Active Mesh")
対象のオブジェクトのデータプロパティから複製したい頂点グループが選択されている状態でコードを実行することで選択中の頂点グループが複製されます。

本日は以上です。