ArrayParameter 値
 
 
 

> ArrayParameter 値

 

   

値とコレクション - クイック ナビゲーション

3ds Max の一部のプラグインでは、パラメータ データが MAXScript による ArrayParameters としてアクセス可能な形式で保存されます。このため、インデックスでパラメータ データにアクセスし、パラメータ データを反復できます。

   

コンストラクタ:

<MAXWrapper>.parameter

parameter には ArrayParameter が含まれます。

   

プロパティ

<ArrayParameter>.count

ArrayParameter 内の値の数を返します。調整可能な ArrayParameter が使用されている場所は、MAXWrapper オブジェクトで特に明記していない限り読み込み専用です。

   

演算子

<ArrayParameter>[<integer>]

ArrayParameter の要素を返します。インデックスは 1 から始まります。

   

<ArrayParameter>[<integer>] = <value>

ArrayParameter の要素に値を設定します。

   

各 ArrayParameter には、特定のタイプ(浮動小数点など)のデータだけ、またはそのデータ タイプに一致するコントローラだけを含めることができます。 showProperties() 関数は、これらの配列パラメータを <type> array で示します。 たとえば、 int array texmap array のようになります。

プラグインでは、ArrayParameter 中の特定のエントリ 1 つをポイントするパラメータ名を定義できます。たとえば、 mapAmounts は、ArrayParameter を含む標準マテリアルのプロパティになります。この ArrayParameter 内の各要素には、1 つのマップ チャンネルに対するマップ量が含まれます。スクリプト内で簡単にアクセスできるよう、標準 .ambientMapAmount プロパティが mapAmounts[1] のエイリアスとして(その他のすべての一般的なマップのエイリアスとともに)提供されます。 ambientMapAmount エイリアスのコントローラには、エイリアス上の .controller プロパティあるいは mapAmounts[1] プロパティのいずれかによってアクセスすることができます。

例:

次のいずれかです。

$foo.material.ambientMapAmount.controller

または

$foo.material.mapAmounts[1].controller

これらは、周囲光のマップ量マテリアル プロパティのコントローラを取得できます。

3ds Max 6 以降では、ArrayParameter 値を強制的に Array に置き換えることができます。

mtl = standard()
mapsArray = mtl.maps as array

次のスクリプトでは、ArrayParameter の要素のデータ タイプを表示する際に、ArrayParameter 要素へアクセスする場合と、プラグインで ArrayParameter の中の 1 つの特定のエントリをポイントするパラメータ名を定義している場合の showProperties() の使い方を示します。

スクリプト:

m=CompositeMaterial() -- 合成マテリアルを作成します。
showproperties m -- マテリアルのプロパティを表示します。
m.amount -- パラメータ amount の値を表示します。
m.amount[1] *= .5 -- 要素 1 の値を半減します。
m=standard() -- 標準マテリアルを作成します。
showproperties m -- そのプロパティを表示します。
m.ambientMapAmount=13 -- エイリアスによって 1 つの要素の値を設定し、
m.mapAmounts[1] -- その要素が変更されたことを表示します。

[出力]

compositematerial:Composite -- 1 行目の結果です。
.materialList (Material : material array -- 2 行目の出力です。
.mixType (Composite Type) : int array -- ArrayParameter の要素のタイプは整数です。
.mapEnables (Map Enable) : bool array -- ArrayParameter の要素のタイプはブール値です。
.amount : float array -- ArrayParameter の要素のタイプは浮動小数点です。
OK -- 2 行目の結果です。
#(100, 100, 100, 100, 100, 100, 100, 100, 100, 100) -- 3 行目の結果です。
50.0 -- 4 行目の結果です。
Standardmaterial:Standard -- 5 行目の結果です。
.mapEnables (Map Enables) : bool array -- 6 行目の要約された出力です。
.maps : texmap array
.mapAmounts (Map Amounts) : percent array
.ambientMap (alias for maps[0])
.ambientMapAmount (alias for mapAmounts[0])
.ambientMapEnable (alias for mapEnables[0])
.bumpMap (alias for maps[8])
.bumpMapAmount (alias for mapAmounts[8])
.bumpMapEnable (alias for mapEnables[8])
13 -- 7 行目の結果です。
13.0 -- 8 行目の結果です