MAXScript にカラーが表示される場所(ワイヤカラー、ライト カラーなど)は、すべて Color クラスのインスタンスで表されます。Point3 値を使用してカラーを指定することもできます。
定義済み MAXScript グローバル値。
r、g、b、およびオプションのアルファは、通常、0 ~ 255 の範囲の浮動小数点です。
x を r として、y を g として、z を b として解釈します。アルファは、不透明(255)とみなされます。
<color>.red or .r: Float <color>.green or .g: Float <color>.blue or .b: Float <color>.alpha or .a: Float
<color> == <color> <color> != <color> <color> + <color_or_number> <color> - <color_or_number> <color> * <color_or_number> <color> / <color_or_number>
チャネルごとの演算です。数字は R、G、B、A チャネルで均等に動作します。
カラー演算に関する重要な注意: |
加算と減算は、次のように R、G、B、A チャネルに対して均等に実行されます。 |
この高いアルファ値が生じるのは、MAXScript では 255 のアルファ値は出力されませんが、変数 aColor の値は内部的に(color 1 1 1 255)であるためです。このため、R、G、B チャネルと同じように、255 のアルファ チャネルが 255 に加算されて、512 のアルファが生成されます。 |
3ds Max 2 で実装された当初のカラー値には、浮動小数点コンポーネントを使用できますが、その時点では MAXScript が浮動小数点カラー ビットマップをサポートしていなかったため、主に 8 ビット/チャネルの RGBA 値に使用することが想定されていました。カラー値を出力するとき、または他の値をカラーに変換するときには、内部変換が実行されます。 カラー値を出力するとき、または他の値をカラーに変換するときには、内部変換が実行されます。 |
カラー値の乗算の結果がこのようになるのは、実際のコンポーネント値が通常は 0 から 1 の範囲の浮動小数点値であるためです。 0 ~ 1 から 0 ~ 255 へのスケーリングは、値を出力するとき、または他の値タイプに変換するときに、元のカラー値に対して MAXScript が実行する処理です。 128 のグレー値に 128 のグレー値を乗算すると、実際には光った白色である 128*128 = 16384 にはならず、以下のようになります。 (128/255.0 * 128/255.0)*255 または(.501961*.501961)*255 これは、もっと暗いグレー シェード(color 64.251 64.251 64.251)です。 このため、(color 1 1 1 255)を 0 ~ 1 の範囲のコンポーネントに変換した場合も、同じように(1.0/255*1.0/255)*255 = 0.00392157 の RGB コンポーネントが生成されますが、255 のアルファは 1.0 に変換された後、255 に戻されます。 |
このため、カラー値は浮動小数点カラー コンポーネント を使用した ハイ ダイナミック レンジ イメージ の計算にはあまり適していません。 この種の演算用に、MAXScript は Point4 値を提供しています。これを使用すると、明示的に 0 ~ 255 範囲との変換を行うことなく浮動小数点カラーを表現できます。この値は、3ds Max 6 で mental ray シェーダのカラー パラメータをサポートするために導入されました。 |
与えられたカラー間でランダムにカラーを返します。結果のアルファ コンポーネントは常に 255 です。
color1 のアルファ値を利用して、 color2 から color1 を合成します。この関数は次の関数と同じです。
noise3 <color> noise4 <color> <phase_float> turbulence <color> <frequency_float> fractalNoise <color> <H_float> <lacunarity_float> <octaves_float>
ノイズ関数の詳細は、「Point3 値」を参照してください。
以下のスクリプトでは、リテラル、コンストラクタ、プロパティ、演算子、およびカラー クラスの使い方を示します。