Blender×Python その1 [オブジェクト呼び出し]

Blender

※当サイトでは、アフィリエイト広告を利用しています。

スポンサーリンク

無料で使える高機能3DCGソフトBlenderでPythonを使えるとのことなので試してみました。

Pythonを使うことで作業を自動化出来たり
アドオン(拡張機能)を作成することも出来るようです。

まあ今回の「オブジェクト呼び出し」は別にPyhotnを使う必要はありません。
むしろ普通に呼び出したほうが余裕で早いです。

事前準備

Blenderダウンロード

Download — blender.org
The Freedom to Create.

まずは本体をダウンロードします。

Blender Launcher

今回は必要ありませんが、あると便利なBlender Launcherも紹介しておきます。

これはBlnderの古いVerを使いたい時使えるソフトです。

動画や本を見て作業する時に使用しているVerが表示されていことが多いのですが
Verが違うと微妙に操作が違っていることがあります。

自力で見つけ出すのも結構面倒くさいので
そんな時は「Blender Launcher」を使ってVerを合わせると作業がし易いと思います。

GitHub - DotBow/Blender-Launcher: Standalone client for managing official builds of Blender 3D
Standalone client for managing official builds of Blender 3D - DotBow/Blender-Launcher

リンク先の「Releases」をクリックすると”Window”か”Linux”用のzipファイルがあるので
自分にあったファイルをダウンロードしてください。
”Mac”用は無いみたいです。

Blenderの設定

初期状態ではBlender内でPythonが使える状態になっていないのでその設定をします。

「プリファレンス」を開いて「インターフェース」から「開発者オプション」と「Pythonツールチップを表示」のチェックボックスにチェックを入れてます。

これでPythonを使用する準備が出来ました。

オブジェクトの呼び出し

Blenderを開いたら右上にある「Scripting」をクリックすると画像のような画面が開きます。

Pythonコードを書く方法は

  1. Pyhonコンソール
  2. テキストエディタ

の2つになっています。

単純なプログラムなら「コンソール」で複雑なプログラムなら「テキストエディタ」
といった感じですね。

プログラム自体に違いはありませんが、多少書き方が違うので個別に説明します。

Pythonコンソール

Pythonコンソールはコンソール画面にある<<<の横にコードを書いてエンターを押すと
プログラムが実行されます。

例えば立方体(cube)を呼び出したい時は

bpy.ops.mesh.primitive_cube_add()

と入力すれば立方体のメッシュが呼び出せます。

基本的なオブジェクトは「mesh」や「cube」の部分を変えるだけで該当するオブジェクトを
呼び出だす事ができます。

テキストエディタ

まずは新規をクリックします。

テキストエディタで同じように立方体(cube)を呼び出す時は

import bpy

bpy.ops.mesh.primitive_cube_add()

といった感じになります。
コンソールから直接打ち込む時と違って、bpyをimportする必要があります。

bpyは「Blender Python」のことらしく、一般的にAPIと呼ばれていモジュールの事らしいです。
正直詳しい事はわかりません。

プログラムを書き終えたら、三角の再生ボタンのようなアイコンをクリックすれば
プログラムが実行されます。

コードの確認・コピー

「追加」をクリックするか「Shift」+「Aキー」でオブジェクトを追加する画面が開きます。
この時に追加したいオブジェクトにマウスカーソルを合わせるとオブジェクトを追加するための
プログラムが表示されます。
あとは「Ctrl」+「Cキー」でコピーが出来るので、コンソールなりエディタに貼り付けられます。

複雑なプログラムはBlender上で確認は出来ないっぽいですが、割とネットにコードが転がっていたり
ChatGPTのようなAIに聞いてもコードを教えてもらえるので試して見ると面白いかもしれません。

ただAIに関しては微妙にコードが間違っていたりと、完璧とは言えない印象でした。

今回はここまでです。

ありがとうございました。

コメント

タイトルとURLをコピーしました