3ds Max と Stingray 間のシェーダ グラフの相互運用性

親マテリアルと子マテリアル

シェーディング ネットワークを作成するときに、グラフをプリセットとして保存し、次に新しい Stingray PBS (物理学に基づいたシェーダ)ノードを作成するときに再使用することができます。これにより、同じシェーダ グラフを繰り返し作成する必要がなくなり、マテリアルの管理が容易になって、ゲームのパフォーマンスが向上します。

プリセット シェーダ グラフを含むマテリアルは、親マテリアルといいます。

親マテリアルに基づいて子マテリアルを作成できます。子マテリアルは親マテリアルからシェーダ グラフを継承するため、マテリアルのアトリビュートも継承します。

Stingray シェーダを Stingray に書き出して既存の親マテリアルを再使用する

3ds Max から Stingray にマテリアルを書き出すときに、Stingray シェーダ ノードが既存の Stingray リソース(Stingray プロジェクト フォルダ内のマテリアル)を指している場合、Stingray は新しい親マテリアルを作成しません。

この Stingray リソースを指すようにするには、3ds Max で DirectX マテリアルの [Stingray](Stingray)ロールアウトにある[親マテリアル](Parent Material)フィールドを設定します。

このフィールドを編集できるのは、次の操作を初めて実行する場合のみです。

  1. [DirectX シェーダ](DirectX Shader)ロールアウトのリストで[Stingray](Stingray)を選択します。
  2. [Stingray](Stingray)ロールアウトの[プリセット マテリアル](Preset Material)リストで[カスタム](Custom)プリセットを選択するか、[固有にする](Make Unique)をクリックします(カスタム プリセットを作成します)。
  3. [DirectX シェーダ](DirectX Shader)ロールアウトで、[ShaderFX を開く](Open ShaderFX)をクリックして、[標準ベース](Standard Base)ノードを選択します。

こうすると、[親マテリアル](Parent Material)パスを誤って変更することがなくなります。

このフィールドが空の場合、シェーダ グラフは親マテリアルであるとみなされます。このシェーダを Stingray に書き出すと、新しい親マテリアルが作成されます。

一方、パスおよびリソース名(/content/materials/my_stingray_material など)を指定して書き出しを行うと、シェーダ グラフは /content/materials/my_stingray_material にある親グラフを指します。このシェーダが Stingray に読み込まれている場合、Stingray は親グラフを再作成しません。ただし、3ds Max では ShaderFX エディタのグラフを Stingray ゲーム エンジンの親グラフと同じにする、つまり自分のパス上に設定する必要があります。

このフィールドにパスまたは名前を入力したにもかかわらず、親マテリアルが Stingray プロジェクト フォルダ内に存在しない場合は、作成されたグラフに基づいて新しい親マテリアルが作成されます。

Stingray からマテリアルを読み込んで、プリセットとして使用する

Stingray で親グラフを作成し、ShaderFX エディタに読み込むこともできます。この操作を実行するには、[ファイル](File) > [グラフを読み込み](Import Graph)を選択し、ファイル タイプ ドロップダウン リストから .material を選択します。

このグラフを 3ds Max にプリセットとして保存するには、[ファイル](File) > [グラフを書き出し](Export Graph)を選択し、それを .sfx として renderData¥shaders に保存するか(現在のプロジェクトで使用可能)、¥Documents¥3dsMax¥ShaderFX¥Scenes¥StingrayPBS に保存します(グローバルに使用可能)。 これで、[Stingray](Stingray)ロールアウトの[プリセット マテリアル](Preset Material)ドロップダウンでプリセットとして使用できるようになりました。