LoginSignup
12
8

Blender で Python スクリプト:VS Code からデバッグする

Last updated at Posted at 2023-06-08

Blender で Python スクリプト:VS Code からデバッグする

こんにちは、@studio_meowtoon です。今回は、Windows 11 環境の Blender の Python スクリプトを、VS Code からデバッグする方法を紹介します。
python_in_blender.png

開発環境

  • Windows 11 Home 22H2 を使用しています。

技術トピック

Blender とは?

こちらを展開してご覧いただけます。

Blender

Blender はオープンソースの3Dコンピューターグラフィックスソフトウェアであり、無料で利用できます。

キーワード 内容
Python スクリプティング Blender は Python スクリプトを使用して操作できます。プログラム開発者は Python を活用してカスタムツールや自動化スクリプトを作成し、開発プロセスを効率化できます。
API と拡張性 Blender は豊富な API を提供しており、プログラム開発者は Blender の機能を拡張するためのアドオンやプラグインを作成できます。これにより、独自の機能やワークフローを追加することが可能です。
グラフィックス開発ツール Blender は強力な3Dグラフィックス開発ツールです。プログラム開発者は高品質なビジュアルエフェクトやリアルタイムレンダリングを組み込むことができ、魅力的なユーザーエクスペリエンスを提供できます。

プログラム開発者は Blender を使用して柔軟かつ効果的な3Dグラフィックスアプリケーションの開発を行うことができます。

Windows 11 に Blender をインストール

Microsoft Store 経由で入手する Blender では、今回の方法ではデバッグできません。

URL
https://www.blender.org/download/release/Blender3.3/blender-3.3.7-windows-x64.msi/

ダウンロードファイル
blender-3.3.7-windows-x64.msi

インストールパス
C:\Program Files\Blender Foundation\Blender 3.3\

初回起動後に表示を日本語に変更します。

image.png
↓ このよう変更しました。
image.png
その他の設定は好みで指定してください。※後で変更可能です。
image.png
[次]を選択します。
image.png
こちらのダイアログは無視して範囲外をクリックします。下のように、あらかじめ作成された正立方体の3Dオブジェクトが表示されます。
image.png

ここまでの作業で、Windows 11 に Blender 3.3 LTS をインストールし、日本語表示と初期画面の表示を行うことができました😋

Blender でスクリプトを使用してみる

上部メニュー [Scripting] タブを選択します。
image.png
左ペインの中段 [ビュー:コンソール] に Python スクリプトを入力します。
image.png

Blender で Python スクリプトを使用する方法の一つとして、こちらのコンソールに Python スクリプトを直接入力して対話的に実行していくことが可能です。

Python のバージョンを確認します。

>>> import sys
>>> print(sys.version)

出力結果

3.10.9 (main, Jan 10 2023, 11:01:25) [MSC v.1928 64 bit (AMD64)]

Blender 3.3 LTS では、内部的に Python 3.10.9 を使用していることが分かりました。

オブジェクトの一覧を表示してみます。

>>> for ob in bpy.data.objects:
>>>    print(ob.name)

出力結果

Camera
Cube
Light

この初期ファイルに、Camera、Cube、Light の3つのオブジェクトが存在していることが分かりました。

ここまでの作業で、Blender ファイル上のオブジェクトの情報を、Blender 同梱の Python から取得して表示させることができました😋

Windows 11 に Python をインストール

Windows 11 に Blender 同梱の Python と同じバージョンの Python をインストールします。※ VS Code で Blender モジュールのコード補間を利用可能にする目的があります。

Blender 3.3 LTS の Python のバージョン
3.10.9

URL
https://www.python.org/downloads/windows/

ダウンロードファイル
python-3.10.9-amd64.exe

インストールパス
install.png

C:\Users\$USER\AppData\Local\Programs\Python\Python310  

※オプション設定
image.png
[Install Now] を押してインストールします。

Windows 11 のコマンドプロンプトで確認します。
※ Windows 11 の再起動が必要です。

