本日は Blender の技術調査枠です。
Blenderで利用可能なpythonスクリプトを作ります。
bluebirdofoz.hatenablog.com
頂点グループの追加
指定オブジェクトに頂点グループを追加します。
・setting_vertexgroup.py
# bpyインポート import bpy # 指定オブジェクトに頂点グループを追加する # 引数 arg_objectname:指定オブジェクト名 # arg_vertexgroup:追加頂点グループ名 # 戻り値 def add_vertexgroup( arg_objectname='Default', arg_vertexgroup='DefaultGroup'): # 指定オブジェクトを取得する selectob=bpy.context.scene.objects[arg_objectname] # 指定オブジェクトをアクティブにする bpy.context.scene.objects.active=selectob # オブジェクトの頂点グループを取得する(get関数は対象が存在しない場合 None が返る) vertexgroup=selectob.vertex_groups.get(arg_vertexgroup) # 対象の頂点グループが存在しない場合は新規作成する if vertexgroup == None: # オブジェクトに新規頂点グループを追加する selectob.vertex_groups.new(name=arg_vertexgroup) return # 関数の実行例 add_vertexgroup(arg_objectname='Cube', arg_vertexgroup='CubeGroup')
頂点グループの削除
指定オブジェクトの指定した頂点グループを削除します。
・setting_vertexgroup.py
# bpyインポート import bpy # 指定オブジェクトに頂点グループを追加する # 引数 arg_objectname:指定オブジェクト名 # arg_vertexgroup:追加頂点グループ名 # 戻り値 def delete_vertexgroup( arg_objectname='Default', arg_vertexgroup='DefaultGroup'): # 指定オブジェクトを取得する selectob=bpy.context.scene.objects[arg_objectname] # 指定オブジェクトをアクティブにする bpy.context.scene.objects.active=selectob # オブジェクトの頂点グループを取得する(get関数は対象が存在しない場合 None が返る) vertexgroup=selectob.vertex_groups.get(arg_vertexgroup) # 対象の頂点グループが存在しない場合は処理しない if vertexgroup == None: # 処理終了 return # 指定頂点グループをアクティブにする selectob.vertex_groups.active_index=vertexgroup.index # 指定頂点グループを削除する bpy.ops.object.vertex_group_remove(all=False) return # 関数の実行例 delete_vertexgroup(arg_objectname='Cube', arg_vertexgroup='CubeGroup')
頂点グループの全削除
指定オブジェクトの全ての頂点グループを削除します。
・setting_vertexgroup.py
# bpyインポート import bpy # 指定オブジェクトの全ての頂点グループを削除する # 引数 arg_objectname:指定オブジェクト名 # 戻り値 def delete_vertexgroup_all( arg_objectname='Default', arg_vertexgroup='DefaultGroup'): # 指定オブジェクトを取得する selectob=bpy.context.scene.objects[arg_objectname] # 指定オブジェクトをアクティブにする bpy.context.scene.objects.active=selectob # オブジェクトの全頂点グループを削除する bpy.ops.object.vertex_group_remove(all=True) return # 関数の実行例 delete_vertexgroup_all(arg_objectname='Cube')