BQtでblenderにPySide環境を構築してみた

CG
当ブログでは記事内に広告が含まれている場合があります。

blenderでPythonのツール開発をしようと思ったところ、デフォルトだとPySideが使えない。

他のDCCツールではPySideでGUIを開発しているので、blenderでもPySideを使う方法を調べていたところ「BQt」というアドオンを見つけました。

スポンサーリンク

BQtのGitHub

BQtはこちらのGitHubで公開されています。

GitHub - techartorg/bqt: A Blender add-on to support & manage Qt Widgets in Blender (PySide2)
A Blender add-on to support & manage Qt Widgets in Blender (PySide2) - techartorg/bqt

MPL 2.0ライセンスとのことです。

BQtインストール手順

インストール方法についてはこちらのページに書かれています。
https://github.com/techartorg/bqt/wiki/Installation

3種類の方法が書かれていますが、一番上がrecommendedなのでおすすめのようです。

Pluggetを使ったインストール

このrecommendedの手順で行う場合は「Plugget」というアドオンをまずインストールすることになります。

PluggetのGitHubを見ると「GitがインストールされているWindowsマシン」じゃないと使えないようです。
https://github.com/plugget/plugget-blender-addon

まず、1の”plugget blender addon”というリンクをクリックすると、blendファイルのダウンロードが開始します。

ダウンロードされた”install_plugged_addon.blend”というファイルを開くと、スクリプトが表示され、実行すればアドオンが追加されるようになっています。

スクリプトを自動で実行するのは危険なので、許可するかどうかのウインドウが出ます。”Allow Execution”で許可して実行します。

Allow Executionで許可する

ここで問題発生。

blender3.6だとPermissionErrorで失敗してしまいました…

PermissionError: [Errno 13] Permission denied: 'main.zip'

blender4.2だと問題なくアドオンが追加されています。

“pl”と入力してPluggetを探し、Pluggetの中のPreferencesにある検索ボックスから”bqt”を検索して、Installボタンを押します。

次にアドオンの検索ボックスに戻って”qt”と入力し、”PySide Qt wrapper (bqt)”を探してオンにします。

・・・と、ここでも問題発生。

QApplicationがimportできないと言われました。

足りないモジュールを追加

BQtのGitHubでrequirements.txtを見ると「PySide6」と「blender-qt-stylesheet」と書かれています。

blenderのPython環境にこれらがインストールされているかを確認。(blenderインストールフォルダ/バージョン/python/bin/python.exeを使う)

入ってない…

Pluggetを使えば必要なものを1クリックでインストールしてくれるらしいのに、結局うまくいってなかった模様。

ということで手動で追加します。

一旦GitHubからzipをダウンロードして、ここに書いてる通り、pipでrequirements.txtから追加。

追加されました。

再度blender4.2を起動して、”PySide Qt wrapper (bqt)”をオン!

・・・まだ同じエラーが出ます。

pipで追加されている場所がおかしい

requirements.txtのログを見ると、なぜかPySide6などのインストール先が「AppData/Roaming/Python/Python311/site-packages」の方になっている。

blender用のpythonフォルダに入っていないっぽい?

ということで-tでパスを指定してみました。

python -m pip install -r requirements.txt -t C:\Program Files\Blender Foundation\Blender 4.2\4.2\python\lib\site-packages

普通に実行するとまたまたパーミッションエラーになったので、管理者モードでコマンドプロンプトを起動してから実行しました。

すると正しい場所にインストールされていそうだったので、再度”PySide Qt wrapper (bqt)”をオン!

無事インストールが完了しました。

手動インストール

blender3.6はPlugget方式だとパーミッションエラーになったので、マニュアルインストールの手順でインストールしてみました。

手順は以下の通り。

  1. GitHubからzipでダウンロード
  2. zipを解凍して”bqt”フォルダをアドオンフォルダにコピー
  3. pipでrequirements.txtのものを追加

これだとすんなり行けました。

BQtの動作確認

インストールができたら動作確認を行います。

ダウンロードしてきたzipにサンプルがいくつか入っているのでそれを使うと楽でした。

bqt_demo/hello_world.pyを実行するとQDialogのウインドウが表示されます。

ウインドウタイトルが固定されてしまう問題の解決法

BQtを有効化していると、blenderを起動した時や、ファイルを開いた時でも「Blender Qt」という表示で固定されてしまいました。

こちらは環境変数「BQT_DISABLE_WRAP」を1に設定すれば対策できました。
https://github.com/techartorg/bqt/issues/68

まとめ

ということでblenderでもPySideで開発できるようになりました。(たぶん)

まだBQtを導入しただけなので何か不具合はあるかもしれないですが、色々試してみようと思います。

blenderにPySide6をインストールするだけだとうまくいかなかったので、BQtを見つけて助かりました。

コメント

タイトルとURLをコピーしました