以下の内容はhttps://redhologerbera.hatenablog.com/entry/2024/12/21/235933より取得しました。


BlenderPythonでジオメトリごとにオブジェクトを分離する

本日はBlender枠です。

〇環境

・Blender4.1

・Windows11PC

〇ジオメトリごとにオブジェクトを分離する

Blenderではジオメトリノードや配列モディファイアなどを使用することでジオメトリを大量に配置することができます。

この場合はジオメトリとしては分離していますが、オブジェクトとしては1つとなっています。

今回はジオメトリごとにオブジェクトを自動で分離するPythonコードを実装します。

実装としてはbpy.ops.mesh.separateを使用します。

これはショートカットキーPキーで構造的に分離したパーツでのオプションで分離を行うことと同義です。

これをPythonであらわすと次のようになります。

import bpy

# アクティブなオブジェクトを取得
obj = bpy.context.object

# オブジェクトがメッシュであることを確認
if obj and obj.type == 'MESH':
    # オブジェクトを編集モードに変更
    bpy.ops.object.mode_set(mode='EDIT')
    
    # ジオメトリごとに分離
    bpy.ops.mesh.separate(type='LOOSE')
    
    # オブジェクトモードに戻す
    bpy.ops.object.mode_set(mode='OBJECT')
    
    # 分離されたオブジェクトを取得
    separated_objects = bpy.context.selected_objects
    
    # 新しいオブジェクトに対する操作例
    for new_obj in separated_objects:
        print(f"分離されたオブジェクト: {new_obj.name}")
        new_obj.name = f"Part_{new_obj.name}"
else:
    print("アクティブなオブジェクトがメッシュではありません。")

ここではオブジェクト名をPart_○○に変更する処理を追加しています。

これを実行すると期待通りジオメトリごとにオブジェクトを分離できました。

本日は以上です。




以上の内容はhttps://redhologerbera.hatenablog.com/entry/2024/12/21/235933より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14