この注釈を使用して、効果パラメーターをホスト環境の UI コントロールに関連付けます。 これにより、ユーザーはホスト アプリケーションを使用してエフェクト パラメーターを対話形式で制御できます。
DXSAS では、データ モデルと、作成者がホスト アプリケーションから期待できる基本的な動作の観点から、一連の標準コントロールを定義します。 コントロールの注釈は次のように使用されます。
string SasUiControl = "ControlType";
どこ
ControlType
は次のいずれかです。
| ControlType | 形容 | 内部データ型 | コントロール プロパティの注釈 |
|---|---|---|---|
| 何一つ | コントロールは表示されません。 SasUiVisible が True で、コントロールの型が None 以外の任意の型の場合は、コントロールが表示されることに注意してください。 | n/a | n/a |
| 任意 | これは、特別な制御が要求されていないことを意味します。 表示されるコントロールは、アプリケーション定義の動作の結果です。 | n/a | n/a |
| ColorPicker | カラー値をカラー 見本として表します。 値は、関連付けられたベクターの XYZ コンポーネントにパックされます。 関連付けられたベクトルの W コンポーネントは常に 1 に設定されます。 | floatNN は 1 ~ 4 です。 | SasUiEnum を する |
| 方向 | 方向ベクトル。 | floatNN は 2 ~ 4 です。 | 何一つ |
| FilePicker | ユーザーがファイルを参照して選択できるようにするダイアログ ボックス。 | 糸 | 何一つ |
| ListPicker | ユーザーが 1 つのエントリを選択できる文字列値の一覧。 値は、SasUiEnum 注釈から生成されます。 | 選択した文字列値のインデックスを含む整数値と共に文字列の配列。 | SasUiEnum を する |
| 数値 | 一連の数値入力コントロール (テキスト ボックスなど)。 | floatMxNM と N は 1 ~ 4 です。 | SasUiMin、sasUiMax 、SasUiStride |
| スライダー | スライダーのセット。 | floatMxN (M と N は 1 ~ 4 を含む) | SasUiMin、sasUiMax 、SasUiSteps、SasUiStepsPower の |
| 糸 | 文字列コンテンツを編集するためのテキスト ボックス。 | 糸 | 何一つ |
内部データ型が関連付けられているパラメーターの型と同じでない場合、キャストは、ホスト アプリケーション パラメーターからエフェクト パラメーターにデータが転送されるときに発生します。
既定値は文字列 "None" です。
UI の共通プロパティ
SasUiDescription
この注釈を使用して、ツールを記述する文字列を指定します。 これは、ツール ヒントなどの UI 要素に使用できます。
string SasUiDescription = "descriptive string";
例えば:
float3 UpNormal
<
string SasUiDescription = "The normalized up vector";
>;
既定値は空の文字列です。
SasUiLabel
この注釈を使用して、UI コントロールにラベルを付ける文字列を指定します。
string SasUiLabel = "some label;
次に例を示します。
float3 UpNormal
<
string SasUiLabel = "Normal that points up.";
>;
既定値は空の文字列です。
SasUiVisible
この注釈を使用して、関連付けられているパラメーターをユーザーに表示するかどうかを指定します。
bool SasUiVisible = false;
True に設定すると、ホスト アプリケーションは注釈付き効果パラメーターを編集するための UI コントロールを表示する必要があります。 false の場合、ホスト アプリケーションに UI は表示されません。
次に例を示します。
float3 UpNormal
<
string SasUiVisible = false;
>;
既定値は True です。
UI コントロールのプロパティ
コントロール プロパティの注釈は、特定のコントロールの動作を決定するのに役立つ追加の修飾子です。
SasUiEnum
この注釈を使用すると、コントロールの値の範囲を制限できます。 注釈には、コンマで区切られた値の文字列が含まれています。
既定値は空の文字列です。
SasUiMax
この注釈は、関連付けられたパラメーターの最大値を指定します。 これは、数値型パラメーターにのみ関連付けることができます。 パラメーターの最大値は、実際には次のように計算されます。
MaxValue = min(FLT_MAX, PARAMETER_TYPE_MAX);
PARAMETER_TYPE_MAXは、関連付けられたパラメーターで使用される型の最大値です。 つまり、パラメーターの値は、SasUiMax 注釈を考慮して、次のように計算されます。
ParameterValue = min(NewParameterValue, MaxValue);
既定値は Math.h で定義されているFLT_MAXです。
SasUiMin
この注釈は、関連付けられているパラメーターの最小値を指定します。 これは、任意の数値型パラメーターにのみ関連付けることができます。 パラメーターの最小値は、実際には次のように計算されます。
MinValue = max(-FLT_MAX, PARAMETER_TYPE_MIN);
PARAMETER_TYPE_MINは、関連付けられたパラメーターで使用される型の最小値です。 つまり、パラメーターの値は、SasUiMin 注釈を考慮して、次のように計算されます。
ParameterValue = max(NewParameterValue, MinValue);
既定値は Math.h で定義されている -FLT_MAX です。
SasUiSteps
この注釈は、関連付けられているパラメーター値をインクリメントまたはデクリメントするときに使用できるステップの数を指定します。 注釈は、数値型パラメーターでのみ意味があります。 ゼロは、ホスト アプリケーションが適切な数のステップを選択することを指定します。
既定値は 0 です。
SasUiStepsPower
この注釈は、範囲 [0.0f, 1.0f] を持つべき乗関数の指数を指定します。 ホスト アプリケーションでは、パラメーター値を計算するときに次のメソッドを実装する必要があります。
ParameterValue = ((SasUiMax - SasUiMin) x pow(UI_VALUE, SasUiStepsPower) + SasUiMin
既定値は 1.0f です。
SasUiStride
この注釈は、この値をインクリメントまたはデクリメントするときに使用するインクリメントを指定します。 SasUiStepsとは異なり、sasUiStride は、データが無制限であり、ユーザーが事前に定義されたステップ数ではなくストライドでパラメーター値をインクリメントする場合など、スピナー コントロールで役立ちます。 ホスト アプリケーションは、次のように SasUiStride の値によってインクリメント (または制御動作に応じてデクリメント) する必要があります。
ParameterValue = ParameterValue +/- SasUiStride
既定値は 1.0f です。
関連トピック