本日は Blender の技術調査枠です。
Blender2.8で利用可能なpythonスクリプトを作ります。
アドオンスクリプト
アドオンとして登録可能なサンプルスクリプトです。
スクリプトを実行または登録すると、[3Dビュー]の[サイドバー]にパネルが追加されます。
このパネルのボタンをクリックすると処理が実行されます。
・addon_sample.py
# bl_infoでプラグインに関する情報の定義を行う bl_info = { "name": "HoloMon Sample Addon", # プラグイン名 "author": "HoloMon", # 制作者名 "version": (1, 0), # バージョン "blender": (2, 80, 0), # 動作可能なBlenderバージョン "support": "TESTING", # サポートレベル "category": "3D View", # カテゴリ名 "description": "Addon Sample Script", # 説明文 "location": "", # 機能の位置付け "warning": "", # 注意点やバグ情報 "doc_url": "", # ドキュメントURL } # 利用するタイプやメソッドのインポート import bpy from bpy.types import Operator, Panel from bpy.props import StringProperty # 継承するクラスの命名規則は以下の通り # [A-Z][A-Z0-9_]*_(継承クラスごとの識別子)_[A-Za-z0-9_]+ # クラスごとの識別子は以下の通り # bpy.types.Operator OT # bpy.types.Panel PT # bpy.types.Header HT # bpy.types.MENU MT # bpy.types.UIList UL # Panelクラスの作成 # 参考URL:https://docs.blender.org/api/current/bpy.types.Panel.html class HOLOMON_PT_addon_sample(Panel): # パネルのラベル名を定義する # パネルを折りたたむパネルヘッダーに表示される bl_label = "Sample Addon Panel" # クラスのIDを定義する # 命名規則は CATEGORY_PT_name bl_idname = "HOLOMON_PT_addon_sample" # パネルを使用する領域を定義する # 利用可能な識別子は以下の通り # EMPTY:無し # VIEW_3D:3Dビューポート # IMAGE_EDITOR:UV/画像エディター # NODE_EDITOR:ノードエディター # SEQUENCE_EDITOR:ビデオシーケンサー # CLIP_EDITOR:ムービークリップエディター # DOPESHEET_EDITOR:ドープシート # GRAPH_EDITOR:グラフエディター # NLA_EDITOR:非線形アニメーション # TEXT_EDITOR:テキストエディター # CONSOLE:Pythonコンソール # INFO:情報、操作のログ、警告、エラーメッセージ # TOPBAR:トップバー # STATUSBAR:ステータスバー # OUTLINER:アウトライナ # PROPERTIES:プロパティ # FILE_BROWSER:ファイルブラウザ # PREFERENCES:設定 bl_space_type = 'VIEW_3D' # パネルが使用される領域を定義する # 利用可能な識別子は以下の通り # ['WINDOW'、 'HEADER'、 'CHANNELS'、 'TEMPORARY'、 'UI'、 # 'TOOLS'、 'TOOL_PROPS'、 'PREVIEW'、 'HUD'、 'NAVIGATION_BAR'、 # 'EXECUTE'、 'FOOTER'の列挙型、 'TOOL_HEADER'] bl_region_type = 'UI' # パネルタイプのオプションを定義する # DEFAULT_CLOSED:作成時にパネルを開くか折りたたむ必要があるかを定義する。 # HIDE_HEADER:ヘッダーを非表示するかを定義する。Falseに設定するとパネルにはヘッダーが表示される。 # デフォルトは {'DEFAULT_CLOSED'} bl_options = {'DEFAULT_CLOSED'} # パネルの表示順番を定義する # 小さい番号のパネルは、大きい番号のパネルの前にデフォルトで順序付けられる # デフォルトは 0 bl_order = 0 # パネルのカテゴリ名称を定義する # 3Dビューポートの場合、サイドバーの名称になる # デフォルトは名称無し bl_category = "HoloMon" # 描画の定義 def draw(self, context): # Operatorをボタンとして配置する self.layout.operator("holomon.sample") # Operatorクラスの作成 # 参考URL:https://docs.blender.org/api/current/bpy.types.Operator.html class HOLOMON_OT_addon_sample(Operator): # クラスのIDを定義する # (Blender内部で参照する際のIDに利用) bl_idname = "holomon.sample" # クラスのラベルを定義する # (デフォルトのテキスト表示などに利用) bl_label = "SAMPLE ADDON" # クラスの説明文 # (マウスオーバー時に表示) dl_description = "Sample Addon Description" # クラスの属性 # 以下の属性を設定できる # REGISTER : Operatorを情報ウィンドウに表示し、やり直しツールバーパネルをサポートする # UNDO : 元に戻すイベントをプッシュする(Operatorのやり直しに必要) # UNDO_GROUPED : Operatorの繰り返しインスタンスに対して単一の取り消しイベントをプッシュする # BLOCKING : 他の操作がマウスポインタ―を使用できないようにブロックする # MACRO : Operatorがマクロであるかどうかを確認するために使用する # GRAB_CURSOR : 継続的な操作が有効な場合にオペレーターがマウスポインターの動きを参照して、操作を有効にする # GRAB_CURSOR_X : マウスポインターのX軸の動きのみを参照する # GRAB_CURSOR_Y : マウスポインターのY軸の動きのみを参照する # PRESET : Operator設定を含むプリセットボタンを表示する # INTERNAL : 検索結果からOperatorを削除する # 参考URL:https://docs.blender.org/api/current/bpy.types.Operator.html#bpy.types.Operator.bl_options bl_options = {'REGISTER', 'UNDO'} # 自作プロパティの定義例 # 参考URL:https://docs.blender.org/api/current/bpy.props.html message: StringProperty( name="message", # プロパティ名 default=("default"), # デフォルト値 subtype='NONE', # サブタイプ description="print message", # 説明文 ) # Operator実行時の処理 def execute(self, context): # オブジェクト追加機能のメソッドを呼び出す addon_sample_method(self, context) return {'FINISHED'} # 登録に関する処理 # 登録対象のクラス名 regist_classes = ( HOLOMON_PT_addon_sample, HOLOMON_OT_addon_sample, ) # 作成クラスと定義の登録メソッド def register(): for regist_cls in regist_classes: bpy.utils.register_class(regist_cls) # 作成クラスと定義の登録解除メソッド def unregister(): for regist_cls in regist_classes: bpy.utils.unregister_class(regist_cls) # 実行処理のメソッド def addon_sample_method(self, context): """実行処理のメソッド Args: context ([type]): 引数 """ # 引数の message 情報を取得 get_message = self.message print("Sample Execute : " + get_message) # 実行時の処理 if __name__ == "__main__": # 作成クラスと定義を登録する register()
アドオンのインストール
作成した HelloWorldAdOn.py をアドオンとしてインストールします。
Blender を起動し、メニューから 編集 -> プリファレンス を開きます。
Blenderプリファレンスダイアログが開くので[アドオン]タブを開きます。
[インストール]ボタンをクリックします。
ファイル読み込みの画面が開きます。
作成したアドオンスクリプトを指定して[ファイルからアドオンをインストール]をクリックします。
これでアドオンが参照用ディレクトリにコピーされます。
アドオンがコピーされる参照用ディレクトリのパスは OS によって異なります。
Windows | C:\Users\(ユーザ名)\AppData\Roaming\Blender Foundation\Blender\(Blenderのバージョン)\scripts\addons |
---|---|
Mac | /Users/(ユーザ名)/Library/Application Support/Blender/(Blenderのバージョン)/scripts/addons |
Linux | /home/(ユーザ名)/.config/blender/(Blenderのバージョン)/scripts/addons |
アドオンの有効化
次に参照可能なアドオンを有効化する必要があります。
今回のアドオンはサポートレベルを[テスト中(TESTING)]に設定したので、サポートレベルの[テスト中]を有効化します。
するとアドオンの一覧に取り込んだアドオンが表示されました。
これのチェックボックスをチェックして、アドオンを有効化します。
これでアドオンが有効化されました。
[3Dビュー]のサイドバーを確認するとパネルが追加されています。