Preset Manager の登録

 
 
 

Preset Manager にカスタム シェーダ定義を表示させるには、2 つのコンポーネントを指定する必要があります。

重要:

表示名の指定はオプションですが(外観に関わる)、カテゴリを指定しないとシェーダ定義は Preset Manager に表示されません

表示名

DisplayName を指定しない場合、Preset Manager に表示される名前はデフォルトでシェーダ定義の ClassName になります。 表示名を指定するには、状況に応じた次の方法を使用します。

コンテキストの種類

... 使用する方法

シェーダ定義プラグイン

Context または Context オブジェクトの DisplayName 属性:

in_ctxt.SetAttribute("DisplayName", "My Nice Name");

シェーダ言語パーサプラグイン

Context または Context オブジェクトの DisplayName attribute:

// Insert spaces before capitals to make a nicer version of the ClassName
var sDisplayName = sClassID.replace(/_/g, " ");
sDisplayName = sDisplayName.replace(/([A-Z][a-z])/g, " $1");
sDisplayName = sDisplayName.replace(/^ /, "");
in_ctxt.SetAttribute("DisplayName", sDisplayName);

ShaderDef または ShaderDef オブジェクトから直接

ShaderDef.DisplayName または ShaderDef::PutDisplayName メンバ:

oShaderDef.DisplayName = "My Nice Name";

カテゴリでの作業

シェーダ定義を Preset Manager からアクセスできるようにするには、カテゴリを指定する必要があります。 独自のカテゴリを作成するか、独自のシェーダ定義を既存の Softimage カテゴリに追加することができます。ただし、1 つのシェーダ定義には 1 つのカテゴリしか指定できません。 カスタム カテゴリを指定するには、状況に応じた次の方法を使用します。

コンテキストの種類

... 使用する方法

シェーダ定義プラグイン

Context または Context オブジェクトの Category 属性:

in_ctxt.SetAttribute("Category", "My Shaders");

シェーダ言語パーサプラグイン

Context or Context オブジェクトの Category 属性:

// Assign the main Category of "Test Shaders" and then put .pck files under "Parsed (Good)" 
// subcategory followed by the .bck files under "Parsed (Bad)" subcategory
if (in_ctxt.GetAttribute("Filename").match(/\.pck$/i)) {
	in_ctxt.SetAttribute("Category", "Test Shaders/Parsed (Good)@100");
} else if (in_ctxt.GetAttribute("Filename").match(/\.bck$/i)) {
	in_ctxt.SetAttribute("Category", "Test Shaders/Parsed (Bad)@200");
} else {
	in_ctxt.SetAttribute("Category", "Test Shaders@300");
}

ShaderDef または ShaderDef オブジェクトから直接

ShaderDef.DisplayName または ShaderDef::PutDisplayName メンバ:

oShaderDef.Category = "My Shaders";

これらの例では単独のカスタム カテゴリを使用する方法を示していますが、シェーダ定義の表示方法を調整することもできます。調整するには、カテゴリ文字列で特殊構文を使用してカテゴリをグループ化するか、サブカテゴリを指定します(カテゴリをネストします)。

カテゴリの項目をグループ化する

項目をグループ化するには、@ 記号とグループを識別する番号でグループのメンバシップを示します。番号には 100 の倍数を使用して、グループを整理する際に最大限の柔軟性を持たせるのが最適な方法です。たとえば、5 つの定義のうち 3 つのカテゴリ名の末尾に @100 を付けると、その 3 つの定義は他の 2 つより後に表示されます。この 2 つのグループはそれぞれ自動でアルファベット順に並べ替えられます。 その後、別のシェーダ定義のセットを @200 というグループ インジケータを付けて追加すると、これらの定義は最後に表示されます。

各グループは、標準メニュー セパレータで Preset Manager に表示されます。 Preset Manager でシェーダ定義をグループ化する例については、「パック シェーダ言語パーサ」の例を参照してください。

サブカテゴリの指定

サブカテゴリを指定するには、ネストした各レベル(サブカテゴリ)の前にスラッシュ(/)を使用します。 レベルは無限にネスト化することができますが、レベルは 2 つまでに留めてわかりやすくすることをお勧めします。 サブカテゴリが作成されたシェーダ定義を Preset Manager で使用する例については、「パック シェーダ言語パーサ」の例を参照してください。

ネイティブ Softimage カテゴリの使用

ネイティブ Softimage カテゴリを使用する場合は、基本アドオンの場所にある RTUserTools¥Application¥Plugins¥RTShaderCategories.js スクリプト ファイルで定義されているカテゴリのいずれかを利用します。 たとえば、Retreads サブカテゴリの下にあるカスタム テクスチャ シェーダのリストを Preset Manager のネイティブ Softimage テクスチャ リストの最後に追加するには、Category 文字列として Texture@100/Retreads@300 を指定します。