本日は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_○○に変更する処理を追加しています。
これを実行すると期待通りジオメトリごとにオブジェクトを分離できました。

本日は以上です。