Takunojiの日記

自分が勉強したプログラム技術メモ

Blender Python Add-On〜初回アドオンの作成2〜

前回は、OpenCvPython版をBlenderから起動してみました。
本当は、輪郭の取得とかして「写真などを3Dモデルに変形しよう」
なんて考えていましたが、甘かった。。。

必要になる技術としては、画像の読み込みとグレースケール変換(ここまでは
OpenCvのメソッドを使用して、難なくできました。)

しかし、ここから読み込んだファイルの画像データより輪郭部分の座標を取得するために色々と勉強しなければならないため、先にアドオンの作成に入ろうと考え直した次第です。

と言うわけで、アドオンに関しては、以前行いました。

takunoji.hatenablog.com

そして、前回作成したものは、本当に最低限の処理のみを記載したものです。
今回は、前回のものから少しだけ内容を増やして記載いたします。
SecondAddOn.py --------------------------------

# Setting for Add-On Prooerties
bl_info = {
"name": "Working Copy Add-On",
"discription": "push Start -> create working copy script file",
"author": "Zenryoku Service",
"version": (0.1),
"blender":(2, 78, 0),
"location": "Tools>ZsTools",
"warning":"", # used for warning icon and text in addons panel
"wiki_url": "https://github.com/ZenryokuService/BlenderPython/"
"AddOnPython",
"tracker_url": "https://wiki.blender.org/index.php/Dev:Py/Scripts/Guidelines/Addons/metainfo",
"support": "COMMUNITY",
"category":"3D View"
}

import bpy

# 1. load all py file at this directory
# -> py file define some classes inherit operator class or panel class and the other
#
# 2. registor and unregistor loaded classes
def register():
print("*** Testing ***")

def unregister():
print("Goodbye World")

-------------------------------------------

とりあえずは、実行してみます。

f:id:Takunoji:20180224222450p:plain

この状態からFile -> UserPreferenceを開き「Add-ons」タブを開きます。

f:id:Takunoji:20180224223008p:plain

Install from File ... をクリックして、今回作成した。ファイルを選択します。
communityを選択して、下にある画像のAllを選択している「Category」部分で
3D Viewを選択します。

f:id:Takunoji:20180224222745p:plain

すると作成した、アドオンが存在しています。

f:id:Takunoji:20180224222923p:plain

こいつのチェックボックスにチェックを入れると

f:id:Takunoji:20180224223437p:plain

printメソッドの部分がコンソールに出力されます。

そして、ソースの赤字部分を"3D View"から"Object"に変更してみます。
そして、再度インストールしてます。

f:id:Takunoji:20180224223859p:plain

はじめの「3D View」に表示されていたものがObjectの部分にも表示されています。

今回わかったのは、"bl_info"の中で設定しているプロパティで

アドオンのインストール時に表示される場所が変わると言うことがわかりました。
そして、register()メソッドはアドオンの画面でチェックを入れた時に

unregistor()メソッドはチェックを外した時に起動することが確認できました。

次回は、作成したアドオン→Pythonファイル(*.pyファイル)があるディレクトリにある
他のファイルにあるクラスをロードする方法を学びたいと思います。