[Blender] Pythonスクリプトを使って個別データを取得する
Blenderは、Pythonスクリプトが使えるので、それを使って独自のデータを出力する方法を短期学習してみる。
Blenderのスクリプトの書き方は3種類
1. Pythonコンソールに記述
コマンドを直接実行できますが、毎回コマンドを打ち込む必要があります。(コピペでもいいですが) 表示切り替えで「Python Console」を選択する。>>> print("Hello World")
Hello World
コマンドで、bpy.と入力して、tabキーを押すと・・・
緑色の文字で、bpy直下のメソッドが表示されます。
ある程度のアタリをつけて、操作できそうですね。
ちなみに、メソッド改装でも、tabキーをどんどん押して、緑のヒント文字がでるので、なれると超便利です。
2. テキストエディタから実行
テキストエディタに書き込んだスクリプトを実行します。 表示切り替えで「Text Editore」を選択する。import bpy
#2重forループ
for i in range(5):
for j in range(5):
#選択オブジェクトをコピー
bpy.ops.object.duplicate()
#オブジェクトの座標を指定
bpy.context.object.location.x = i * 2
bpy.context.object.location.y = j * 2
#オブジェクトのスケールを指定
bpy.context.object.scale.x = (5-i) / 5
bpy.context.object.scale.y = (5-i) / 5
bpy.context.object.scale.z = (5-i) / 5
#オブジェクトの角度をオイラー角[rad]で指定
bpy.context.object.rotation_euler.x = i / 5
bpy.context.object.rotation_euler.y = j / 5
参考 : 【超入門編】Blender Python(BPY)の使い方
ヘッダimportに"import bpy"を書くのがお決まりのようです。
bpyは、BlenderPythonの略っぽいですね。
実行すると次のように、キューブがコピーされて次のような表示になります。
3. アドオンを作る
※アドオンは、別の記事で説明したいと思います。bpyは操作ログで簡単に調べられる
表示切り替えで、「Info(情報)」にすると、Blenderの操作履歴が、表示されます。bpy.context.area.ui_type = 'VIEW_3D'
bpy.context.area.ui_type = 'INFO'
画面を切り替えた履歴が表示されていますが、bpy.***と書かれているので、ピンと来た人もいると思いますが、bpyの命令文が履歴として表示されています。
ということは、1回何かしらの操作を行ったこの履歴情報を、スクリプトにコピペすれば、その通りの再現操作ができてしまうということです。
また、特殊な操作にアクセスしたい場合でも、一度操作をして、そのログからアタリをつけていけば、比較的マニュアルいらずである程度のスクリプトは書けそうです。