MRが楽しい

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

Blenderで利用可能なpythonスクリプトを作る その3(オブジェクトの結合、表示/非表示)

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

メッシュオブジェクトの結合

シーン中にある全てのメッシュオブジェクトを結合します。
・join_mesh_objects.py

# bpyインポート
import bpy

# メッシュオブジェクトの結合
# 引数   arg_objectname:結合オブジェクト名
# 戻り値
def join_objects_mesh(arg_objectname=''):
  # シーン中の全てのオブジェクトを走査する
  for ob in bpy.context.scene.objects:
    # オブジェクトがメッシュであるか確認する
    if ob.type == 'MESH':
      # メッシュであれば選択状態にする
      ob.select = True
      # 対象アクティブオブジェクトに切り替える
      # メッシュはアクティブオブジェクトに結合される
      bpy.context.scene.objects.active = ob
    else:
      # メッシュでなければ選択状態にしない
      ob.select = False
  # オブジェクトの結合を実行する
  bpy.ops.object.join()
  # 結合オブジェクト名が設定されているか
  if len(arg_objectname):
    # オブジェクト名が設定されていれば名前を変更する
    bpy.context.scene.objects.active.name = arg_objectname
  return

# 関数の実行例
join_objects_mesh('JoinedObject')

f:id:bluebirdofoz:20180423000830j:plain

オブジェクトの表示/非表示

シーン中にある全てのオブジェクトの表示/非表示を切り替えます。
・switch_object_hide.py

# bpyインポート
import bpy

# メッシュオブジェクトの表示/非表示
# 引数   arg_ishide:表示(False)/非表示(True)
# 戻り値
def switch_object_hide(arg_ishide):
  # シーン中の全てのオブジェクトを走査する
  for ob in bpy.context.scene.objects:
    # 表示/非表示状態を設定する
    ob.hide=arg_ishide
  return

# 関数の実行例
switch_object_hide(False)

f:id:bluebirdofoz:20180423000841j:plain