> python
Python 3.10.9 (tags/v3.10.9:1dd9be6, Dec  6 2022, 20:01:21) [MSC v.1934 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> print(sys.version)
3.10.9 (tags/v3.10.9:1dd9be6, Dec  6 2022, 20:01:21) [MSC v.1934 64 bit (AMD64)]

ここまでの作業で、Windows 11 に Blender に同梱されている Python と同じバージョンをインストールすることができました😋

VS Code に Python 拡張機能を設定

VS Code に Python 用の拡張機能をインストールします。
image.png
[左メニュー] → [拡張機能] → [pythonで検索]
Python extension for Visual Studio Code
image.png
[インストール] します。

Windows 11 の Python の PATH を VS Code に設定します。

[ファイル] → [ユーザー設定] → [設定] → [設定の検索]

@ext:ms-python.python

Python: Default Interpreter Path

C:\Users\$USER\AppData\Local\Programs\Python\Python310\python.exe

任意の場所に Python スクリプトファイルを作成して、VS Code から Python ファイル実行してみます。

hoge.py
print("ハローワールド")

VS Code でファイル右クリメニュー → [ターミナルで Python ファイル実行]
image.png
もしくは Python ファイルを選択すると表示される、右上の実行ボタンから実行します。
image.png

出力結果

hoge.py
ハローワールド

また、Python スクリプトをデバッグすることが可能です。
image.png

ここまでの作業で、Windows 11 に Python をインストールして、VS Code からデバッグ可能であることを確認できました😋

この時点では、拡張機能 Python extension for Visual Studio Code でデバッグを実行しています。まだ Blender とは連携出来ていません。

VS Code で bpy モジュールのコード補完を使用する設定

fake-bpy-module のインストールを行います。

管理者として実行したコマンドプロンプトから pip コマンドで Windows 11 の Python にライブラリをインストールします。※VS Code の再起動が必要です。

pip コマンドの確認

> python -m pip --version
pip 22.3.1 from C:\Users\$USER\AppData\Local\Programs\Python\Python310\lib\site-packages\pip (python 3.10)

fake-bpy-module インストール(※ 3.3 は Blender のバージョンです)

> python -m pip install fake-bpy-module-3.3
Installing collected packages: fake-bpy-module-3.3
Successfully installed fake-bpy-module-3.3-20230117

以下のように、VS Code から Blender の bpy モジュールにコード補完が可能となります。

import bpy
bpy.context.camera.angle_x

image.png

ここまでの作業で、Windows 11 側の Python に fake-bpy-module ライブラリをインストールすることができました😋

Blender と連携するデバッガ ptvsd を設定

ptvsd のインストールを行います。

管理者として実行したコマンドプロンプトから pip コマンドで Blender 側の Python にライブラリをインストールします。

> cd "C:\Program Files\Blender Foundation\Blender 3.3\3.3\python\bin"
> python.exe -m pip install ptvsd
Installing collected packages: ptvsd
Successfully installed ptvsd-4.3.2

Blender 側のパッケージを確認します。

> python.exe -m pip list
Package            Version
------------------ ---------
autopep8           1.6.0
certifi            2021.10.8
charset-normalizer 2.0.10
Cython             0.29.26
idna               3.3
numpy              1.22.0
pip                22.3.1
ptvsd              4.3.2
pycodestyle        2.8.0
requests           2.27.1
setuptools         63.2.0
toml               0.10.2
urllib3            1.26.8
zstandard          0.16.0

また、VC Code で補完を有効にする為に、管理者として実行したコマンドプロンプトから pip コマンドで Windows 11 側の Python にもライブラリをインストールします。

> cd C:\Users
> python -m pip install ptvsd
Installing collected packages: ptvsd
Successfully installed ptvsd-4.3.2

Windows 11 側のパッケージを確認します。

> python -m pip list
Package             Version
------------------- --------
fake-bpy-module-3.4 20230117
pip                 22.3.1
ptvsd               4.3.2
setuptools          65.5.0

ここまでの作業で、Blender と Windows 11 の Python に ptvsd ライブラリをインストールすることができました😋

Blender のファイルパス設定でユーザースクリプトの位置を指定する

ユーザーが作成した Blender 用の Python スクリプトを格納する為のディレクトリを作成します。

ここでは以下のディレクトリを作成しました。

C:\Users\$USER\AppData\Local\Programs\Blender\scripts

Blender でユーザースクリプトフォルダを設定します。

[編集] → [プリファレンス] → [ファイルパス] → [データ] → [スクリプト]
image.png
ユーザー用 scripts フォルダは以下の構成にします。

scripts
    -- addons
    -- modules

scripts/addons/__init__.py スクリプトを作成します。

__init__.py
from ..modules import *

scripts/addons/__init__.py スクリプトを作成することにより、scripts/modules に作成した Python スクリプトを、Blender からモジュールとしてインポートすることができます。

デバッグ用のスクリプトを作成

上記の scripts\modules フォルダに以下の debug.py スクリプトを作成します。※ debug.py というファイル名(※モジュール名)は任意です。

debug.py
import ptvsd
ptvsd.enable_attach()
ptvsd.wait_for_attach()

hoge = "hoge"
print("completed!")

VS Code 側のデバッグ設定

launch.json に以下のように記述します。
image.png

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: Remote Attach",
            "type": "python",
            "request": "attach",
            "connect": {
                "host": "localhost",
                "port": 5678
            }
        }
    ]
}

デバッグの実行

VS Code でブレークポイントを指定

VS Code で上記の debug.py を開き hoge="hoge" の箇所にブレークポイントを付けます。
image.png

Blender 側のスクリプトを準備

任意、または新規の .blend ファイルを開きます。

上部の [Scripting] タブを選択し、[+新規] ボタンを押します。
image.png
テキストエディターに以下のように記述します。
image.png

記述する内容
import importlib
import debug
importlib.reload(debug)

[Scripting] タブの [▶ スクリプト実行] ボタンを押します。(※Blender がデバッグ待機状態になる為フリーズします。)
image.png

VS Code でデバッグ開始

デバッグの開始 (F5) を押します。上記の hoge="hoge" のブレークポイントで停止した状態になります。

image.png
image.png

ここまでの作業で、Blender 側の Python スクリプトを VS Code でデバッグすることが可能となりました🎉🎉

VS Code で Blender のオブジェクトを確認してみる

debug.py スクリプトを修正します。

debug.py
import bpy
import ptvsd
ptvsd.enable_attach()
ptvsd.wait_for_attach()

for ob in bpy.data.objects:
    print(ob.name)

for ob in bpy.data.objects: にブレークポイントを設定します。

前回と同じ手順でデバッグを実行します。VS Code のブレークポイントで停止したコード上の変数で、Blender のオブジェクト名である "Camera" という内容が取れているのが確認できます。
image.png
また、VS Code のデバッグコンソールに出力が表示されます。
image.png

ここまでの作業で、VS Code が Blender の Python スクリプト開発用のコードエディタ・デバッガとして利用可能であると確認できました😋

まとめ

  • VS Code で記述した Blender 用の Python コードを Blender 側から実行することができました。
  • また VS Code 側のコードにブレークポイントを設定して実行中の Python コードを停止させ状況を確認することができました。

どうでしたか? Window 11 の VS Code で、Blender の Python スクリプトを開発する環境を手軽に構築することができます、ぜひお試しください。今後も Python / Blender の開発環境などを紹介していきますので、ぜひお楽しみにしてください。

推奨コンテンツ

12
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
8