Autodesk Developer Networkの工藤 暁です。今回は先日リリースされましたAutodesk® 3ds Max® 2014 Extension新機能の一つであるPythonスクリプティング環境を御紹介します。紙面の都合上全ての情報をお伝え出来ませんが宜しくお願い致します。
既にマニュアルがAutodesk 3ds Max 2014 Python API Documentationとしてアクセス可能となっております。SDKやMAXScript同様ダウンロードも可能ですので是非御参照下さい。またサンプルコードはインストールフォルダの\scripts\Pythonフォルダに頭文字demoで始まるファイルが存在します。
では早速スクリプトを試してみましょう。MAXScript Listnerよりpython.Execute()又はpython.ExecuteFile()を以下の様に実行してみて下さい。python.ExecuteFile()はフルパスを指定可能です。
- python.Execute "print 'hello'"
- python.ExecuteFile "C:\Program Files\Autodesk\3ds Max 2014\scripts\Python\demoBentCylinder.py"
又、python.ExecuteFile "demoBentCylinder.py"の様にファイル名のみ指定した際は、次のフォルダを検索します。:
- ユーザスクリプトフォルダ(userscripts\python)
- ユーザスタートアップスクリプトフォルダ (userscripts\startup\python)
- スクリプトフォルダ (scripts\python)
- スタートアップスクリプト (scripts\startup\python)
- WindowsのPath環境変数. コマンドプロンプトにてecho %path%として確認可能
折角のPython環境ですから、PyQt, PySide等の拡張ライブラリを使用されたいかと存じますが、注意として3ds Maxは64Bit版のQt4.8.2.0とPython 2.7.3を使用しております。拡張ライブラリについても同様の環境にてビルドされたものをご利用ください。又、Pythonが認識可能な場所(環境変数sys.path)への配置をお願いします。 バイナリパッケージのインストーラを使用される際はアドミニストレータ権限を持つユーザにて行って下さい。
Pythonで文字列を扱う際もUnicodeで処理する必要です。これはドキュメントの3ds Max Python API > Using Unicodeとして御紹介されております。サンプルプログラムもdemoUniCodeIO.pyとして存在が、サンプルプログラムにて使用されている妙な文字列は気にしないで下さい。
最後にPython環境を印象付けるサンプルプログラムを御紹介させて頂きます。demoTYpeCasting.pyというサンプルコードにてyieldを使用しジェネレータによる遅延リストが作成されております。
シーン中にノードの階層構造を作成して頂ければ、サンプルコードが動作します。
お楽しみ下さい。
コメント