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

注: 以前、Maya 2016 Extension 1 では、プリセット マテリアル(Preset Material)ドロップダウン リストに親マテリアル(Parent Material)という名前が付いていて、親マテリアル(Parent Material)アトリビュートにはエンジン マテリアル内(In Engine Material)という名前が付いていました。

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

シェーディング ネットワークを作成するときに、グラフをプリセットとして保存し、次に新しい Stingray PBS ノードを作成するときに再使用することができます。こうすると、同一のシェーダ グラフを繰り返し作成する必要がなくなるので、マテリアルの管理が困難になったり、ゲームのパフォーマンスが低下することがなくなります。

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

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

Maya から Stingray に StingrayPBS を書き出して、既存の親マテリアルを再使用する

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

この Stingray リソースを指定するには、Maya の StingrayPBS アトリビュート エディタ(Attribute Editor)にある親マテリアル(Parent Material)フィールドを設定します。

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

  1. StingrayPBS アトリビュート エディタ(Attribute Editor)プリセット マテリアル(Preset Material)ドロップダウン リストでカスタム(Custom)プリセットを選択するか、固有にする(Make Unique)をクリックします(すると、カスタム プリセットが作成されます)。
  2. ShaderFX を開く(Open ShaderFX)をクリックして、標準ベース(Standard Base)ノードを選択する

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

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

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

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

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

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

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