MRが楽しい

MRやVRについて学習したことを書き残す

Blenderで利用可能なpythonスクリプトを作る その6(モディファイアの設定、モディファイアの解除)

本日は Blender の技術調査枠です。
Blenderで利用可能なpythonスクリプトを作ります。
bluebirdofoz.hatenablog.com

オブジェクトへモディファイアを追加

指定オブジェクトにモディファイアを追加します。
スクリプト例では「ブーリアン」モディファイアを追加して交差設定を行います。
・make_modifier_boolean.py

# bpyインポート
import bpy

# 「ブーリアン」モディファイアの追加
# 引数   arg_objectname      :指定オブジェクト名
# 戻り値
def make_modifier_boolean(arg_objectname='Default'):
  # 他のオブジェクトにモディファイアを適用しないよう全てのオブジェクトを走査する
  for ob in bpy.context.scene.objects:
    # 非選択状態に設定する
    ob.select=False
  # 指定オブジェクトを取得する
  selectob = bpy.data.objects[arg_objectname]
  # 変更オブジェクトをアクティブに変更する
  bpy.context.scene.objects.active = selectob
  # 変更オブジェクトを選択状態にする  
  selectob.select=True
  # 「ブーリアン」モディファイアを追加する
  bpy.ops.object.modifier_add(type='BOOLEAN')
  # 作成モディファイアを取得する
  selectmod = selectob.modifiers['Boolean']
  # 名前を指定オブジェクト名+「_Boolean」に設定する
  selectmod.name = arg_objectname + '_Boolean'
  # 演算設定を「交差」に設定する
  selectmod.operation = 'INTERSECT'
  return

# 関数の実行例
make_modifier_boolean('Cube')

f:id:bluebirdofoz:20180504195948j:plain

オブジェクトからモディファイアを削除

指定オブジェクトからモディファイアを削除します。
・del_modifier_boolean.py

# bpyインポート
import bpy

# 「ブーリアン」モディファイアの削除
# 引数   arg_objectname      :指定オブジェクト名
# 戻り値
def del_modifier_boolean(arg_objectname='Default'):
  # 他のオブジェクトにモディファイアを適用しないよう全てのオブジェクトを走査する
  for ob in bpy.context.scene.objects:
    # 非選択状態に設定する
    ob.select=False
  # 指定オブジェクトを取得する
  selectob = bpy.data.objects[arg_objectname]
  # 変更オブジェクトをアクティブに変更する
  bpy.context.scene.objects.active = selectob
  # 変更オブジェクトを選択状態にする  
  selectob.select=True
  # 「ブーリアン」モディファイアを取得する
  selectmod = selectob.modifiers[arg_objectname + '_Boolean']
  # モディファイアを削除する
  bpy.ops.object.modifier_remove(modifier=arg_objectname + '_Boolean')
  return

# 関数の実行例
del_modifier_boolean('Cube')

f:id:bluebirdofoz:20180504195957j:plain