本日は Blender の技術調査枠です。
Blender2.8で利用可能なpythonスクリプトを作ります。
頂点グループの追加
指定オブジェクトに頂点グループを追加します。
・add_vertexgroup_mesh.py
# bpyインポート import bpy # 指定オブジェクトに頂点グループを追加する def add_vertexgroup_mesh(arg_objectname="Default", arg_vertexgroup="DefaultGroup") -> bool: """指定オブジェクトに頂点グループを追加する Keyword Arguments: arg_objectname {str} -- 指定オブジェクト名 (default: {"Default"}) arg_vertexgroup {str} -- 指定頂点グループ名 (default: {"DefaultGroup"}) Returns: bool -- 実行正否 """ # 指定オブジェクトを取得する # (get関数は対象が存在しない場合 None が返る) selectob = bpy.data.objects.get(arg_objectname) # 指定オブジェクトが存在するか確認する if selectob == None: # 指定オブジェクトが存在しない場合は処理しない return False # オブジェクトがメッシュであるか確認する if selectob.type != 'MESH': # 指定オブジェクトがメッシュでない場合は処理しない return False # オブジェクトの頂点グループを取得する(get関数は対象が存在しない場合 None が返る) vertexgroup = selectob.vertex_groups.get(arg_vertexgroup) # 対象の頂点グループが存在しない場合は新規作成する if vertexgroup == None: # オブジェクトに新規頂点グループを追加する selectob.vertex_groups.new(name=arg_vertexgroup) return True # 関数の実行例 add_vertexgroup_mesh(arg_objectname="Sphere", arg_vertexgroup="DefaultGroup")
頂点グループの削除
指定オブジェクトの指定した頂点グループを削除します。
・delete_vertexgroup_mesh.py
# bpyインポート import bpy # 指定オブジェクトの頂点グループを削除する def delete_vertexgroup_mesh(arg_objectname="Default", arg_vertexgroup="DefaultGroup") -> bool: """指定オブジェクトの頂点グループを削除する Keyword Arguments: arg_objectname {str} -- 指定オブジェクト名 (default: {"Default"}) arg_vertexgroup {str} -- 指定頂点グループ名 (default: {"DefaultGroup"}) Returns: bool -- 実行正否 """ # 指定オブジェクトを取得する # (get関数は対象が存在しない場合 None が返る) selectob = bpy.data.objects.get(arg_objectname) # 指定オブジェクトが存在するか確認する if selectob == None: # 指定オブジェクトが存在しない場合は処理しない return False # オブジェクトがメッシュであるか確認する if selectob.type != 'MESH': # 指定オブジェクトがメッシュでない場合は処理しない return False # オブジェクトの頂点グループを取得する(get関数は対象が存在しない場合 None が返る) vertexgroup = selectob.vertex_groups.get(arg_vertexgroup) # 対象の頂点グループが存在しない場合は処理しない if vertexgroup == None: # 実行成功として終了 return True # 指定頂点グループをアクティブにする selectob.vertex_groups.active_index=vertexgroup.index # 指定頂点グループを削除する bpy.ops.object.vertex_group_remove(all=False) return True # 関数の実行例 delete_vertexgroup_mesh(arg_objectname="Sphere")