Bpy tips¶
オブジェクト操作¶
選択されたオブジェクトを取得する¶
Blenderの画面上で「アクティブ」と「選択されている」という二つの状態があります。
たとえば’Camera’, ‘Empty’, ‘Lamp’のオブジェクトがあるとして…
>>> bpy.data.objects <bpy_collection[3], BlendDataObjects> >>> bpy.data.objects.keys() ['Camera', 'Empty', 'Lamp']
アクティブなオブジェクトは以下で取得可能です。
>>> bpy.context.object bpy.data.objects['Empty']
選択されたオブジェクトは以下で取得可能です。
>>> bpy.context.selected_objects [bpy.data.objects['Empty'], bpy.data.objects['Camera']]
ちなみに、選択可能なオブジェクトはどうやったら確認できるか、というと
>>> bpy.context.selectable_objects [bpy.data.objects['Empty'], bpy.data.objects['Camera'], bpy.data.objects['Lamp']]
オブジェクトを選択する¶
スクリプトからオブジェクトを選択することも可能です。
3Dビューのメニュー、Select > Select All by Type… > Empty と同等のコマンド
>>> bpy.ops.object.select_by_type(type='EMPTY') {'FINISHED'}
オブジェクトの選択状態を保持するプロパティを変更して選択状態にします。
>>> bpy.data.objects['Camera'].select False >>> bpy.data.objects['Camera'].select = True >>> bpy.data.objects['Camera'].select True
オブジェクトの親を取得する¶
(少し冗長に書きます)
>>> bpy.data.objects <bpy_collection[3], BlendDataObjects> >>> bpy.data.objects.keys() ['Camera', 'Empty', 'Lamp'] >>> bpy.data.objects['Camera'] bpy.data.objects['Camera'] >>> bpy.data.objects <bpy_collection[3], BlendDataObjects> >>> bpy.data.objects.keys() ['Camera', 'Empty', 'Lamp'] >>> bpy.data.objects['Camera'] bpy.data.objects['Camera'] >>> bpy.data.objects['Camera'].parent bpy.data.objects['Empty'] >>> bpy.data.objects['Camera'].parent_type 'OBJECT'