CG業界の標準スクリプティング環境が Python+Qt でほぼ確定っぽいので、私も今後はこの環境で開発をしていくことにしました。個人的にはスクリプト言語は Ruby、GUI ツールキットは fltk が好きなんですけど、そこでわざわざマイノリティになっても仕方ないですからね。。。。
ここで問題になるのが、標準で配布されている PyQt には 64bit 版が存在しないことです。将来的には Maya にも標準で PyQt が添付されるようになるでしょうが、今のところは各自用意する必要があるようなので syoyo さんの記事を参考に自前ビルドをしてみました。
結論から言えば、時間はかかったもののアッサリと動きました。Maya 上の Python から Qt のサンプルを動かすのもバッチリです 🙂 ・・・と言いたいところですが、一つ致命的な問題があることに気づきました。
スクリプト実行中は Maya が固まる
はい、ちょっと考えれば当たり前ですねw しかし、このままでは使い物になりません。
どうしたものか。。。と悩みながらドキュメントを読んでいると、pumpThread というものを使えば解決するようです。これは Maya の devkit に含まれています(devkit/other/PyQtScripts/qt/pumpThread.py)。
pyQtScripts/userSetup.py を実行すると Maya のメニューバーに pythonScripts という項目が追加されて、サンプルを試すことができます。・・・が、これもまたきちんと動いていないようで、相変わらず Maya が固まってしまいます。
また、標準でついてくる pumpThread にはいろいろ問題があるらしく、改良版が python_inside_maya という ML の “PyQt in Maya examples” というスレッドに掲載されていました。ソースはまだ読んでいないので内容については何とも言えないものの、こちらを使用したほうがいいのかもしれません。
今のところ私がわかっているのはこれくらいです。PyQt on Maya についてはまだまだ調査を始めたばかりでわからないことだらけなので、何か情報をお持ちの方はぜひ教えてください 😀