次の関数は、マテリアルおよびマテリアル エディタによるマテリアルの使用に固有のものです。
getMeditMaterial <slot_index>
マテリアル エディタのスロット 1 ~ 24 までのマテリアルを取得できます。
例:
foo = getMeditMaterial 3
setMeditMaterial <slot_index> <material>
getMeditMaterial
関数を補完して、番号の付いたマテリアル エディタ スロットにマテリアルを配置できるようにします。
マテリアルまたはテクスチャ マップのいずれかを <material>
として使用できます。
loadDefaultMatLib()
既存の 3ds Max マテリアル ライブラリ ファイルをロードします。
loadMaterialLibrary <filename_string>
名前の付いた 3ds Max マテリアル ライブラリ ファイルをロードして、現在のマテリアル ライブラリにします。
ファイル名が完全な特定のディレクトリ パスを持たない場合は、この関数は現在設定されているビットマップ パスすべてを検索します。
正しくロードできた場合は true
、ロードに失敗した場合は false
を返します。
saveMaterialLibrary <filename_string>
現在のマテリアル ライブラリを名前付きファイルに保存します。
正しく保存できた場合 true
、保存に失敗した場合 false
を返します。
fileOpenMatLib()
このメソッドでは[ファイルを開く](File Open)ダイアログ ボックスが表示され、ユーザがロードするマテリアル ライブラリを選択することができます。
fileSaveAsMatLib()
標準の[名前を付けて保存](Save File As)ダイアログ ボックスが表示され、ユーザが現在のマテリアルを保存できます。
fileSaveMatLib [quiet:<boolean>]
現在のマテリアル ライブラリが以前保存された(名前が付いている)場合、このメソッドによりマテリアル ライブラリは同じファイルに保存されます。
以前に保存していない場合は、標準の[名前を付けて保存](Save File As)ダイアログ ボックスが表示され、現在のマテリアル ライブラリを保存できます。
3ds Max 8 以降で使用可能な quiet:
オプションの詳細については、「抑制モード」を参照してください。
getMatLibFileName()
現在のマテリアル ライブラリ ファイルの名前を文字列値として返します。
renderMap <textureMap> [into:<bitmap>] [size:<point2>] [filename:<string>] [scale:<float>][filter:<boolean>] [display:<boolean>]
マテリアル エディタで使用できる RenderMap 関数へのアクセスを提供します。
この関数は、与えられたテクスチャ マップのレンダリングを含むビットマップ値を返します。
オプションの into:
引数を指定すると、この関数は既存のビットマップからサイズとその他のアトリビュートを取り込んで、指定されたビットマップにマップをレンダリングします。指定しない場合は、size:
および fileName:
引数を使って新しいビットマップ値が作成されます。
into:
および size:
パラメータを指定しない場合、既定のサイズは[200,200]になります。
scale:
引数は、3D テクスチャ マップに適用されるスケール係数です。これは UV に適用される 3 次元空間におけるサーフェスのスケールであり、ビットマップ描画に表示するテクスチャの割合をコントロールします。
filter:
引数が true
の場合、ビットマップはフィルタ処理されます。フィルタ処理をオンにしてビットマップを再スケールすると、処理速度が低下します。既定は false
です。
display:
引数が true
の場合、結果のビットマップは仮想フレーム バッファを使用して表示されます。それ以外の場合は、ビットマップが表示されません。既定は false
です。
例:
rm = renderMap $foo.material.diffuseMap size:[640,480] \ fileName:"foodif.bmp" save rm close rm
これは、ビットマップにマップをレンダリングして、それを .bmp ファイルとして保存します。
showTextureMap <material> [<texmap>|<material>] <boolean>
これは、シェーディングしたビューポート内のテクスチャの可視性を制御します。
テクスチャ マップを含むマテリアル、そのマテリアル内でコントロールされるテクスチャ マップ、表示をオンまたはオフにするブール演算を指定できます。
例:
foo=box() foo.material = standard diffuseMap:(checker()) showInViewport:true showTextureMap foo.material foo.material.diffuseMap on tm = checker() mat = standardMaterial diffuseMap:tm mm = multimaterial() mm[1] = mat foo.material = mm showTextureMap mm[1] tm on
マルチマテリアルの場合は、([] を使用するインデックス処理などを使用して)適切なサブマテリアルを指定する必要があります。
詳細については、「showTextureMap() function」を参照してください。
以下の 3ds Max システム グローバル変数をマテリアル エディタに適用できます。
currentMaterialLibrary
現在開いているマテリアル ライブラリに対応するマテリアルの仮想配列と、ルート レベルのマップが含まれています。
ライブラリのマテリアルは配列のインデックスを使用して取得でき、for
ループで繰り返し使用できます。
配列は番号や名前でインデックスを付けることができ、文字列を使用してマテリアル名を選択することが可能です。
この変数は読み取り専用です。
詳細については、「MaterialLibrary Values」を参照してください。
meditMaterials
マテリアル エディタのスロットに対応するマテリアルの仮想配列とルート レベルのマップが含まれています。
マテリアル エディタのマテリアルとルート レベルのマップへは、配列のインデックスを使用してアクセスし、for
ループで繰り返し使用できます。
配列はスロット番号を指定する番号や、名前、またはマテリアルやルート レベル マップの名前を選択する文字列でインデックスできます。
例:
foo.material = meditMaterials[1] meditMaterials[1].diffuse = red for m in meditMaterials do print m.diffuseMap meditMaterials[1]=standard() print meditMaterials.count -- number of slots
この変数は読み込み専用ですが、要素(スロット内のマテリアル)は割り当て可能です。
詳細については、「MaterialLibrary Values」を参照してください。
sceneMaterials
シーン内に存在するマテリアルとルート レベルのマップに対応するマテリアルの仮想配列と、ルート レベルのマップが含まれます。シーンのマテリアルとルート レベルのマップは、配列のインデックスを使用して取得でき、for
ループで繰り返し使用できます。
配列に、番号、名前、またはマテリアルやルート レベルのマップ名を選択する文字列によってインデックスを付けることができます。
この変数は読み取り専用です。
詳細については、「MaterialLibrary Values」を参照してください。
activeMeditSlot
MAXScript から、マテリアル エディタのアクティブ スロットにアクセスできます。
システム グローバル変数 activeMeditSlot に、現在アクティブなマテリアル エディタ スロットのインデックスが格納されます。
この値を読み込めば、アクティブ スロットを識別したり、整数(1 ~ 24)を割り当ててアクティブ スロットを設定したりできます。
例:
activeMeditSlot = 5 -- set slot 5 to active slot mtl = meditMaterials[activeMeditSlot] -- pick up active material/map