Python.Import()を使用すると、Python ライブラリを読み込んで、MAXScript 内で使用することができます。 この例では、Python の組み込みメソッドおよび定数を読み込んで、pow()関数を使用します。
bi = Python.Import "__builtin__" -- <module '__builtin__' (built-in)> bi.pow 2 3 -- 8
モジュールがダーティになった場合は(キーワードが再定義された場合など)、Python.Reload()を使用して再度読み込むことができます。
python.reload bi -- <module '__builtin__' (built-in)>
int、bool、float、str などのシンプルな Python の型は、対応する MAXScript の型にコピーされます。リスト、タプル、辞書、クラスなどの複雑な型は、ラッパー オブジェクトによってマーシャリングされます。型のプロパティおよび関数には名前でアクセスできます。リストなどのシーケンス型の場合は、インデックスを使用して繰り返すことができます。MAXScript に渡された Python のリストは 1 をベースとします。
たとえば、Python タプルを作成してアクセスするには、以下を実行します。
bi = python.import("__builtin__") tp = bi.Tuple(#(1,2,3)) --(1, 2, 3) print tp[0] -- output: 1 bi.type(tp) -- output: <type 'tuple'>
Python 辞書を作成してアクセスするには、以下を実行します。
d = bi.dict one:1 two:2 three:3 -- {u'one': 1, u'three': 3, u'two': 2} d["four"] = 4 bi.print(d["four"]) -- 4
次に、Python から MAXScript に渡された、1 をベースとするリストの例を示します。
str = python.import("string") mystrlist = str.split("an example string") mystrlist[1] -- prints "an"
MAXScript 内部から、Python のコマンドとステートメント(単一のコマンド/式または一連のステートメント)、または Python スクリプト(.py スクリプトなど)を実行できます。次のように python.Execute コマンドと python.ExecuteFile コマンドをそれぞれ使用します。
たとえば次のように ExecuteFile コマンドを使用して完全パスを指定すると、3ds Max は、指定パスから Python ファイルを探します。
そうでない場合は、3ds Max は次のディレクトリ以下から Python スクリプトを探します。
たとえば、3ds Max は、userscripts\python、userscripts\startup\python、scripts\python、scripts\startup\python のディレクトリ以下の Windows パスを検索します。
MAXScript の Python インタフェースには、MAXScript で Python を使用するためのメソッドが含まれています。 MAXScript で
showinterface python
を実行すると、MAXScript リスナーに、使用可能なメソッドのリストが表示されます。以下、これらのメソッドと引数について説明します。
GetLastError(): Init() メソッド、Execute() メソッド、または ExecuteFile() メソッドの実行中に発生した最後のエラーに関連するエラーメッセージを文字列として返します。