.mi 宣言ファイルにキーワードを入れると、ノードの各アトリビュート、またはノード自体にパラメータを追加できます。
標準的な mental ray パーサが宣言ファイルを受け入れられるよう、キーワードには接頭辞 #: が付いている必要があります。標準的な mental ray パーサはキーワードをコメントとして認識し、無視します(ノード ファクトリ パーサは無視しません)。間違った位置にある特殊なコメントや、構文的に誤りのある #: コメントは、構文解析エラーの原因になり、エラーはスクリプト エディタ(Script Editor)に書き出されます。
#: 付きのコメントは、シェーダ パラメータまたはフェノメナ パラメータの後ろか、宣言の要件セクションの中の 2 箇所に表示できます。
default scalar [scalar [scalar]] max scalar [scalar [scalar]] min scalar [scalar [scalar]] shortname "string" softmax scalar softmin scalar hidden boolean
キーワードが追加されない場合のデフォルトは 0、min/max および softmin/softmax は未定義、そしてショート ネームはノード上のアトリビュート数をカウントして一意に割り当てられます。同様に、固有のノード ID はノード数をカウントすることで定義されます。
アトリビュートに関しては、すべてのキーワードがすべてのアトリビュート タイプに意味を成すわけではありません。Maya および Node Factory でサポートする各データ型を以下に示します。
すべてのアトリビュートにショート ネームを付与できます。ファクトリはカラーの子ネーム/ショート ネームに R、G、B を追加し、ベクトルの子ネーム/ショート ネームに X、Y、Z を追加します。
declare shader
vector #: shortname "ov"
"multiplyDivide" (
integer "operation", #: default 1 min 0 max 2
vector "input1", #: default 1. 1. 1.
vector "input2" #: default 1. 1. 1.
)
#:
#: nodeid 6894 # This is the node ID for binary Maya files.
#:
version 1
end declare
declare shader
struct {
color "outColor", #: shortname "oc"
scalar "outAlpha" #: shortname "oa"
} "ramp" (
array struct "colorEntryList" {
scalar "position",
#: default 1.
color "color"
#: default 0.8 0.8 0.8
},
#: shortname "cel" # compound's short name
scalar "uWave",
#: shortname "uw"
#: default 0.5
#: softmin 1E-5 softmax 1
#: min 1.0E-05 max 1
scalar "vWave",
scalar "noise",
scalar "noiseFreq",
scalar "hueNoise",
scalar "satNoise",
scalar "valNoise",
scalar "hueNoiseFreq",
scalar "satNoiseFreq",
scalar "valNoiseFreq",
# Inherited from Texture2d
vector "uvCoord",
#: shortname "uv"
vector "uvFilterSize",
scalar "filter",
scalar "filterOffset",
boolean "invert",
#: default 0
boolean "alphaIsLuminance",
#: default 1
color "colorGain",
#: default 1.0 0.8 0.8
#: min 0.1 0.1 0.1 max 0.5 0.5 0.5
color "colorOffset",
scalar "alphaGain",
#: shortname "ag"
scalar "alphaOffset",
#: shortname "ao"
color "defaultColor"
)
#:
#: nodeid 6895 # Node ID for binary Maya files
#:
apply texture
version 2
end declare
ファクトリ パーサの構文と mental ray パーサの構文の対応
ファクトリ パーサは受け付けないが、mental ray のパーサは受け付ける事項を以下に示します。
declare shader
vector
"reverse" (
vector "input",
)
end declare
ファクトリは mental ray シェーダ宣言を元に Maya ノードを作成します。いったん作成されると、これらの各ノードはカスタム mental ray シェーダ(正確にはシェーダの定義)を表すことになります。各ノードは以下の各種 Maya シーン構成要素で使用するのに便利です。
ノード ファクトリはライト、ジオメトリ、カラー テクスチャ、スカラー テクスチャ、ベクトル テクスチャ、ライト プロファイル、シェーダといった mental ray シェーダ パラメータをメッセージ アトリビュートとして登録しています。
ノードはすべて上記アトリビュートにコネクトできます(ノードをアトリビュート エディタの message attr にドラッグすると、ソース ノードのメッセージ アトリビュートがアトリビュートにコネクトされる。たとえば、node1.message -> mrShaderNode.shader)。ただし、正しくコネクトする必要があります。コネクトが不正だと、Maya のクラッシュやレンダリングの停止が起こる可能性もあります。