Blenderスクリプトの規模が大きくなってくると、そろそろデバッガを使いたくなってきます。
これまでBlenderスクリプトを作る時はself.report一筋でしたので、そろそろ限界を感じてきていました。
そこで Eclipse+PyDev を使って、Blenderスクリプト開発のデバッグ環境を構築してみました。
デバッグ環境構築
Eclipseのダウンロード
Eclipseのホームページから、最新版のEclipseをダウンロードします。
必要に応じてJava SEをインストールするように求められるかもしれませんが、その場合は指示に従ってインストールを行います。
※ PyDevは Java SEのバージョンが6以下では動作しません 。インストールされているJava SEのバージョンが6以下の場合は、以下のリンクからJavaの最新版を入手してください。
(参考:http://ameblo.jp/cubsuke/entry-11767899203.html)
PyDevのインストール
PyDevを以下の手順従ってインストールします。
-
Help-Install New Software...をクリック -
Available SoftwareウィンドウのAdd...をクリック -
Nameに PyDev 、Locationに http://pydev.org/updates を入力してOKをクリック - しばらく経つと、
Available SoftwareウィンドウにPyDevが追加されるので選択した後、Contact all update sites during install to find required softwareのチェックボックスを外し、Next >をクリック
※ 注意:Contact all update sites during install to find required softwareのチェックを外さないと、5.までに長い時間がかかってしまいます。
(参考:Stackoverflow) -
Install DetailsウィンドウのNext >をクリック -
Review Licensesウィンドウでライセンスに同意した後、Finishをクリック - PyDevがインストールされるので、インストール後に Eclipseを再起動
デバッグ実行の準備
デバッグ用プロジェクトの作成
デバッグ実行のためのプロジェクトを作成します。
Eclipseプロジェクトの作成
-
File-New-Project...をクリック -
Select a wizardウィンドウから、PyDev-PyDev Projectを選択し、Next >をクリック -
Project nameに適当な名前をつけた後、Next >をクリック -
Finishをクリック
Blenderのパスを設定
-
Project-Propertiesクリック - 左のメニューから
PyDev - PYTHONPATHを選択 -
External Librariesを選択 -
Add source folderを選択し、以下のパスを追加
- (Blenderスクリプトのパス)/addons
- (Blenderスクリプトのパス)/addons/modules
- (Blenderスクリプトのパス)/modules
- (Blenderスクリプトのパス)/startup
- 必要に応じて個人用の作業ディレクトリ
デバッグの為のソース修正
デバッグサーバへ接続するソースの作成
PyDevデバッグサーバへ接続するためのソースを作成します。
作成したソースは、デバッグするBlenderスクリプトと同じディレクトリに置いてください。
import sys
DEBUGGING = True
def start_debug():
if DEBUGGING is True:
PYDEV_SRC_DIR = "(eclipseディレクトリへのパス)/plugins/org.python.pydev_XXXXX/pysrc" # 環境に応じて書き換えが必要
if PYDEV_SRC_DIR not in sys.path:
sys.path.append(PYDEV_SRC_DIR)
import pydevd
pydevd.settrace()
print("started blender script debugging...")
デバッグ対象のBlenderスクリプトの修正
デバッグを開始するために、デバッグ対象のスクリプトで デバッグを開始する場所 に start_debug() を追加します。
例えば、スクリプト実行開始直後にデバッグを開始したい場合は以下のようにします。
from . import debug
if __name__ == "__main__":
debug.startdebug()
PyDevデバッグサーバの起動
EclipseにBlenderを登録
Eclipseの外部ツールにBlenderを追加します。
追加の方法を以下に示します。
-
Run-External Tools-External Tools Configurations...をクリック - 左メニューから、
Programをダブルクリック -
Mainタブを選択し、LocationにBlenderの実行ファイル、Working Directoryに Blenderの実行ファイルが置かれたディレクトリ を入力
Nameには自分の好きな名前を入力(ここでは、 New_Configuration とする) -
Applyをクリック
デバッグサーバの起動
PyDevデバッグサーバを起動します。
起動の手順を以下に示します。
-
Window-Open Perspective-Other...をクリック -
Debugを選択し、Debugパースペクティブを開く -
Pydev-Start Debug Serverをクリックし、サーバを起動
デバッグ実行
Blenderの起動
以下の手順に従って、EclipseからBlenderを起動します。
-
Run-External Tools- New_Configuration をクリック - Blenderが起動
デバッグの実行画面
ここまでの説明をもとに、Blenderのスクリプトを作成してデバッグしてみました。
このような感じで、デバッグを開始した時点でEclipseを用いてデバッグを進めることが出来ます。
最後に
いつかはやろうと思っていたBlenderとデバッガとの連携ですが、特にハマるところ無く無事に連携できました。
デバッガを使うことで self.reportデバッグに比べて開発効率が格段に向上するので、ぜひ利用してみてはいかがでしょうか。
