.
format パラメータには @ 表記を使用できます。@ 表記は、@ で参照されているフラグメントのパラメータから値を取得します。たとえば、format="@final” は、現在のフラグメントで「final」パラメータを探し、「final」がテクスチャまたはターゲット パラメータであることを確認してから、新しいターゲットの形式を「final」内のテクスチャまたはターゲットと同じになるように設定します。format は必須のアトリビュートです。
- size – 作成するターゲットのサイズです。整数のカンマ区切りリストとして表されます(「16,16」など)。使用できるサイズはハードウェアによって異なります。size パラメータでは、format パラメータと同様に @ 表記を使用できます。@ 表記は、@ で参照されているフラグメントのパラメータから値を取得します。たとえば、size ="@final” は現在のフラグメントで「final」パラメータを探し、「final」がテクスチャまたはターゲット パラメータであることを確認してから、新しいターゲットのサイズを「final」内のテクスチャまたはターゲットと同じになるように設定します。size は必須のアトリビュートです。
注: finalは、操作の最後に結果を描画するバッファを示します。
新しいオフスクリーン バッファを作成する際に、final の説明である finalDesc からプロパティを取得することができます。
- relSize – 相対サイズは、size アトリビュートで指定された値を乗算して、ターゲットの作成に使用される最終サイズを取得する任意のアトリビュートです。幅(x)および高さ(y)のスケールを示し、2 つの浮動小数点数からなるカンマ区切りリストとして表されます(「0.5,0.5」など)。相対サイズ アトリビュートには @ 表記を使用できませんが、size パラメータが間接的である場合は、間接的なサイズが相対サイズでスケーリングされます。
- msaa: マルチサンプル アンチエイリアシングのサンプル数
指定のターゲットをデバイス上の指定のターゲット スロットに設定します。ターゲットは、setTarget で使用する前に、取得しておくか、パラメータで指定しておく必要があります。
XML 構文:
<setTarget
index="0"
value="beauty"
/>
アトリビュート
index: 設定するターゲットのインデックス。4 つのターゲット(「0」~「3」)を同時に使用できます。index は必須のアトリビュートで、0 ~ 3 の整数を指定する必要があります。
value: デバイスに設定するターゲットの名前。このターゲットはローカル キャッシュ内にあるか、参照パラメータで指定する必要があります。value パラメータには @ 表記を使用できます。@ 表記は、@ で参照されているフラグメントのパラメータから値を取得します。たとえば、value ="@final” は現在のフラグメントで「final」パーメータを探し、「final」がターゲット パラメータであることを確認してから、「final」に格納されているターゲットを、指定のインデックスのデバイスのターゲットに設定します。value は必須のアトリビュートです。空の文字列 “” は Null として処理され、ターゲットの参照が解除されます。これは、ReleaseTargets を正しく機能させるために行われます。
指定のターゲットをデバイスの深度ステンシル バッファに設定します。ターゲットは、setDepthStencil で使用する前に、取得しておくか、パラメータで指定しておく必要があります。
XML 構文:
<setDepthStencil
value="myDepthStencil"
/>
アトリビュート:
- value: デバイスの深度ステンシル バッファに設定するターゲットの名前。このターゲットはローカル キャッシュ内にあるか、参照パラメータで指定する必要があります。さらに、深度形式で作成されている必要があります。value パラメータには @ 表記を使用できます。@ 表記は、@ で参照されているフラグメントのパラメータから値を取得します。たとえば、value ="@depthIn” は現在のフラグメントで「depthIn」パラメータを探し、「depthIn」が深度ターゲット パラメータであることを確認してから、「depthIn」に格納されているターゲットをデバイスに設定します。value は必須のアトリビュートです。空の文字列 “” は Null として処理されます。
このコマンドは、ローカル キャッシュ内の 1 つまたは複数のターゲットをターゲット キャッシュにリリースし、関連付けられたパラメータをローカル キャッシュから削除します。
XML 構文:
<releaseTargets
value="beauty,temp0"
/>
アトリビュート:
- value: リリースするターゲットのカンマ区切りリスト。空の文字列 ”” を使用すると、「すべてのターゲット」を指定しているのと同じ意味になります。また、ワイルドカード演算子「*」を使用すると、残りの文字列の照合が行われます。たとえば、エフェクトが「tone0」~「tone10」のターゲットを取得している場合は、**value="tone*"** を使用して、これらのターゲットを一括してリリースできます。
このコマンドはすべてのローカル パラメータをキャッシュにリリースします。
XML 構文:
このコマンドは、カラー バッファ、深度バッファ、ステンシル バッファの組み合わせをクリアして、指定値に設定します。
XML 構文:
<clear
color="0,0,0,0"
depth="1.0"
stencil="0"
/>
アトリビュート:
color: クリア カラーを表す float 値のカンマ区切りリスト(「0.63,0.32,0.77,0.0」など)。color はオプションのアトリビュートです。指定しない場合、または空の文字列 ”” を設定した場合、「カラー コンポーネントをクリアしない」という意味になります。使用できるのは float4 RGBA カラーのみです。
depth: 深度カラー値を表す単一の float 値(「1.00」など)。depth はオプションのアトリビュートです。指定しない場合、または空の文字列 ”” を設定した場合は、「z コンポーネントをクリアしない」という意味になります。
stencil: ステンシル バッファのクリア値を表す単一の整数値(「128」など)。最も一般的な形式の D24S8 で作成されたステンシル バッファの場合、使用できる値は 0 ~ 255 です。stencil はオプションのアトリビュートです。指定しない場合、または空の文字列 ”” を設定した場合は、「ステンシル コンポーネントをクリアしない」という意味になります。
このコマンドは、現在の描画カメラを指定値に設定します。
XML 構文:
<setCamera
value="camera0"
index="0"
/>
アトリビュート:
- value – アクティブにするカメラの名前です。ローカル パラメータとして存在しているか、有効値により間接的に指定されている必要があります。value パラメータには @ 表記を使用できます。@ 表記は、@ で参照されているフラグメントのパラメータから実際の値を取得します。たとえば、value ="@cameraIn” は現在のフラグメントで「cameraIn」パラメータを探し、「cameraIn」がカメラ パラメータであることを確認してから、「cameraIn」に格納されているカメラをコンテキストに設定します。また、特殊な値「light」は、オプションの index アトリビュートと一緒に認識されて、ライトに関連付けられたカメラを指定します。たとえば、 は、現在のカメラを、ライト 2 に関連付けられたカメラに設定します。value は必須パラメータです。
- index: カメラの光源として使用するライトを指定するオプションの整数パラメータ。value=”light” の場合のみ有効です。
このコマンドは、現在のビューポートを指定の描画領域に設定します。四角ポリゴン描画およびクリアを含むすべての描画はアクティブなビューポートに制限されます。
XML 構文:
<setViewport
value="0.0,0.0, 0.5,0.5"
/>
アトリビュート:
- value – 4 つの float 値からなるカンマ区切りリスト。ターゲット領域は正規化された座標 0..1, 0…1 で表されます。最初の 2 つの値は、この正規化されたスペース内のビューポートの位置を表します。2 番目の 2 つの値は、同様に正規化されたスペース内のビューポートのサイズを指定します。サイズが 1.0 の場合は、ターゲット全体がこの寸法に収まります。
このコマンドは、現在のはさみ長方形を指定の領域に設定します。はさみ長方形が有効になるようにレンダー状態が設定されていない場合は、このコマンドは無効です。はさみ長方形が有効な場合、四角ポリゴン描画を含む描画は、はさみ長方形に制限されます。
XML 構文:
<setScissorRect
value="0.0,0.0, 0.5,0.5"
/>
アトリビュート:
- value – 4 つの float 値からなるカンマ区切りリスト。はさみ長方形は正規化された座標 0..1, 0…1 で表されます。最初の 2 つの値は、この正規化されたスペース内のはさみ長方形の位置を表します。2 番目の 2 つの値は、同様に正規化されたスペース内のはさみ長方形のサイズを指定します。サイズが 1.0 の場合は、ターゲット全体がこの寸法に収まります。0 未満の値および 1 より大きい値は指定できません。はさみ長方形が有効で、この領域が空の場合、または画面上にない場合は、ピクセルが描画されないため、Render コマンドを実行してもレンダラが実行されず、スクリーンの四角形が描画されることもありません。
このコマンドはオーバーライド エフェクトを指定の値に設定します。四角ポリゴン描画を含むすべての描画は、リセットされない限り、オーバーライド エフェクトを使用します。
エフェクトを設定できるのは 1 回のみですが、再利用は何度も行うことができます。
XML 構文:
<setEffect
name="DownSampleEffect"
path="downSample"
technique="Main"
macrolist=""
/>
アトリビュート:
- name – 設定しているエフェクトの名前。必須です。この名前はエフェクト パスと同じにすることも、異なる名前にすることもできます。この値が "" の場合は、エフェクト パスがエフェクトの名前として使用されます。エフェクト パスも "" の場合は、現在のエフェクトが削除されます。
- path – エフェクト ファイルのパス。オプションです。この値が空でない場合は、ファイルと一緒にエフェクトが作成されます。指定したエフェクト名が既に別のエフェクトで使用されている場合、このエフェクトはリリースされます。この値が空の場合、指定したエフェクト名を持つエフェクトが再利用されます。エフェクトが存在しない場合、このコマンドは失敗します。
ファイル拡張子を指定する必要はありません。Maya では、使用されているデバイスに基づいて適切な拡張子が検索されます(DX11 の場合は .fx、コア プロファイルの場合は .ogsfx、コア プロファイル以外の OpenGL の場合は .cgfx)。
値を空の文字列 "" に設定すると、オーバーライド エフェクトは終了します。
- technique – アクティブなテクニックの名前。オプションです。エフェクト パスが空の場合、このパラメータは無視されます。エフェクト内にこのテクニックが見つからない場合、コマンドは失敗します。
- macrolist – マクロ名および定義のカンマ区切り文字列。オプションです。「SHADOWPARAM, 0.1, SHADOWCOLOR, 0x2310, …」のように、マクロ名の後に各定義が続きます。空の定義を指定するには、「PERSPECTIVE_ENABLED,,…」のように 2 つのカンマを使用します。エフェクト パスが空の場合、このパラメータは無視されます。
このコマンドは、現在のエフェクトのパラメータ値を指定の値に設定します。これ以降にこのエフェクトを使用する場合は、常にこの値が使用されます。
XML 構文:
<setEffectParameter
effect="downSample"
name="scale"
value="0.0,1.0"
/>
アトリビュート:
- effect – 設定するパラメータを保持するエフェクトの名前。effect は必須のアトリビュートです。
name – 設定しているパラメータの名前。name は必須のアトリビュートです。
value – パラメータの設定値。正確な構文はパラメータのタイプによって異なります。たとえば、上記の例では float2 の照合が行われ、target の照合は行われません。value パラメータには @ 表記を使用できます。@ 表記は、@ で参照されているフラグメントのパラメータから実際の値を取得します。たとえば、value ="@cameraIn” は現在のフラグメントで「cameraIn」パラメータを探し、「cameraIn」が name で参照されているパラメータと同じタイプであることを確認してから、cameraIn の値をパラメータに設定します。
このコマンドは、デバイスの指定のテクスチャ スロットの値を、指定のサンプラの状態およびテクスチャに設定します。
XML 構文:
<SetTexture
effect="Main"
name="gDistanceTex"
value="PointClamp"
texture="@DistanceMap"
/>
アトリビュート:
- effect – 設定するテクスチャ パラメータを保持するエフェクトの名前。必須です。
- name – 設定しているテクスチャ パラメータの名前。name は必須のアトリビュートです。target または texture タイプにする必要があります。
- value – 要求するサンプラ状態の名前(“PointClamp” など)。現在キャッシュまたはファクトリ内に存在している状態のみ使用できます。このパラメータには、@ 表記を使用できます。@ 表記は、@ で参照されているフラグメントのパラメータから実際の値を取得します。たとえば、value ="@samplerIn” は現在のフラグメントで「samplerIn」パラメータを探し、これがサンプラ状態パラメータであることを確認してから、このテクスチャがアクティブになったときに使用する値として samplerIn 値を設定します。
- texture – スロット/パラメータに設定するテクスチャの名前。現在キャッシュまたはファクトリ内に存在している状態のみ使用できます。texture パラメータには @ 表記を使用できます。@ 表記は、@ で参照されているフラグメントのパラメータから実際の値を取得します。たとえば、texture ="@textureIn” は現在のフラグメントで「textureIn」パラメータを探し、「textureIn」がテクスチャ パラメータであることを確認してから、このテクスチャがアクティブになったときに使用する値として textureIn の値を設定します。
このコマンドは、指定の状態ブロックをデバイスに設定します。完全デバイス状態を設定できます(“RenderState”)。または、3 つのコンポーネント(ブレンド状態、ラスタライズ状態、および深度ステンシル状態)を個別に設定することもできます。
XML 構文:
<setState
name="DepthStencilState"
value="myDepthStencilState"
/>
- name – 設定する状態のカテゴリ。必須です。name の有効値は "RenderState"、"BlendState"、"RasterizerState"、または "DepthStencilState" です。RenderState は他のすべての状態を設定します。
- value – デバイスを設定する状態の名前。状態オブジェクトがまだ宣言されていない場合は、自動的に作成されます。value パラメータには @ 表記を使用できます。@ 表記は、@ で参照されているフラグメントのパラメータから実際の値を取得します。たとえば、value ="@stateIn” は現在のフラグメントで「stateIn」パラメータを探し、これがパラメータ name と同じタイプであることを確認してから、stateIn の値を、指定の状態カテゴリに設定します。value は必須パラメータですが、値に空の文字列 “” を指定できます。
このコマンドは、指定したレンダラのパラメータを設定します。パラメータで、補助ワールドを格納したり、特定の項目フラグが設定された全オブジェクトを使用できるようにオブジェクト フィルタを指定したりできます。たとえば、“visible” や “castsShadow” などです。
XML 構文:
<setRenderParameter
renderer="opaqueRend"
name="filter"
value="visible"
/>
アトリビュート:
- renderer – パラメータを設定するレンダラの名前。
- name – レンダラのパラメータの名前。
- value – 指定したパラメータに設定する値。シンプルな値を指定できます。たとえば、“0.0”、“true”、“21”、またはレンダラに設定するオブジェクトが格納された “transpWorld” といった別のパラメータの名前(通常はローカル キャッシュ内)などです。
このコマンドは、指定したタイプの新しいパラメータを宣言して、ローカル キャッシュに追加します。必要に応じて、パラメータの値を指定値に設定します。これ以降、パラメータの設定には setParameter コマンドを使用します。
XML 構文:
<declare
name="light0Shadow"
type="target"
value="shadowBuf0"
/>
アトリビュート:
- name: 宣言するパラメータの名前。このパラメータが既にローカル キャッシュ内にあり、タイプが適切な場合、何も行われません。このパラメータがローカル キャッシュ内にあっても、タイプが正しくない場合は、名前の競合が原因でエラーが生成されます。name は必須のアトリビュートであり、空の文字列 “” を設定することはできません。
- type – 作成しているパラメータのタイプ。int、float、int4、float4、target、texture、world、bool、および string を指定できます。
- value – パラメータの初期設定値。正確な構文はパラメータのタイプによって異なります。たとえば、上記の例では target の照合が行われ、float2 の照合は行われません。value パラメータには @ 表記を使用できます。@ 表記は、@ で参照されているフラグメントのパラメータから実際の値を取得します。たとえば、value ="@cameraIn” は現在のフラグメントで「cameraIn」パラメータを探し、「cameraIn」がパラメータ name と同じタイプであることを確認してから、cameraIn の値をパラメータ name の値に設定します。
このコマンドは、指定したパラメータを指定値(または別のパラメータ)に設定します。
XML 構文:
<setParameter
name="@output"
value="1.0,0.25"
/>
アトリビュート:
- name: パラメータの名前。このパラメータはローカル キャッシュ内にあるか、参照によって指定する必要があります。name パラメータには @ 表記を使用できます。@ 表記は、@ で参照されているフラグメントのパラメータから値を取得します。たとえば、name ="@output” は現在のフラグメントで「output」パラメータを探し、name にその指定値を設定します。name は必須のアトリビュートです。
- value – パラメータの設定値。正確な構文はパラメータ タイプによって異なります。上記の例では、value は target ではなく、float2 と一致します。value パラメータには @ 表記を使用できます。@ 表記は、@ で参照されているフラグメントのパラメータから実際の値を取得します。たとえば、value ="@cameraIn” は現在のフラグメントで「cameraIn」パラメータを探し、「cameraIn」がパラメータ name と同じタイプであることを確認してから、cameraIn の値をパラメータ name の値に設定します。
このコマンドは、指定したパラメータが NULL または false であるかをテストし、NULL または false の場合は、「else」または「endIf」に達するまですべてのステートメントをスキップします。ステートメントはネストできます。
XML 構文:
<if
value="@depthStencil"
/>
アトリビュート
- value: テストするパラメータの名前。このパラメータはローカル キャッシュ内にあるか、参照によって指定する必要があります。パラメータはポインタ型(world、texture、target、state など)、または boolean 型のいずれかにする必要があります。value パラメータには @ 表記を使用できます。@ 表記は、@ で参照されているフラグメントのパラメータから値を取得します。たとえば、value ="@output” は現在のフラグメントで「output」パラメータを探し、パラメータ value にその指定値を設定します。name は必須のアトリビュートです。
このコマンドは、指定したパラメータが NULL または false であるかをテストし、NULL または false の場合は、else または endIf に達するまですべてのステートメントを実行します。true または NULL でない場合は、else または endif に達するまでステートメントは実行されません。ステートメントはネストできます。
XML 構文:
<ifNot
value="@depthStencil"
/>
アトリビュート
- value: テストするパラメータの名前。このパラメータはローカル キャッシュ内にあるか、参照によって指定する必要があります。パラメータはポインタ型(world、texture、target、state など)、または boolean 型のいずれかにする必要があります。value パラメータには @ 表記を使用できます。@ 表記は、@ で参照されているフラグメントのパラメータから値を取得します。たとえば、value ="@output” は現在のフラグメントで「output」パラメータを探し、パラメータ value が NULL または false であるかをテストします。value は必須のアトリビュートであり、空の文字列 “” を設定してはなりません。
このコマンドは main セクションを終了し、if または ifNot コマンドの else セクションを開始します。また、if または ifNot で生成されたステートメントの包含状態を反転します。if ステートメントが true と評価された場合は、endIf または else に達するまでステートメントが実行されます。else に達した場合は、endIf に達するまで後続のステートメントは実行されません。条件ステートメントはネストできます。if / endIf ペアの間、または ifNot / endIf ペアの間に含める必要があります。
XML 構文:
アトリビュート
このコマンドは if または ifNot コマンドを終了し、標準の無条件の処理を復元します。endIf の後のすべてのステートメントは、通常どおり実行されます。条件ステートメントはネストできます。このコマンドは if コマンドと 1 対 1 で対応し、一致する if コマンドの後に指定する必要があります。
XML 構文:
アトリビュート
このコマンドはユーザが指定したコールバック オブジェクトを呼び出します。コールバック オブジェクトがローカル キャッシュ内にない場合は、作成されて、ローカル パラメータに追加されてから呼び出されます。コールバックは 2 つの引数を取ります。
XML 構文:
<call
name="myCallback "
arg0="doThisThing" arg1="0.125"
/>
アトリビュート
- name: コールバック オブジェクトの名前。コールバック オブジェクトがローカル キャッシュ内にない場合は、作成されて、ローカル パラメータに追加されてから実行されます。name は必須のアトリビュートであり、空の文字列にすることはできません。
- arg0、arg1、arg2: コールバック関数の最初、2 番目、3 番目の引数。コールバック オブジェクトによって正しいタイプに解析されるこれらの値は、常に文字列として指定されるため、さまざまなタイプを指定できます。arg パラメータには @ 表記を指定できます。@ 表記は、@ で参照されているフラグメントのパラメータから実際の値を取得します。たとえば、arg0 ="@filterIn” は現在のフラグメントで「filterIn」パラメータを探し、コールバックの計算でこの値が使用されます。これらはオプションのパラメータであり、空の文字列 “” を設定できます。
このコマンドは、value アトリビュートで指定されたリスト内のすべてのオブジェクトをレンダリングします。有効値には、描画する不透明オブジェクトのリストである "opaqueList"、および単一のフルスクリーン クアッドを描画する “quad” などがあります。Render ではターゲット、カメラ、状態、オーバーライド エフェクト、またはその他のレンダリング関連の値は設定されません。インタプリタで現在設定されている状態を持つジオメトリが描画されるだけです。四角ポリゴン描画とシーン描画はいずれもビューポートの領域に制限されます。
XML 構文:
<render
name="@opaqueList"
/>
アトリビュート:
- name: レンダリングするオブジェクト。name パラメータには @ 表記を使用できます。@ 表記は、@ で参照されているフラグメントのパラメータから実際の値を取得します。name は必須のアトリビュートであり、空の文字列 “” を設定することはできません。
このコマンドは状態セッタ クラスを使用して、仮想デバイスのレンダー状態またはサンプラ状態を管理します。また、状態変更の設定、状態変更のコミット、および古い状態の復元も行います。
XML 構文:
<SetStateCommand
commandName="SetStateParameter"
name="localStateSetter_fsShadow"
parameter="SetBlendEnable"
value="true"
index="0"
/>
- commandName: コマンドの名前を示す文字列。必須です。
現在使用できるのは、「SetStateParameter」、「SetRenderState」、「CommitNewState」、および「RestorePreviousState」の 4 つのコマンド タイプのみです。
- name: 状態セッタの名前を示す文字列。必須です。状態セッタが前のスクリプトで宣言されている必要があります。
- parameter: 状態または状態パラメータの名前を示す文字列。「SetStateParameter」コマンドおよび「SetRenderState」コマンドではこのフィールドは必須です。このパラメータには、@ 表記を使用できます。@ 表記は、@ で参照されているフラグメントの文字列パラメータから実際の文字列を取得します。たとえば、parameter="@ambientState” は現在のフラグメントで「ambientState」パラメータを探します。StateSetter はこのパラメータ内の文字列を状態名として使用します。
- value: 状態変更の値を示す文字列。値のタイプはパラメータによって異なります。たとえば、parameter が “DepthBias” の場合、値は float になります。value パラメータには @ 表記を使用できます。@ 表記は、@ で参照されているフラグメントのパラメータから実際の値を取得します。たとえば、value ="@clearColor” は現在のフラグメントで「clearColor」パラメータを探します。状態セッタはこのパラメータ内の値を状態の値として使用します。
- index: 状態セッタによって変更される状態のインデックス、または状態セッタによって変更されるステンシル操作タイプを示す文字列。parameter がインデックスを必要とする状態パラメータの場合は、インデックスを表す整数です。parameter が “StencilFrontFace” または “StencilBackFace” の場合は、ステンシル操作タイプになります。index パラメータには @ 表記を使用できます。@ 表記は、@ で参照されているフラグメントのパラメータから実際の値を取得します。たとえば、index="@blendIndex” は現在のフラグメントで「blendIndex」パラメータを探します。状態セッタはこのパラメータ内の値を状態のインデックスとして使用します。