本日は Blender の技術調査枠です。
Blender3.0で利用可能なpythonスクリプトを作ります。
指定アーマチュアのボーンを全て選択状態にする
ボーンデータには Armature 型の bones 変数からアクセス可能です。
なおアクセス時に有効なレイヤーに含まれているボーンのみが参照されます。
docs.blender.org
ボーンの選択状態は select 変数で操作可能です。
docs.blender.org
サンプルスクリプト
対象オブジェクトがアーマチュアオブジェクトであればオブジェクト内のボーンを全て選択します。
なおスクリプトからのボーン選択は「ポーズモード」でなくても実行可能です。
・Script_select_boneall.py
# bpyインポート import bpy # 対象オブジェクトのボーンを全て選択する def select_boneall(arg_targetobject:bpy.types.Object) -> bool: """対象オブジェクトのボーンを全て選択する Keyword Arguments: arg_targetobject {bpy.types.Object} -- 対象オブジェクト Returns: bool -- 実行の正否 """ # 指定オブジェクトがアーマチュアか確認する # オブジェクトタイプの一覧 # (https://docs.blender.org/api/current/bpy.types.Object.html#bpy.types.Object.type) if arg_targetobject.type != 'ARMATURE': # アーマチュアでない場合はボーンを選択しない return False # アーマチュア内の全ボーンを選択状態にする(有効状態のレイヤー内のボーンのみ対象) # アーマチュア操作のマニュアル # (https://docs.blender.org/api/current/bpy.types.Armature.html#bpy.types.Armature.bones) for bone in arg_targetobject.data.bones: # 選択状態に設定する # ボーン操作のマニュアル # (https://docs.blender.org/api/current/bpy.types.Bone.html) bone.select = True return True # 関数の実行例 # 対象オブジェクトがアーマチュアオブジェクトであればオブジェクト内のボーンを全て選択する select_boneall(arg_targetobject=bpy.data.objects.get("metarig"))