>
GPT-4o mini
Blender 4.1では、Pythonスクリプトを使用してシーン内のオブジェクトを操作することができます。以下のスクリプトは、特定のプレフィックスを持つマテリアルが適用されているメッシュオブジェクトの一覧を取得し、コンソールに表示するものです。
python
コードをPython Consoleにコピーして使う。
import bpy
# 検索するマテリアル名のプレフィックス
material_prefix = "Material.020"
# マテリアルが適用されているオブジェクトをリストアップ
found_objects = False # オブジェクトが見つかったかどうかのフラグ
for obj in bpy.data.objects:
if obj.type == 'MESH': # メッシュオブジェクトのみを対象
for mat in obj.data.materials:
if mat and mat.name.startswith(material_prefix): # プレフィックスで始まるか確認
print(f"オブジェクト名: {obj.name} に {mat.name} が適用されています。")
found_objects = True
if not found_objects:
print(f"{material_prefix} で始まるマテリアルが適用されているオブジェクトは見つかりませんでした。")
スクリプトの説明
モジュールのインポート:
import bpy: BlenderのPython APIを使用するために、bpyモジュールをインポートします。
マテリアル名のプレフィックス設定:
material_prefix = "Material.020": 検索対象とするマテリアル名のプレフィックスを設定します。この例では「Material.020」で始まるマテリアルを探します。
オブジェクトのリストアップ:
found_objects = False: オブジェクトが見つかったかどうかを示すフラグを初期化します。
for obj in bpy.data.objects: Blenderのデータブロックからすべてのオブジェクトをループ処理します。
メッシュオブジェクトのフィルタリング:
if obj.type == 'MESH': オブジェクトがメッシュタイプであるかを確認します。メッシュオブジェクトのみを対象とします。
マテリアルの確認:
for mat in obj.data.materials: オブジェクトに適用されているすべてのマテリアルをループ処理します。
if mat and mat.name.startswith(material_prefix): マテリアルが存在し、指定したプレフィックスで始まるかを確認します。
結果の表示:
print(f"オブジェクト名: {obj.name} に {mat.name} が適用されています。"): 条件を満たす場合、オブジェクト名とマテリアル名をコンソールに表示します。
found_objects = True: オブジェクトが見つかったことを示すためにフラグを更新します。
オブジェクトが見つからなかった場合の処理:
if not found_objects: もしオブジェクトが見つからなかった場合、適切なメッセージを表示します。
このスクリプトを使用することで、特定のマテリアルが適用されているメッシュオブジェクトを簡単にリストアップすることができ、Blenderでの作業を効率化することができます。<
>light<
>dark<
>night-bule<
>vibrant-ink<
>wed<