[Blender] Pythonスクリプトを使って個別データを取得する

eyecatch 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回何かしらの操作を行ったこの履歴情報を、スクリプトにコピペすれば、その通りの再現操作ができてしまうということです。 また、特殊な操作にアクセスしたい場合でも、一度操作をして、そのログからアタリをつけていけば、比較的マニュアルいらずである程度のスクリプトは書けそうです。

注意点

Mac版 Blender Version 4.0.2 上記環境で、Python Consoleを表示した状態で、全画面表示に切り替えをすると、Blenderの画面がグレーアウトして、アプリ終了することもできなくなります。(強制終了することになります)