FPS メソッドでの By-pointer 引数の操作の修復

3ds Max 5 の MAXScript 言語に関する改良点

3ds Max 5 以前のリリースでは、MAXScript は FPS メソッドの参照(ポインタ)引数を正しく処理していませんでした。通常、FPS メソッドはこれらのポインタを通じて値を戻しますが、MAXScript はこれらの値に対して何も行っていませんでした。参照引数として知られているポインタ パラメータのサポートが、3ds Max 5f の MAXScript に追加されました。

たとえば、 getSlicePlane EPoly メソッドの構文は次のようになります。

getSlicePlane <&point3>planeNormal <&point3>planeCenter <*float>planeSize

planeNormal は In および Out パラメータです

planeCenter は In および Out パラメータです

planeSize は In および Out パラメータです

planeNormal、planeCenter 、および planeSize は、メソッドによって返される値です。以前は、 planeSize 値を取得する方法がありませんでした。

現リリースでは、次のように記述できます。

--Define variables to hold the Out parameters:
plane_normal = Point3 0 0 0
plane_center = Point3 0 0 0
plane_size = 1.0
--Call the function and supply the variables by reference as In parameters
b = convertToPoly(Box())
b.getSlicePlane &plane_normal &plane_center &plane_size
--The variables will now contain the actual values of the slice plane:
plane_normal
plane_center
plane_size

参照引数が In パラメータである場合、引き渡す前にその値タイプをプリセットする必要があります。上記の例では、 plane_normal 変数が Point3 値にプリセットされています。

パラメータが、(In パラメータではなく) Out parameter only である場合は、変数を正しい値タイプにプリセットする必要はありません。

例:

AssemblyMgr.FilterAssembly a light &lightnodes

この例では、 lightnodes を undefined として組み込むことできますが、外されるノードの配列が含まれます。

関連事項