値の操作

出力とフォーマット

print() および format() 関数はわかりやすい関数です。

format 関数は、任意の出力フォーマットを使用する場合や、複数の値を 1 行で出力する場合に使用します。

いずれの関数を使って値を出力しても、値が文字列で出力されます。これは、3ds Max オブジェクトやマテリアルなどの名前付きオブジェクトのオブジェクト名ではありません。

次の例では、変数 b に、マテリアルを適用した 3ds Max ボックス オブジェクトへの参照が含まれています。

    print b
    print b.name
    print b.material
    print b.material.name

出力:

    $Box:Box01 @ [-74.353745,0.000001,-19.931978]
    "Box01"
    Material #1:Standard
    "Material #1"

上記の出力結果も <value> as string 操作の結果を反映します。出力結果はオブジェクト名ではなく、文字列表記されたオブジェクトになります。

classOf、superClassOf、および isKindOf

次の表では、3ds Max ボックス オブジェクト(つまり b=box())への参照を含む変数のクラスおよびスーパークラスの階層を示します。

ClassOf SuperClassOf
b Box GeometryClass
box GeometryClass Node
GeometryClass Node MAXWrapper
Node MAXWrapper Value
MAXWrapper Value Value
Value Value Value

isKindOf() および classOf() 関数は、セットからオブジェクトをフィルタリングする場合に役立ちます。

次のいずれかを使用すると、box クラスのすべてのオブジェクトが変数 allBoxes に収集されます。

    allBoxes=for obj in $* where (isKindOf obj box) collect obj
    allBoxes=#()
    for obj in $* do (if classOf obj == box then append allBoxes obj)

インタラクティブ ノード選択関数への名前付きパラメータのひとつに、filter があります。これを使用すると、オブジェクトが選択可能な場合に true の値を返す関数を指定できます。

これらの関数では、classOfsuperClassOf、および isKindOf がよく使用されます。

次の関数は選択範囲をシェイプ オブジェクトに限定します。

    fn shape_filt obj = isKindOf obj Shape

使用方法の例については、「Pickbutton」を参照してください。