本日は Blender の技術調査枠です。
Blender3.0で利用可能なpythonスクリプトを作ります。
選択中の頂点から頂点グループを作成する
選択中の頂点から頂点グループを作成するには以下の オペレータを利用します。
本オペレータは編集モードで動作するため、スクリプトで利用する際はモードの判定が必要です。
docs.blender.org
サンプルスクリプト
選択中の頂点から新規頂点グループを作成して作成したグループ名を返却するサンプルスクリプトです。
結果はコンソールに出力されます。
・Script_make_vertexgroup.py
# bpyインポート import bpy # 選択中の頂点から新規頂点グループを作成してグループ名を取得する def make_vertexgroup() -> str: """選択中の頂点から新規頂点グループを作成してグループ名を取得する Keyword Arguments: Returns: str -- 新規頂点グループ名 """ # 現在のモードが「編集モード(EDIT_MESH)」かチェックする if check_viewmode('EDIT_MESH') == False : return "" # 編集中のアクティブオブジェクトを取得する active_object = bpy.context.view_layer.objects.active # 選択中の頂点に新規頂点グループを割り当てる bpy.ops.object.vertex_group_assign_new() # 作成した頂点グループのインデックス番号を取得する make_index = active_object.vertex_groups.active_index # 作成した頂点グループのグループ名を返却する return active_object.vertex_groups[make_index].name # 現在のモードが指定のモードかチェックする def check_viewmode(arg_checktype:str) -> bool: """現在のモードが指定のモードかチェックする Keyword Arguments: arg_checktype {str} -- 比較するモード名 Returns: str -- 現在のモード """ # 現在のモードをチェックする # (https://docs.blender.org/api/current/bpy.context.html#bpy.context.mode) modetype = bpy.context.mode return (arg_checktype == modetype) # 関数の実行例 # 選択中の頂点から新規頂点グループを作成してグループ名を取得する make_groupname = make_vertexgroup() # 結果をコンソールに表示する print("VertexGroup : " + make_groupname)
・実行前
・実行後
・再実行後