2021年3月24日に Autodesk M&E2022がリリースされました。
そしてAutodesk M&E製品に含まれるMAYA2022もリーリス
正直MAYA2020以降のアップデートに目ぼしい機能がないままMAYA2021を迎えるのかと想いきや、そのMAYA2021をスキップしてのMAYA2022。
そして、Autodesk Media & Entertainment Collection(Autodesk M&E)からは他に3ds MAX 2022 、MotionBuilder 2022もリリースされました。Autodesk M&E製品の1つMudbox2022については、まだ公式のリンクがありません。Autodesk製品の販売を行う各認定販売パートナーが発表する中にはMudbox 2022の文字もあるので、リリース自体は予定されているとは思うのですが、少なくとも現時点ではまだのようです。
注意:
■Autodeskのアクティベーションサポートは過去5バージョンまでです。
2021がスキップされたMaya・Motion Builder・Mudboxも3ds Maxと同様、2020、2019、2018、2017までで、2016は外れます。
■Autodeskのサブスクリプションサポートについては過去3バージョンまでです。
Maya・MotionBuilder・Mudbox(2022 + 2020,2019,2018)
3dsMax(2022 + 2021,2020,2019)
Maya 2022 の新機能および更新されたワークフローでアーティストの作業を効率化し、さらに、テクニカルアーティスト・エンジニアとの良好なコラボレーション環境が期待されます。
ピクサーが開発した3Dシーングラフ形式及びライブラリの、Universal Scene Description (USD )がサポートされ、USD と Maya ワークフローの組み合わせをシームレスに使用できます。それに伴い、アニメーション ツール、リギング ツール、モデリング ツールも大幅に更新。
又、Bifrost、Arnold for Mayaの新しいプラグインの更新、面白いものとしては、Oculus RiftやHTC VIVEなどのVRヘッドマウントディスプレイを使用してモデリングするCreate VR for Maya 。3D空間でアイデアを直感的に形にできる、コンセプトデザインツールも追加されました。
その他にも様々な新機能やプラグインが追加されています。中でも、特定のコマンドやプラグインの場所を Maya がロードすることを防ぐ「セキュリティプリファレンス」。それと、起動時間と終了時間の短縮・起動中のフォーカス喪失を防止など起動の最適化が成された「起動時の操作性の改善」は地味ではありますが気になる改善点。
・カメラ シーケンサ
・独自のクラッシュ エラー レポートを取得する
・.hikc v1 の書き出しのサポート
・OCIO およびカラー管理
・リモート デスクトップ でビューポート 2.0 を OpenGL モードで実行する
上記の動作をコントロールする新しい環境変数も追加されました。
|
Maya 2022では多くの新機能やプラグイン、更新が実装されましたが、中でも筆者が注目するのは「Python 3」のサポートです。
これまでMAYAがサポートしていたPythonのバージョンは「Python 2.x」でした。基本的にMAYAのスクリプトを作成するのにPython2系で困ることは無いのですが、日本語ファイルの取扱には、面倒くささを感じていたので、今回の「Python 3」のサポートは歓迎。
この記事では、MAYA2022でサポートされた「Python3」でスクリプトを実行、日本語ファイルを文字化け無く読み込みこみます。又、Windows版とLinux版ではPython2系とPython3系を切り替えが可能なので、実際にPythonのバージョンを切り替える方法を紹介します。
・Maya 2022 の新機能:
https://help.autodesk.com/view/MAYAUL/2022/JPN/?guid=GUID-90A9A2C7-C8E3-4B4E-8C94-63553069F51E
|
MAYAで使えるPythonのバージョンを確認
早速MAYA2022でサポートされたPythonのバージョンを確認してみましょう。
MAYAでPythonのバージョンを確認するには、スクリプトエディターの[Python]タブで次のコードを実行します。
import sys
print(sys.version)
実行:
MAYA2022に実装されているPythonのバージョンは 3.7.7 である事が確認できました。
MAYAのPython3でprint()出力
Python2系とPython3系の、最も分かりやすい違いとして挙げられるのが print の記述方法
Python3系でprint出力する場合は
print(“Hello python3”)
と出力要素を「( )」で囲む必要があります。
Python2系でも「( )」で囲んで記述する事は出来ましたが、
print “Hello python3”
と記述しても出力できました。しかしPython3系の場合この方法ではエラーになります。
MAYA2022のスクリプトエディターに次のコードを記述して実行。
print("Hello python3")
実行:
問題なく「( )」で囲んだ要素”Hello python3″が出力されました。
試しに、「( )」をはずしたコードを実行してましょう。
pritnt "Hello python3"
実行:
やはりPython3でprintの「( )」を外すとエラーが返されました。
MAYAのPython3で日本語テキストファイルを読み込む
Pythonでファイルを読み込むにはopen()関数を使いますが、Python2.x系とPython3.x系ではエンコーディング引数の有無に違いがあります。
次のような日本語で書かれたテキストファイルをPythonで読み込む場合、open()関数を使用しますが、Python2.x系のopen()関数は、読み込む際に文字コードの指定が出来ないので、日本語などの2バイトで書かれたテキストファイルをopen()で開き読み込むと文字化けしてしまいます。
文字コードをutf8で保存したテキストファイル:textfile_utf8.txt
なのでPython2系で日本語ファイルを読み込む場合は、codecsモジュールを使用する方法
import codecs
textfile = "D:/liquidJumper2/textfile_utf8.txt"
open_utf8 = codecs.open(textfile, 'r', 'utf-8')
textfile_read = open_utf8.read()
print(textfile_read)
open_utf8.close()
若しくは、読み込んだテキストをdecode()で”utf-8″に文字コード変換する必要があります。
textfile = "D:/liquidJumper2/textfile_utf8.txt"
open_textfile = open(textfile)
textfile_read = open_textfile.read()
print(textfile_read.decode(encoding="utf-8"))
open_textfile.close()
しかし今回MAYA2022でサポートされたPython3.x系なら、open()関数に文字コードの指定ができるので、その手間が減ります。
openの引数[encoding]に”utf-8″を指定。
textfile = "D:/liquidJumper2/textfile_utf8.txt"
open_textfile = open(textfile,"r",encoding="utf-8")
textfile_read = open_textfile.read()
print(textfile_read)
open_textfile.close()
実行:
文字化け無く日本語とアルファベットが混在する文字列が出力されました。日本語・英語どちらかを気にして右往左往する必要がありません。
|
MAYAのPython3で日本語jsonファイルを読み込む
Python2系で日本語を含むjsonファイルを読み込むとエスケープ文字で出力されてしまう等扱いが面倒でした。
でも今回のアップデートでPython3系に対応したことにより、その悩みから解消されます。
Python3.x系で日本語を含むjsonファイルを読み込む場合も、テキストファイルの時と同様に、open()関数の引数[encoding]に文字コード”utf-8″を指定します。
文字コードUTF-8で保存したjsonファイル:json_file.json
jsonモジュールを使用してjsonファイルを読み込みます。
open()関数の引数[encoding]に文字コード”utf-8″を指定。
import json
jsonfile = "D:/liquidJumper2/json_file.json"
jsonfile_open = open(jsonfile,"r",encoding="utf-8")
jsonfile_load =json.load(jsonfile_open)
print(jsonfile_load)
jsonfile_open.close()
実行:
辞書に変換されて読み込まれ、日本語も正しく出力されました。
|
MAYAのPython3で日本語csvファイルを読み込む
日本語を含むcsvファイルを、Python2系で読み込む場合、リスト化されて読み込んだUnicodeの要素を取り出し、デコードして日本語文字列に変換する必要があります。
でもPython3.x系の場合はopen()関数に文字コードを指定できるので、あまり気にする必要がありません。
文字コードUTF-8で保存したcsvファイル:csv_test_j.csv
csvモジュールを使用してcsvファイルを読み込みます。
open()関数の引数[encoding]に文字コード”utf-8″を指定。
import csv
csvfile = "D:/liquidJumper2/csv_test_j.csv"
csvfile_open = open(csvfile,"r",encoding="utf-8")
csvfile_csvread =csv.reader(csvfile_open)
for i_csvfile_csvread in csvfile_csvread:
print(i_csvfile_csvread)
csvfile_open.close()
実行:
一行毎にリスト化され日本語も正しく出力されました。
|
Python2とPython3を切り替える
Python2系で書かれたスクリプトを、MAYA2022で使いたい場合は、PythonのバージョンをPython3系からPython2系に変更する必要があるかもしれません。
MAYA2022は既定で Python 3 モードで起動しますが、Windows版とLinux版は、Python2系とPython3系の切り替えが可能です。
■Python3系からPython2系に切り替える場合
・コマンド ラインから Maya を起動するときに -pythonver 2 オプションを使用
又は
・Maya_PYTHON_VERSION 環境変数を 2 に設定してから、コマンド ラインで Maya を起動
コマンド ラインからオプション -pythonver 2 を付けてMaya を起動します。
起動したMAYA2022のスクリプトエディターでPythonのバージョンを確認します。
2.7.11 と出力されPython2系に変更された事が確認できました。
|
|
豊富なカスタマイズメニューで、あなた好みの1台が購入できます。
人気の秘密は何と言ってもコスパの高さ。
最新のCPU・GPUパーツを搭載したモデルを驚きの価格で提供。
山口県の自社工場で組み立てられ徹底した試験・検査後に出荷。
無償修理サービスもありサポート体制も安心。
コスパに徹底的にこだわる方は公式サイトへ >> 【FRONTIER】
|
|
|
BTOパソコンの草分け的ブランドFRONTIER(フロンティア) 3DCG/動画編集/ゲーム用途に合わせてCPUやGPUなどパーツを自由に選べてコスパにもこだわる方にオススメ。 |
|
|
|
|
|