【Blender×Python】オブジェクトデータをシーンデータから取得する方法について徹底解説

Blender

「bpy」とは、PythonからBlenderの機能を呼び出すことができるBlender Python APIのことです。Blenderはオープンソースの3Dアニメーションソフトウェアであり、「bpy」を使うことでBlenderの様々な機能をPythonスクリプトから呼び出して利用することができます。本記事では、「bpy」を用いたオブジェクトデータをシーンデータから取得する方法を紹介します。

# objectsプロパティによるシーンデータを用いたオブジェクトデータの取得
"Scene".objects

下記の様な内容で悩んでいる/困っている場合に使える方法を参考までにご共有させて頂きます。

・Blender上で、どの様にPythonを使うの?
・Blender上のPythonで、どの様にオブジェクトデータをシーンデータから取得するの?

また、「bpy」を使用する上で基礎的な情報は下記の記事で紹介しております。
他の「bpy」のクラスや関数について気になる方はこちらの記事をご覧ください。

objectsプロパティによるシーンデータを用いたオブジェクトデータの取得

“Scene”.objectsプロパティの基本構文

"Scene".objects
→ SceneObjects: bpy_prop_collection

“Scene”.objectsプロパティの使い方

import bpy

SampleScene  = bpy.data.scenes["Scene"]
SceneObjects = SampleScene.objects

print(f"Scene Objects:\n{SceneObjects} {type(SceneObjects)}")
for key, value in SceneObjects.items():
    print(f"[{key}] Name: {value.name}, Type: {value.type}")

SceneObjectList = [SceneObject for SceneObject in SceneObjects]
print(f"Scene Object List:\n{SceneObjectList}")
Scene Objects:
<bpy_collection[3], SceneObjects> <class 'bpy_prop_collection'>
[Point] Name: Point, Type: LIGHT
[Cube] Name: Cube, Type: MESH
[Camera] Name: Camera, Type: CAMERA
Scene Object List:
[bpy.data.objects['Point'], bpy.data.objects['Cube'], bpy.data.objects['Camera']]

まとめ

「bpy」(Blender Python API)は、Pythonを使ったBlenderの開発に非常に役立ちます。この記事では、コレクションデータをシーンデータから取得する方法を紹介しました。ぜひ活用してみてください。

関連検索ワード

How to get object data from scene data?

関連キーワード

blender, python, get, object, scene, 取得, オブジェクト, シーン