本日は Blender の技術調査枠です。
Blender2.8で利用可能なpythonスクリプトを作ります。
bluebirdofoz.hatenablog.com
オブジェクトの表示/非表示の設定
指定した名前のオブジェクトの表示/非表示を設定します。
・switch_object_visible.py
# bpyインポート import bpy # 対象オブジェクトの表示/非表示を設定する def switch_object_visible(arg_objectname="Default", arg_visible=False): """対象オブジェクトの表示/非表示を設定する Keyword Arguments: arg_objectname {str} -- 対象オブジェクトの名前 (default: {"Default"}) arg_ishide {bool} -- 表示(True)/非表示(False) (default: {True}) """ # 指定オブジェクトを取得する # (get関数は対象が存在しない場合 None が返る) targetob = bpy.data.objects.get(arg_objectname) # 指定オブジェクトが存在するか確認する if targetob != None: # 表示/非表示状態を設定する targetob.hide_set(not arg_visible) return # 関数の実行例 switch_object_visible( arg_objectname="Cube", arg_visible=False )
オブジェクトの表示/非表示の取得
指定した名前のオブジェクトの表示/非表示を取得します。
対象オブジェクト自体の状態ではなく、コレクションを考慮した表示状態の取得が行えます。
・check_object_visible.py
# bpyインポート import bpy # 対象オブジェクトの表示/非表示を取得する def check_object_visible(arg_objectname="Default") -> bool: """対象オブジェクトの表示/非表示を取得する Keyword Arguments: arg_objectname {str} -- 対象オブジェクト名 (default: {"Default"}) Returns: bool -- 表示(True)/非表示(False) """ isvisible = False # 指定オブジェクトを取得する # (get関数は対象が存在しない場合 None が返る) targetob = bpy.data.objects.get(arg_objectname) # 指定オブジェクトが存在するか確認する if targetob != None: # 表示/非表示状態を取得する isvisible = targetob.visible_get() return isvisible # 関数の実行例 result = check_object_visible(arg_objectname="Cube") print("Result = " + str(result))
コレクションの表示/非表示の設定
指定した名前のコレクション内のオブジェクトの表示/非表示を設定します。
・switch_collection_visible.py
# bpyインポート import bpy # 対象コレクション内のオブジェクトの表示/非表示を設定する def switch_collection_visible(arg_collectionname="Collection", arg_visible=False): """対象コレクション内のオブジェクトの表示/非表示を設定する Keyword Arguments: arg_objectname {str} -- 対象コレクションの名前 (default: {"Default"}) arg_ishide {bool} -- 表示(True)/非表示(False) (default: {True}) """ # 指定コレクションを取得する # (get関数は対象が存在しない場合 None が返る) targetcollection = bpy.data.collections.get(arg_collectionname) # 指定コレクションが存在するか確認する if targetcollection != None: # コレクション内の全てのオブジェクトを走査する for targetob in targetcollection.objects: # 表示/非表示状態を設定する targetob.hide_set(not arg_visible) return # 関数の実行例 switch_collection_visible( arg_collectionname="Collection", arg_visible=False )