コンポーネント スウィズル(Component Swizzle)を使用して異なる頂点カラー チャネル(Vertex Color Channels)を提供する

Stingray ネットワークでは、「スウィズル」を使用して、XYZ の各コンポーネントが RGB コンポーネントのいずれかの値を取ることを可能にします。

既定では、X は R、Y は G、Z は B のように、RGB 値は XYZ に対応しています。ただし、xxx または rrr の float3 の「スウィズル」文字列を指定できます。このようにすると、赤のチャネルが、float3 の 3 つの浮動小数点数の値すべてに使用されるようになります。rgg または xyy を指定することもできます。この場合、赤のチャネルが最初の浮動小数点数の値に使用され、緑が 2 番目と 3 番目の値に使用されます。

基本カラーや不透明度などの、[標準ベース](Standard Base)ノードへの別のチャネル入力をカスタマイズすることで、異なるシェーダ効果を作成できます。

コンポーネント スウィズルの値を設定する:

  1. StingRay シェーダの ShaderFX エディタで、[標準ベース](Standard Base)ノード上の調整するアトリビュート([基本カラー](Base Color)など)をクリックします。
    注: ShaderFX ノードとは異なり、Stingray ノードに対して表示されるプロパティは、クリックするノード アトリビュートによって変わる可能性があります。また、そのアトリビュートに入力を提供しているのがどのノードかによっても、プロパティが変わることがあります。
  2. [プロパティ](Properties)パネルで、このアトリビュートに入力するチャネルを指定する、コンポーネント スウィズル文字列を入力します。

    [コンポーネント スウィズル](Component Swizzle)フィールドが空の場合、既定値(つまり、xyz には rgb)が使用されます。

  3. 左: 既定値: rgb = xyz

    右: コンポーネント スウィズル = rrr

例: 頂点カラーの緑チャネルを[アンビエント オクルージョン](Ambient Occlusion)に接続

    この手順は、前の手順の続きです。

    この例では、恐竜の腹と尾の部分が緑にペイントされています。
  1. [入力](Input)[マテリアル変数](Material Variable)ノードを選択して、グラフに追加します。タイプを Vector3 に、名前を Color に名前を変更し、[標準ベース](Standard Base)ノードの[基本カラー](Base Color)入力にワイヤリングします。

    カラー マップは、モデルに基本カラーを提供します。

  2. マテリアル エディタで、Color に暗い値を割り当てます。
  3. [頂点カラー](Vertex Color)ノードの RGBA 出力を、[標準ベース](Standard Base)ノードの[アンビエント オクルージョン](Ambient Occlusion)入力に接続します。

    float3 出力が浮動小数点に自動的に変換され、R チャネルが既定で使用されます。

  4. [標準ベース](Standard Base)ノードの[アンビエント オクルージョン](Ambient Occlusion)アトリビュートをクリックします。[プロパティ](Properties)パネルの[コンポーネント スウィズル](Component Swizzle)アトリビュートに g と入力します。

    アンビエント オクルージョンの値が、緑の頂点を持つモデルに表示されるようになります。

    アンビエント オクルージョンの頂点カラー コントロールのグラフ

    注: これで、[頂点カラー](Vertex Color)ノードの r チャネルと b チャネルを使用して、他の入力を制御できるようになりました(メタルの r や粗さの b など)。