Categorizing Effects Shaders in the Preset Manager(Preset Manager のエフェクト シェーダを分類する)

 
 
 

カテゴリを指定すると、Preset Manager および Render Tree の[ノード]メニューからエフェクト シェーダにアクセスできるようになります。独自のカテゴリを作成したり、独自のシェーダを既存の Softimage カテゴリに追加することができます。ただし、1 つのシェーダに 1 つのカテゴリしか指定できません。

Preset Manager にシェーダを表示する方法を微調整するには、カテゴリ文字列で特別な構文を使用してシェーダをグループ化したり、サブカテゴリを指定(ネスト化)します。

エフェクトファイルにカテゴリ文字列が含まれていない場合は、デフォルトの[リアルタイム]>[HLSL]または[リアルタイム]>[CgFX]カテゴリに表示されます。

さらに詳しく知りたい場合は、リアルタイムシェーダのカテゴリとサブカテゴリが定義された RTShaderCategories.js ファイル(¥Addons¥RTUserTools¥Application¥Plugins フォルダ)を参照してください。同様のユーザ プラグインを作成して、必要なその他のシェーダを、Preset Manager や[ノード]メニュー内の任意の場所に追加できます。環境変数 XSI_NO_DEFAULT_SHADERS を設定すれば、最初から開始することもできます。

エフェクト ファイルのカテゴリを編集する

リアルタイム シェーダ ウィザードを使用してカスタムのエフェクト ファイルをコード化する場合、[情報]タブ内の[カテゴリ](Category)フィールドでカテゴリ(または必要に応じてサブカテゴリ)を指定できます。

カスタムのエフェクト ファイルにカテゴリが存在しない場合は、エフェクト ファイルを編集し、カテゴリ文字列を直接入力することができます。これを行うには、Shader Code Editor(メインメニューから[表示](View) [レンダリング/テクスチャ](Rendering/Texturing) [Shader Code Editor]を選択する)を使用するか、任意のテキストエディタを使用します。

カスタムのエフェクト シェーダを異なるカテゴリに配置する場合は、シェーダを編集し、Render Tree でカテゴリ文字列を入力します。これを行うには、Preset Manager のプリセットを Render Tree ワークスペースにドラッグします。次に、ノードを右クリックし、[シェーダの編集](Edit Shader)を選択して、Shader Code Editor を開きます。

Shader Code Editor でエフェクトファイルを編集したら、[確認](Validate)をクリックしてコードを確認し、[適用](Apply)をクリックして変更を適用します。Preset Manager を更新するには、Softimage を再起動しなければならない場合があります。

カスタム カテゴリおよびサブカテゴリを定義する

カテゴリ文字列は、次のようにエフェクト ファイルの先頭に追加する必要があります。

string Category = "MyCategory/MySubcategory":

サブカテゴリを指定する

string Category = "MyCategory/MySubcategory/MyOtherSubcategory";

ネストされた、サブカテゴリの各レベルにスラッシュ(/)を入れてサブカテゴリを指定します。ネストできるレベルの深さに制限はありませんが、わかりやすさと使いやすさを考慮して、深さを最大 2 レベルにとどめることをお勧めします。

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

string Category = "MyCategory@200/MySubcategory@100":

項目をグループ化するには、@ 記号とグループを識別する番号でグループのメンバシップを示します。番号には 100 の倍数を使用して、グループを整理する際に最大限の柔軟性を持たせるのが最適な方法です。たとえば、5 つのシェーダのうちの 3 つで @100 のカテゴリ名の最後に指定すると、これらの 3 つのシェーダは残りの 2 つの後に表示され、これらの 2 つに分けられたグループはそれぞれ自動的にアルファベット順に並び替えられます。さらに別のシェーダ セットで @200 を指定すると、これらのシェーダ グループは最後に表示されます。各グループは Preset Manager で標準のメニュー セパレータによって区切って示されます。