Maya2022では一部ツールが使えない可能性アリ:Python3問題と対処法

Maya2022 には、今までのMayaとは大きく異なる変更点があります。
それは、Python3 に対応したことです。

Python3になったことで起こる問題点やその対処方法をご紹介します。

Maya2022 からは Python3

Maya2022からは、Python3で Mayaは動くようになりました。
Maya2020までは、Python2で動きます。

Maya2022以降を使う場合、この違いが大きなハードルになる可能性があります。
具体的には、一部のツールが使えなくなる可能性があります。
対処法は、ページ下部に記載しました。


Python3 とは、

“python”とは、プログラム言語のこと

そもそも ”Python” とは、プログラム言語の1つを指します。

プログラム言語は沢山ありまして、例えば C++・Java・HTML・PHP・Ruby などなど…。
その中の1つが Python です。
Mayaは、Mel と Python で動いています。いわば、Mayaの心臓をなすものといえます。

“3” とは、バージョン番号のこと

Python3 の “3” とは、バージョン番号のことです。

Windowsにも Vista や 8, 10, 11 といったバージョンがあるように、Pythonにもバージョン違いがあります。
Python2 と Python3 が存在します。

Mayaは今まで、Python2 を使っていました。
Maya2022 からは、 Python3 へ移行されました。
Maya開発者たちが、使う言語のアップデートを行ったということです。


どうしてPython3対応したのか

Python2 はサポート終了したからです。

具体的には、バグ修正対応の停止、新規機能追加の停止 が決まったということです。
もし、致命的な欠陥や セキュリティ的に脆弱な点が見つかったとしても対応されなくなる。ということです。
Maya開発者側も、それは看過できないという事で、Python3に移行したのでしょう。

何が問題なのか

Python2 で作られたツールが使えなくなる

Python2 と Python3 は プログラムの書き方や関数が変わったらしく、
Python3 環境では、Python2 で作られたツールは動きません。
Maya2022は、基本Python3環境です。Python2で作られたツールは動きません。

具体的には、有志の作ってくれたツールが動かなくなる可能性があります。
skinMagic や mGear など、有志が作ってくれたツールがPython2で作られていた場合、Maya2022では使えなくなります。
人によってはかなりショックでしょう。

▼Python2のツールをPython3環境で使用した際のエラー例

Mayaエラー文例

対処方法

Maya2022 を Python2 モードで起動する

Maya公式から、救済措置が用意されています。
Python2 モード で Maya2022 を起動することができます。
※この方法はMacでは使えないようです。

Maya公式:Maya2022 Python2モード

これで今までのPython2ツールを使用することができます。
ただし、今度は Python3 作られたツールが動かなくなります。
あくまで一時的な対処法です。

プログラムを Python3 用に書き換える

プログラムができる人なら、この方法はかなり有効でしょう。
ネット上には変換ソフトもあるようです。

Melで作られたツールを使う

Mayaで使われている言語は、MelとPythonの2つです。
Mel に関しては、Pythonのような互換性の問題はないようです。
例えば、CG自習部屋さんのツールなら Mel で作られているので、Maya2022になっても使用できます。

Maya2020 を使う

Python3 対応以前のバージョンである Maya2020 を使用する手もあります。
Mayaのバージョン上げができないという条件がつきますが、スピード重視なら悪い選択ではありません。


あとがき

ソフトの都合に振り回されるのは勘弁願いたいですが、悪いことばかりではないようです。

実はPython2サービス終了はだいぶ前から言われていたことで、Mayaの対応が遅いとも言われていました。
Python2より改善された点も、当然あるようです。
ツールを作る側からすれば、歓迎されることのようですね。
今後は、Python3で作られた便利なツールが出てくることでしょう。

複数人で作業する場合、Mayaのバージョンには、しばらく気を使った方が良いでしょうね。

今回は以上です。