Blender APIで自動化を始めよう: 初心者向けガイド
Blender APIは、Pythonをベースにした強力なツールで、自動化やカスタマイズに無限の可能性を提供します。今回は、初心者がつまずきやすい最初の導入部分について解説します。
文章内に、あえて、素人でも取っつきやすいように、駄文を入れます。
プログラミングも、ブレンダーも専門知識の塊なので、専門用語が乱立します。
私も、この3年間、独りで悩み、苦しみ抜いて、ここまで来ました。
一日2時間、365日×3年(実際土日はほぼ丸1日)たかだか、2200時間程度の苦しみですが、ここでみんなに共有したいと思います。
誰かの道標になることを切に願ってます。
1. Blender APIの準備
まず、BlenderのPythonコンソールやエディターでコマンドを使用するための初期設定を行います。Blenderでの操作に慣れていれば、ショートカットやコマンドを使いこなしているでしょう。APIを使う際も、コマンドさえ知っていれば同じように簡単です。しかし、初期設定をしないとコマンドが表示されません。
Pythonコマンドを表示させる初期設定
メインメニューから「編集(Edit)」を選択。
「Preferences」をクリック。
「Interface」タブで「Developer Extras」をチェック。
「Python Tooltips」を有効にします。
2. import bpy と bpy.data.scenes の基礎
import bpy は、Pythonがbpyというモジュールをインポートする意味です。これは、BlenderのAPIを使用するための基本的な準備です。
以下駄文
pythonはあくまで頭脳だと思ってください。
腕(bpy)がないと、どんなに優れた頭脳があっても、行動が起こせません。
import bpy
bpy.data.scenes['Scene.001'].name
bpy.ops.mesh.primitive_cube_add()
上記のように、最初の1文に必ず入れましょう。
bpy.data.scenesについて
普段、blenderにて、モデラーがモデル作成時には、
以下の手順になると思います。
①データを開く
②sceneを選択
③選択後、モデル編集
少なくとも、私はそうです。→pythonも同じです。
①import bpyにて、腕を装備
②pythonがその腕を使って、sceneを選択できるようにします。
それが、bpy.data.scenes['シーン名'].nameです。
bpy.data.scenesは、開いているデータのすべてのscene名を
リスト(表)という形で集めています。(そういう関数なんです)
以下に、bpy.data.scenesをpythonコンソールで実行してみました。
# シーン名でアクセス
print(bpy.data.scenes['Scene'].name)
# インデックス番号でアクセス
print(bpy.data.scenes[0].name)
3. 自動化の利点
Pythonを使用してBlenderでの操作を自動化することで、反復的な作業を効率化できます。例えば、複数のシーンに同じ処理を適用する場合、次のようなコードで自動化できます。
以下駄文
でも、1つの処理なら、自分で選択したほうが楽じゃない?
っと思いますよね。確かに、楽です…1つデータを弄るだけの処理ならね。
仮に同じ処理を各Sceneに施す必要があったらどうでしょうか。
これを見てほしいです。
for i in bpy.data.scenes:
print(i.name)
# 各シーンに対する処理をここに記述
プログラマーの人なら何気ない普通の話なんですが、
リストに入れる=連続処理ができるということなんです。
よくプログラマーはfor文でぶん回すとか言ってます。
つまりpythonが、常人にはできないことをやらせてるわけです。
今回は、たまたま、Sceneへのアクセスですが、例えば、座標を指定して、そこに頂点を打つとか、所定の場所に
もの動かす、その座標をもし、リスト化出来たら・・・・
そのリストの座標が二次元の絵から座標が取れたら・・・
(つまり、2次元の絵の座標が取れる。→pythonでblender内に座標を連続で打てる)これの意味わかりますか?
もし2Dの座標があればblender内に転記できてしまうわけです。
Pythonかじっている人は普通に思っちゃうんですね。
この記事を読む方は、間違いなく、APIの使い方を
求めてくる方だと思います.…
授けておきます。
# 座標リストから頂点を打つ例
coordinates = [(1, 2, 3), (4, 5, 6), (7, 8, 9)]
for coord in coordinates:
bpy.ops.mesh.primitive_cube_add(location=coord)
まとめ
Blender APIを使いこなすことで、自動化やカスタマイズが格段に容易になります。初期設定をしっかり行い、基本的なコマンドを理解することで、Blenderでの作業を大幅に効率化できるでしょう。PythonとBlender APIの可能性を探求し、クリエイティブなプロジェクトを実現してください。
この記事が、Blender APIの初めての一歩を踏み出す助けになれば幸いです。引き続き、定期的な更新と一貫したテーマで、Blenderの魅力を探求していきましょう
この記事が参加している募集
この記事が気に入ったらサポートをしてみませんか?