Preset Manager にカスタム シェーダ定義を表示させるには、2 つのコンポーネントを指定する必要があります。
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.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.DisplayName または ShaderDef::PutDisplayName メンバ: oShaderDef.Category = "My Shaders"; |
これらの例では単独のカスタム カテゴリを使用する方法を示していますが、シェーダ定義の表示方法を調整することもできます。調整するには、カテゴリ文字列で特殊構文を使用してカテゴリをグループ化するか、サブカテゴリを指定します(カテゴリをネストします)。
項目をグループ化するには、@ 記号とグループを識別する番号でグループのメンバシップを示します。番号には 100 の倍数を使用して、グループを整理する際に最大限の柔軟性を持たせるのが最適な方法です。たとえば、5 つの定義のうち 3 つのカテゴリ名の末尾に @100 を付けると、その 3 つの定義は他の 2 つより後に表示されます。この 2 つのグループはそれぞれ自動でアルファベット順に並べ替えられます。 その後、別のシェーダ定義のセットを @200 というグループ インジケータを付けて追加すると、これらの定義は最後に表示されます。
各グループは、標準メニュー セパレータで Preset Manager に表示されます。 Preset Manager でシェーダ定義をグループ化する例については、「パック シェーダ言語パーサ」の例を参照してください。
サブカテゴリを指定するには、ネストした各レベル(サブカテゴリ)の前にスラッシュ(/)を使用します。 レベルは無限にネスト化することができますが、レベルは 2 つまでに留めてわかりやすくすることをお勧めします。 サブカテゴリが作成されたシェーダ定義を Preset Manager で使用する例については、「パック シェーダ言語パーサ」の例を参照してください。
ネイティブ Softimage カテゴリを使用する場合は、基本アドオンの場所にある RTUserTools¥Application¥Plugins¥RTShaderCategories.js スクリプト ファイルで定義されているカテゴリのいずれかを利用します。 たとえば、Retreads サブカテゴリの下にあるカスタム テクスチャ シェーダのリストを Preset Manager のネイティブ Softimage テクスチャ リストの最後に追加するには、Category 文字列として Texture@100/Retreads@300 を指定します。