【MAYA2022】MAYA2022で使えなくなったスクリプトを使えるようにできるかもしれない話【自己責任】
MAYA2022になって、標準のPythonのバージョンが2から3に変わった。
その結果使えなくなったスクリプトがある。
私の場合、特にダメージが大きいのは以下の3つ。
いずれも2022/02/01現在、2022対応はまだのよう。
神に祈る気持ちで対応を願っています。
なんとかできないかと調べたところ、以下の記事を見つけた。
頻繁にお世話になっているDaikinさんの記事だ。
Python2で書かれたスクリプトを、Python3に書き換える方法で、早速試したところ【SIWeightEditor】だけ成功した。
他にも使えなくなっていたスクリプトがいくつかあったが、何とかなったものもある。
本来なら、せっかくGithubで公開してくださっているのだし、コードを修正してプルリクエストとかしたらいいのかもしれないが、自分には知識がなく書かれていることを実行することしかできないので、恐れ多くて出来ない。
なので、この方法での対処はあくまで自己責任。
製作者の方が対応してくださるまでのその場しのぎ。
この記事の方法で修正して動かなくなったなんて相談を、絶対に製作者の方にしてはいけない。
それを了承してくださった方だけ、続きを読んでください。
※MITライセンスなので改変して私的利用する分には問題ない…はず。
はじめに
まず最初に言っておくと、この変換をすると2022以外のMAYAでは使えなくなる。
2と3互換の変換もできるようだが、私はやり方がわからない。
自分で使う分には複数バージョンの同時使用はしないので問題ないのだ。
手順は以下の通り。
- とりあえず複製してバックアップを取る。
- 各.pyファイルに2to3変換プログラムを実行する。
- 動作確認する。
1. バックアップを取る
スクリプトの中身を書き換えるのでバックアップは取っておき、作業はD:直下で行う。
最初はC:のApplicationPluginsフォルダで作業しようとしたが、書き込み時の管理者権限云々で、.bakファイルの生成時にエラーが出て止まってしまった。
2. 各.pyファイルに2to3変換プログラムを実行する
次に、.pyファイルに変換プログラムを実行する。
詳しい説明や、エラーに対する対処などは以下の記事を参照していただきたい。
私は何もわからない。
今回の場合は全ての.pyファイルに実行する必要があるので、該当するフォルダは
- Contents/plug-ins内
- Contents/scripts/siweighteditor内
の2箇所になる。
実行するコマンドも上記リンク先にあるコマンドそのままで、実行時のアドレスとファイル名だけ変えればいい。
コマンドプロンプトで変換をかけたいアドレスまで移動して、以下のコマンドを実行。
"C:\Program Files\Autodesk\Maya2022\bin\mayapy.exe" -m lib2to3 --nofix=long -w ファイル名.py
成功すると.bakファイルが同階層に生成される(これ自体はただのバックアップ)。
この調子で両方のフォルダ内の.py全てに変換プログラムを実行していく。
3. 動作確認
変換を実行したら、【SIWeightEditor-master】フォルダを元の場所に戻す。
MAYA2022を起動して、メニュー>ウィンドウにSiWeightEditorが追加されているか確認する。
無事起動できた。
(全機能をしっかり検証したわけではないので、後で何かあるかもしれない)
これがないとコンポーネントエディタで編集する羽目になるので、とりあえずほっとした。
他にもウェイト転送を簡単に出来たり、スムーズもかけやすかったり、不正なウェイトの修正が楽だったり、数値の編集が楽だったりととにかく便利なので、製作者様には頭が上がらない。
おわりに
AmaterasuやSiSideBarが使えないのは痛いが、単純にpyファイルのみで構成されているわけではないようなプラグインは私には無理。
逆に.pyファイル1つのスクリプト辺りは、手持ちに限るが成功率100%だった。