Creating a Shader Compound(シェーダコンパウンドの作成)

 
 
 

このセクションでは、シェーダ コンパウンドを作成する方法について簡単に説明します。これは、ICE コンパウンドの作成手順に非常によく似ています。

ICEコンパウンドの詳細については、「ICE コンパウンドを構築する」を参照してください。

  1. Render Treeで、コンパウンド内に格納するシェーダノードをすべて選択します。

    コンパウンドに汎用性を持たせるために、[Material]ノードは使用せず、すべてのオブジェクトのマテリアルノードに適用できるようにします。

  2. Render Treeのツールバーで、[Compounds] [Create Shader Compound]を選択します。

    選択したシェーダノードがビューから消え、[ShaderCompound]という名前の汎用コンパウンドが残ります。この中に、今消えたすべてのシェーダが含まれています。

  3. 編集するには、新しいコンパウンドの左上にある小さな[e]をクリックします。コンパウンドが開き、このコンパウンドのポートの外部公開を開始できます。

    ここで、シェーダの個別のポートを公開して、それらのパラメータだけを編集可能にできます。

    左側の灰色の帯状の部分(バー)には、コンパウンドのシェーダポートを公開する場所が示されます。ポートを公開する前に、コンパウンド内で他のユーザが変更できる部分や接続できる部分について決めておく必要があります。

    公開されたポートを示すバーの一番上にある矢印をクリックすると、公開された入力パラメータのリストを展開したり折りたたんだりできます。リストが集約されている場合、マウス ポインタを接続に重ねるとポートの名前が表示されます。

  4. 公開されたポートを示すバーにポートを含めるには、このバーの一番上にある黒い丸(外部公開入力)をクリックして、公開するノードのポートにドラッグします。すると、そのポートは帯状の部分に表示されます。公開するすべてのポートについてこれを行います。

  5. この外部公開されたポートの名前は変更することができます。変更する場合は、ポートを右クリックして[プロパティ](Properties)を選択し、[外部に公開されたポートのプロパティ](Exposed Port Properties)エディタを開きます。次に新しい名前を入力します。詳細については、この後の「シェーダ コンパウンドの外部に公開されたポートのプロパティを編集する」を参照してください。

    ここの外部公開されたポートをダブルクリックするか、右クリックして[名前の変更](Rename)を選択した場合は、スクリプト名のみが設定され、表示名は設定されません。

    注:[外部に公開されたポートのプロパティ](Exposed Port Properties)エディタでは、シェーダ コンパウンドのプロパティ エディタおよび Render Tree のノードでの、公開されたポートの表示方法を決定することもできます。

  6. 一番右のシェーダ(他のすべてのシェーダがこれに接続されている)の出力ポートを、右側にある灰色の公開された出力バー上の黒丸にドラッグして、出力ポートを作成します。

    公開された出力を示すバーの一番上にある矢印をクリックすると、公開された出力ポートのリストを展開したり折りたたんだりできます。リストが集約されている場合、マウス ポインタを接続に重ねるとポートの名前が表示されます。

    公開された出力ポートの名前は、公開された入力ポートの場合と同じ方法で変更できます。

  7. コンパウンド編集画面の一番上にあるバーで、[ShaderCompound]と書かれた部分をダブルクリックし、コンパウンドに[クラス](class)名を付けます(この例では「Bonfire」)。

    クラス名は、コンパウンドプロパティ、Preset Manager のスクリプト、Shader Version Manager の[クラス名]列で使用されます(書き出した後)。

    コンパウンドを閉じると、コンパウンドを書き出し、再度読み込むまでは、この名前は Render Tree に表示されません。

  8. [カテゴリ]についても同様のことを行います。ここに指定したカテゴリで、Preset Manager のグループに表示されます。「Particle」などのカテゴリを指定します。カテゴリ名を入力しない場合は、コンパウンドは[シェーダコンパウンド]カテゴリ内に表示されます。

    注:コンパウンドにコメントを追加することができます。詳細については、ツリーの情報を記録する: グループとコメント を参照してください。
  9. 左上隅の小さなxボックスをクリックして、コンパウンドを閉じ、通常の Render Tree に戻ります。

  10. コンパウンド内部で指定した名前と同じになるように、シェーダ コンパウンド ノードの名前を変更することができます。コンパウンドノードをダブルクリックして、新しい名前を入力します。

    公開したポートを確認するには、ノードの接続を展開する必要がある場合があります。

  11. Render Tree ツールバーの[Compounds] [Export Shader Compound]を選択し、他のユーザが使用できるようにコンパウンドを書き出します。詳細については、コンパウンドを書き出す を参照してください。

シェーダ コンパウンドの外部に公開されたポートのプロパティを編集する

外部公開されたポートの名前を定義することができます。また、Render Tree のコンパウンドのノードおよびコンパウンドのプロパティ エディタでのポートの表示方法も定義できます。

A

[名前]は、コンパウンドの編集画面の左側の灰色の帯状の部分に表示される名前で、スクリプティングに使用されます。

B

[表示名](Display Name)は、Render Tree 内のコンパウンドのノードおよびコンパウンドのプロパティ エディタで表示される名前です。ここが空白の場合、名前が表示名として使用されます。

灰色の帯状の部分(バー)にある公開されたポートをダブルクリックするか、右クリックして[名前の変更](Rename)を選択した場合は、スクリプトの名前のみが設定され、表示名は設定されません。

C

[プロパティ ページ レイアウト](Property Page Layout)オプションは、シェーダ コンパウンドのプロパティ エディタでの、外部公開されたポートの表示方法を決定します。

  • プロパティ エディタでパラメータとして[可視](Visible)にするかどうかを指定します。

  • 外部公開されたポートが特定のタイプ(スカラ、整数、ブールなど)である場合は、プロパティ エディタで使用できる最小の値と最大の値を設定できます。

  • プロパティ ページの[タブ](Tab)に、外部公開されたポートを割り当てます。入力した名前を使用しているタブが存在しない場合は、作成されます。

  • プロパティ ページのパラメータの[グループ](Group)に、外部公開されたポートを割り当てます。入力した名前を使用しているグループが存在しない場合は、作成されます。

D

[Render Tree レイアウト](Render Tree Layout)オプションは、Render Tree 内のシェーダ コンパウンドのノードでの、外部公開されたポートの表示方法を決定します。

  • ノードでポートとして[可視](Visible)にするかどうかを指定します。

  • ノードのポートの[グループ](Group)に、外部公開されたポートを割り当てます。入力した名前を使用しているグループが存在しない場合は、作成されます。

E

[プロパティ ページ コンボ コントロール](Property Page Combo Control)オプションを使用すると、シェーダ コンパウンドのプロパティ エディタのポート用に、ドロップダウン コンボ リストを作成できます。

[コンボの文字列](Combo string)フィールドに、リストに表示するオプションの名前を入力して、[コンボの値](Combo value)フィールドに値を入力します。次に[コンボの追加](Add combo)ボタンをクリックしてリストに追加します。

リストから削除するには、コンボの文字列/値のセットを選択して、[コンボの削除](Remove combo)ボタンをクリックします。