Blenderで3DCGリアルタイムコラボレーション(共同編集)ができる神アドオンMixer 1.0.1をBlender 3.4で動かす話ーサポート切れで動かなくなっちゃったのを復活させる3分クッキング—

さて、Blenderで共同編集できるアドオンを探してみると、2023年現在、現行で開発・メンテされているものはなさそうです(僕の探し方が甘い可能性は大なので、良いのがあったら教えてください)

見つけた中で1番新しかったのが、Mixerというアドオンです。

3dnchu.com

紹介記事を読む限りなんだか最高な予感がしますが、GitHubリポジトリを見てみると、Blender3.0に対応した(?)バージョン1.0.1で開発・サポート終了、リポジトリはアーカイブ状態となってしまっています。

開発終了は残念ですが、ソースをオープンにしてくれてるのはありがたいことです。

動かなかった...

まあ3系なら動くでしょと思い、いま使っている3.4にインストールしてみたところ、こんなエラーが出てしまいました。

AttributeError: 'bpy.app' object has no attribute 'binary_path_python'

幸い、原因不明のエラーとかじゃないので、このエラーメッセージを頼りにして、できるところまで頑張ってみることにしました。

さて、見ての通りbpy.app.binary_path_pythonが無いよと言われているので、少し調べてみるとこの書き方は3.0で廃止されたようです。要はPythonのパスを取得できればいいので、代わりにsys.executableを使えるとのこと。

wiki.blender.jp

ほう、それだけなら簡単そうじゃあないか、それだけならね...。

ちょっとだけ改造

エラーの出どころを辿ると、震源地はこのファイルです。

Blenerのアドオンフォルダ/MIXER/connection.py

先頭の方にimport sysを追加しておいて、例の行は124行目あたりの一箇所だけだったので、これを

[bpy.app.binary_path_python, "-m", "mixer.broadcaster.apps.server", "--port", str(get_mixer_prefs().port)],

こう書き変えて上書き保存します。

[sys.executable, "-m", "mixer.broadcaster.apps.server", "--port", str(get_mixer_prefs().port)],

動いた!

あとはBlenderを再起動して、Mixerを立ち上げてみると...

あっさり動きましたー!

もしアドオンがCとかで書かれてたら、きっと開発環境のセットアップで心折れてたし、Rustとか出てきても心折れてたと思うので、BlenderがPythonを採用してくれてほんとうに良かった。

もしかすると他にも不具合が出るかもしれないけれど、とりあえず動きはしたので、しばらく使ってみようと思います。