はじめてのBlenderアドオン開発 (Blender 2.7版)

Last Update: 2019.4.2

用語集

ウィンドウ

ウィンドウは、Blenderのアプリケーション画面全体のことを指します。 ウィンドウは基本的に1つですが、[ファイル] > [ユーザ設定...] を実行したときに、別の新たなウィンドウを開くことができます。 ウィンドウは複数のエリアから構成されます。

また、Blenderが提供するAPIから、ウィンドウの位置や幅・高さなどを取得することができます。

ウィンドウ、エリア、リージョンの関係を次の図で示します。

エリア

Blenderは3DビューやUVエディターなどの機能ごとに複数の領域に分割することができ、この領域のことをエリアと言います。 エリアは複数のリージョンから構成されます。

APIからエリア情報を取得することができ、エリアの座標値や幅・高さなどを参照できます。

ウィンドウ、エリア、リージョンの関係は、ウィンドウの用語説明の図を参照してください。

オプション

メニューなどから処理を実行した時に、ツール・シェルフの下側に表示されるUIです。

値を変更することで、直前に行った処理に対してパラメータを変更して再実行することができます。

オペレータクラス

アドオンの機能の処理を記述するクラスです。

オペレータクラスは、bpy.types.Operation クラスを継承して作成します。 execute メソッドに、機能の処理を記述します。 処理実行時に、マウス座標などのイベント情報を取得したい場合は、execute メソッドの代わりに invoke メソッドへ機能の処理を記述します。

またモーダルモード時に、キー入力やマウス移動などのイベントが発生するたびに呼ばれる modal メソッドを定義することもできます。 modal メソッドは、インタラクティブ性のあるアドオンを作成するときに定義します。

コンソールウィンドウ

Windowsのコマンド・プロンプト、MacやLinuxのターミナルのことを指します。

コンソールウィンドウからBlenderを起動することで、print に指定したテキストやデバッグ情報をコンソールウィンドウに出力することができます。デバッグ情報は、アドオン開発時に非常に役立つため、アドオン開発者はコンソールウィンドウからBlenderを起動するように心がけましょう。

サポートレベル

アドオンの提供方法のことを指します。 全てのアドオンは、提供方法に応じて、Release/Contrib/Externalのいずれかのサポートレベルに分類されます。

ReleaseはBlender本体とともに提供されるアドオン、ContribはテストビルドされたBlender本体と共に提供されるアドオン、Externalは個人が提供する(Blender本体と一緒に提供されない)アドオンです。 アドオンにもいろいろあるため一概には言えませんが、サポートレベルはアドオンの品質やメンテナンス性など、アドオンの将来性を示していると考えても良いです。 品質の高さでいうと、Release ≧ Contrib ≧ Externalの関係が成り立ちます。

Contrib以上のサポートレベルになるためには、Blender開発者のレビューに合格する必要があります。

スクリプト実行ログ

[情報] エリアのメニューの上にある、メッセージが表示される場所を指します。

初期状態でBlenderを起動したときは、非表示状態となっています。 スクリプト実行ログを表示するためには、[情報] エリアのメニューを下に移動させる必要があります。

スクリプト実行ログには、過去にBlenderで行った操作やログ、警告、エラー情報が表示されます。 特にエラー情報はアドオン開発時に役立つ情報であるため、アドオン開発時は常にスクリプト実行ログを表示しておきましょう。

スペース

エリアに関連付けられた情報が保存されています。 [3Dビュー] エリアであれば、軸の表示状態などを確認・変更できます。

ツール・シェルフ

エリア上でキーボードの [T] キーを押した時に、エリアの左側に表示されるパネルです。

テキストエディター

Blenderのエリアのうちの1つで、テキストを編集する機能を持ちます。 Blenderの機能の中で、アドオン開発者が利用者することの多い機能のうちの1つでです。

入力補完やシンタックスハイライトなどの機能を持ち、Blender向けのPythonスクリプトを作成することに特化されています。 Pythonスクリプトを テキストエディター から実行することもできるため、簡単なPythonスクリプトを実行するときに便利です。

また テキストエディター では、アドオン開発の勉強に役立つ、Pythonスクリプトのテンプレート(サンプル)を参照できます。

パネルクラス

プロパティパネルやツール・シェルフにUIを構築するためのクラスです。

パネルクラスは、bpy.types.Panel クラスを継承して作成し、draw メソッドにUIを構築するための処理を記述します。

プロパティクラス

bpy.propsモジュールに含まれる全てのクラスのことを指します。

ツール・シェルフの下側に表示されるオプションやパネルのUI構築、クラス間のパラメータ受け渡しなどに使用します。 整数型や浮動小数点型など、基本的な型がプロパティクラスとして用意されています。

プロパティパネル

エリア上でキーボードの [N] キーを押した時に、エリアの右側に表示されるパネルです。

メニュークラス

メニューを構築するためのクラスです。

メニュークラスは、bpy.types.Menu クラスを継承して作成します。 draw メソッドに、メニューのUI構築をするための処理を記述します。

モーダルモード

キー入力やマウス移動などのイベントを受け取り続けるモードです。

モーダルモード中は、context.window_manager.modal_handler_add 関数に指定されたモーダルクラスの modal メソッドが、イベント発生の度に呼ばれ続けます。

モーダルモードを終了するためには、modal メソッドが {'FINISHED'} または {'CANCELLED'} を返す必要があります。

リージョン

ツール・シェルフやプロパティパネルなど、エリア内のUIのまとまり単位をリージョンと言います。

ウィンドウ、エリア、リージョンの関係は、ウィンドウの用語説明の図を参照してください。