本日は Blender の技術調査枠です。
Blender2.8で利用可能なpythonスクリプトを作ります。
bluebirdofoz.hatenablog.com
オブジェクトへモディファイアを追加
指定オブジェクトにモディファイアを追加します。
本スクリプト例では「ブーリアン」モディファイアを追加して交差設定を行います。
・add_modifier_boolean.py
# bpyインポート import bpy # 「ブーリアン」モディファイアの追加 # モディファイア追加の種類とマニュアル # (https://docs.blender.org/api/current/bpy.ops.object.html#bpy.ops.object.gpencil_modifier_add) def add_modifier_boolean(arg_objectname="Default") -> bool: """「ブーリアン」モディファイアの追加 Keyword Arguments: arg_objectname {str} -- 対象オブジェクト名 (default: {"Default"}) Returns: bool -- 実行の正否 """ # 指定オブジェクトを取得する # (get関数は対象が存在しない場合 None が返る) targetob = bpy.data.objects.get(arg_objectname) # 指定オブジェクトが存在するか確認する if targetob == None: # 指定オブジェクトが存在しない場合は処理しない return False # 変更オブジェクトをアクティブに変更する bpy.context.view_layer.objects.active = targetob # 「ブーリアン」モディファイアを追加する bpy.ops.object.modifier_add(type='BOOLEAN') # 作成モディファイアを取得する selectmod = targetob.modifiers['Boolean'] # 名前を指定オブジェクト名+「_Boolean」に設定する selectmod.name = arg_objectname + '_Boolean' # 演算設定を「交差」に設定する selectmod.operation = 'INTERSECT' return True # 関数の実行例 add_modifier_boolean("Cube")
オブジェクトからモディファイアを削除
指定オブジェクトからモディファイアを削除します。
・delelete_modifier_boolean.py
# bpyインポート import bpy # 指定モディファイアの削除 # モディファイア追加の種類とマニュアル # (https://docs.blender.org/api/current/bpy.ops.object.html#bpy.ops.object.gpencil_modifier_add) def delete_modifier_boolean(arg_objectname="Default", arg_modifiername="DefaultMod") -> bool: """指定モディファイアの削除 Keyword Arguments: arg_objectname {str} -- 対象オブジェクト名 (default: {"Default"}) arg_modifiername {str} -- 削除モディファイア名 (default: {"DefaultMod"}) Returns: bool -- 実行の正否 """ # 指定オブジェクトを取得する # (get関数は対象が存在しない場合 None が返る) targetob = bpy.data.objects.get(arg_objectname) # 指定オブジェクトが存在するか確認する if targetob == None: # 指定オブジェクトが存在しない場合は処理しない return False # 変更オブジェクトをアクティブに変更する bpy.context.view_layer.objects.active = targetob # モディファイアを削除する bpy.ops.object.modifier_remove(modifier=arg_modifiername) return True # 関数の実行例 delete_modifier_boolean( arg_objectname="Cube", arg_modifiername="Cube_Boolean" )