MAXScript と Dotnet の値の変換

MAXScript は、ネイティブ値から DotNet 値へ、および DotNet 値から MAXScript 値への変換を自動的に行います。

さらに、値の変換は、3ds Max 2010 以降 の専用の関数を使用して明示的に行うこともできます。

自動変換

次の表は、ネイティブの MAXScript の値の型と、3ds Max 9以降 で変換された DotNet 値の型を示したものです。

MAXScript の型

DotNet の型

Integer, Integer64, IntegerPtr, Float, Double, MSTime
Byte, SByte, Decimal, Int16, UInt16, Int32, UInt32, IntPtr, UIntPtr, Int64, UInt64, Single, Double
Boolean
Boolean
String
String, Char array

次の表は、DotNet の値の型と、変換されたネイティブの MAXScript の値の型を示したものです。

DotNet の型

MAXScript の型

Byte, SByte, Decimal, Int16, UInt16, Int32, UInt32
Integer
Int64, UInt64
Integer64
IntPtr, UIntPtr
IntegerPtr
Single
Float
Double
Double
Boolean
Boolean
String, Char array
String

明示的な変換

以下のメソッドは、MAXScript 値を DotNet 値に変換するものです。

3ds Max 2010 以降で使用可能です。

dotNet.ValueToDotNetObject <value> { <dotNetClass> | <dotNetObject> }

最初の引数として渡された MAXScript 値を、2 つ目の引数として指定された型の DotNet オブジェクトに変換し、dotNetObject 値を返します。

このメソッドを使用することにより、MAXScript 配列から簡単に DotNet 配列を作成できます。

例:

type = dotNetClass "System.Int32[]"
--> dotNetClass:System.Int32[]
res = dotnet.ValueToDotNetObject #(11,12,23) type
--> dotNetObject:System.Int32[]
res.length
--> 3
res.getvalue 2 --DotNet arrays are zero-based.
--> 23

関連事項