UDN
Search public documentation:

MaterialsCompendiumJP
English Translation
中国翻译
한국어

Interested in the Unreal Engine?
Visit the Unreal Technology site.

Looking for jobs and company info?
Check out the Epic games site.

Questions about support via UDN?
Contact the UDN Staff

UE3 ホーム > マテリアル&テクスチャ > マテリアル要約

マテリアル要約


概要


このサイトは、マテリアルエディタで利用可能な全てのマテリアル表現式ノードの参照ページです。マテリアル表現式とはUnreal Engine 3で完全に機能するマテリアルを作成するビルディングブロックのことです。各マテリアル式は内蔵型ブラックボックスで、一つかそれ以上の特定値をセットで出力、もしくは一つあるいはそれ以上の入力の単一演算を実行し、演算結果を出力します。

その他に、様々なマテリアル効果を有効にするためのノードの組み合わせに関する例や、チュートリアルが掲載されているMaterialsTutorialMaterialExamples が関連ページとして参照できます。マテリアルエディタの使用法に関する説明は、Material Editor User Guideを参照してください。 プログラマーの方は、新たなマテリアル式の作成に関する詳細を、CreatingMaterialExpressionsから参照していただけます。

パラメータ


いくつかのマテリアル表現式はパラメータで、ベースマテリアルのMaterialInstanceの設定値が変更できる仕様になっています(場合によってランタイム中は動的に)。これらのマテリアル表現式は、MaterialInstance で特定のパラメータを認識した際に Parameter Name プロパティ経由で使用されるため、固有の名前を付ける必要があります。同じタイプの二つのマテリアルが同マテリアル内で同じ名前のパラメータを持つ場合、両パラメータは同一のパラメータとして認識されます。MaterialInstanceにあるパラメータの値を変更すると、マテリアル内の両パラメータ表現式を変更する結果となります。ベースマテリアルにはパラメータのデフォルト値が設定されます。上書きや変更がされない限り、この値がMaterialInstance のパラメータ値となります。

詳細はInstancedMaterialsMaterialInstanceConstant ページで参照できます。

マテリアル作成時のカラーの思考法


UE3のマテリアルは、多くの表現式が それぞれのチャンネルで独立して動作する ことを覚えておいてください。例えば [[#AddJP][Add] ノードは2つの入力を受け取り両方一緒に一つのチャンネルへ追加します。二つのRGBカラー(3チャンネル値)と一緒に追加されると、出力カラーは(Red1+Red2、 Green1+Green2、 Blue1+Blue2)となります。チャンネルごとの演算をグレースケール値の演算と捉えることが出来ます。

チャンネル毎の演算を実行するノードは、同数のチャンネルを持つ入力が通常必要です。例えば、RGBカラーに他のRGBカラーをAddすることは可能ですが、RGBカラーはアルファチャンネル(RGBA)表現が出来ないので、RGBカラーにRGBAカラーを追加することはできません。この規則の例外は、幾つかの入力がある中一つの入力がシングルチャンネル(グレースケール)値であり、何にでも適用出来る時です。その場合、RGBカラー(0.2、0.3、0.5)に0.1を加算して(0.3、0.4、0.6)を得ることが出来ます。 

その他に留意して欲しいことはUnreal Engineのカラーは 浮動小数点 で表現される点です。言い換えると、カラーは[0、255]の範囲にRGB値を持ちません。 その代り、RGB値は0.0が黒/無色(古い法則では0)、1.0はフルカラー(古い法則では255)を表現する中、0.4、-1.2、3.4といったどんな値でも構いません。これを踏まえると、1.0以上の値を持つことは完全に有効で、値が大きくなると明るさが増します。(255、0、0)は赤に使用される値です。Unreal Engineは赤は(1.0、0.0、0.0)で表現され、より明るい赤は(3.0、0.0、0.0)で表現されます。

カラーは負の値の場合もあります!負のカラーは色を 取り除く 色として考えます。例えば、テクスチャに (-0.5、0.0、0.0) を加算して、テクスチャのすべての赤のカラーを 0.5 減少させることができます。

中間の表現式は浮動小数点で演算されますが、マテリアルの最終出力色の各チャンネルは [0,1] にクランプされます。ここで 0 は全く寄与無し、1 は完全な寄与を与える結果となります。1 以上の値は、結果的にはすべて同じ色となりますが、ブルーム ブライト パス、そしてチャンネルの振幅により拾われ、ブルーム(光のあふれだしやにじみ)寄与に直接影響を与えます。

マテリアル表現式


materialexpression.jpg

  1. Description(説明) - 全てのマテリアル表現式は共通の Desc プロパティを持ちます。このプロパティに入力されるテキストはワークスペースの表現式上にあるMaterial Editorに表示されます。このスペースは色々な用途に使用出来ますが、通常は表現式の使用目的や機能などについて短いメッセージを書き込む場として使用されます。
  2. Title bar(タイトルバー) - マテリアル表現式のプロパティに関する名前や関連情報を表示。
  3. Outputs(出力) - マテリアル表現式演算の出力結果をリンクする。
  4. Preview(プレビュー) - マテリアル表現式で出力された値のプレビューを表示。リアルタイムの更新が有効になると自動で更新されるが、スペースバーを使って手動で更新することも可能。
  5. Inputs(入力) - 取り込んだ値をマテリアル表現式で使用するためリンクする。

Abs(絶対値)

Abs は、数学用語「absolute value」(絶対値) を表す略語です。Abs表現式は絶対値または符号なしの値等、受け取った入力値を出力します。 Absによりマイナス符号を取り去って、負の数が正の数に変えられます。正の数に変化はありません。

*使用例:Absは通常DotProductと一緒に使用されます。ドット積は、 -1..0..1 の順番で値が始まり、一方で、ドット積の Abs は、 1..0..1 の順番となります。 

Abs.jpg

Add(加算)

Add表現式は二つの入力値を受け取り、二つを足して結果を出力します。 この加法演算はチャンネルごとに実行されます。例えばRチャンネルへの入力が加算され、Gチャンネルが加算され、そしてBチャンネルが加算されるといったかんじです。入力の片方が単一のConstant値でない限り、入力は両方とも同数のチャンネル数を持っていなくてはいけません。Constantは入力数に関係なくベクターに加法出来ます。 

Inputs(入力)

  • A - 加算する値を受け取ります。
  • B - 加算される値を受け取ります。

例: 0.2と0.4のAddは0.6;(0.2、-0.4、0.6) と (0.1、0.5、1.0) の Add は (0.3、0.1、1.6);(0.2、-0.4、0.6) と 1.0 の Add は (1.2、0.6、1.6)。

使用例: Add は、カラーを明るく/暗くしたり、UV テクスチャ座標をオフセットしたりする際によく使用します。

AddExample.jpg

AntialiasedTextureMask

AntialiasedTextureMask 表現式はソフト(アンチエイリアス化)トランジッションマスクを使用したマテリアルの作成を可能にします。マスクは二つの複雑なマテリアルプロパティのブレンドや、アルファブレンドされたマテリアル(SoftMaskedとよく機能します)をフェードアウトする際に使用されます。Simpleはあるチャンネル(赤、緑、青、アルファ)で特定されたマスクと共にテクスチャを指定し、使用チャンネルを表現式に設定し、比較値を特定します。マスクの結果が0または1であるべき際に、チャンネルが格納するグレースケール値は、比較機能が定義するレンジが0=黒、1=白と仮定されます。この表現式はパラメータで、*Texture* プロパティが子MaterialInstancesに上書きされます。

Properties(プロパティ)

  • Threshold(閾値) - ピクセルの範囲内でカットオフとなった点を特定します。カットオフポイントを下回るピクセル範囲の値は黒、上回ると白表示となります。
  • Channel(チャンネル) - マスクとして使用するテクスチャのチャンネルを特定する。
  • Texture(テクスチャ) - 使用するマスクテクスチャを特定する。 

Inputs(入力値)

  • UVs - テクスチャマスクに適用するテクスチャ座標を受け取る。

Pseudo code(疑似コード):

  Result = 1
  if TextureLookup < Threshold then Result = 0
  

実際の実装は、エイリアスを避けるため、ピクセル範囲により戻り値が0から1となるのでかなり複雑化します。

例(この小さな128x128テクスチャは最高のクオリティを保つため圧縮されていません):

https://udn.epicgames.com/pub/Three/MaterialsCompendium/ULogoLowBlurred.bmp

ノーマルテクスチャとして使用(左上)、マテリアル式の説明として使用(右下)

AAMaskExample.jpg

この技術は、拡大やブラーコンテンツの入力に最適です。圧縮は品質の低下となるので、非圧縮低解像度のテクスチャを使用してください。 

exp_aatm.jpg

ImprovingAlphaTestWithAntiAliasing で実装に関する詳細を参照してください。

AppendVector

AppendVector表現式は、オリジナル以上のチャンネルでベクターを作成できるようにチャンネルを組み合わせます。例えば、 二つのConstantsの各値を、二つのチャンネルを持つConstant2Vector値にするため追加します。 この表現式は、シングルテクスチャ内でチャンネルを再度呼び出す際や、複数のグレースケールテクスチャをひとつのRGBカラーテクスチャへまとめる際に有益です。

Inputs(入力値)

  • A - 追加する値を受け取る
  • B - 追加される値を受け取る

例: 0.2 と 0.4 の Append は (0.2、0.4)。(0.2、0.4) と (1.6) の Append は (0.2、0.4、1.6)。

AppendVectorExample.jpg

exp_append_tex.jpg

BumpOffset

BumpOffsetは一般的に「視差マッピング」の名で知られているUnreal Engine 3の用語です。BampOffset表現式は追加のジオメトリを必要とせずにデプスの錯覚を与えることができます。BumpOffsetマテリアルは、デプスの情報を与えるのに _heightmap_ を使用します。ハイトマップの値が明るければ明るいほど、マテリアルはより「ポップアウト」され、それらの領域はカメラがサーフェスを移動するにつれて 視差(シフト)します。ハイトマップの暗い領域は、「遠くに離れて」おり、最小限のシフトをします。

Properties(プロパティ)

  • HeightRatio - _heightmap_から渡されたデプスの乗数です。値が大きければ大きいほど、極端な深度になります。通常は0.02から0.1の範囲です。*
  • ReferencePlane - 効果をもたらしたいテクスチャ領域の高さの概算を特定します。0の値は表面のテクスチャが完全に歪んだ表示となり、0.5(デフォルト値)の値は表面の一部が沈んだ状態でありながら一部が突き出た表示となります。*

Inputs(入力値)

  • * Coordinate(座標)* - 表現式で変更するためベースのテクスチャ座標を受け取ります。
  • * Height(高さ)* - heightmapとして使用するためテクスチャ(または値)を受け取ります。

BumpOffsetExample.jpg

CameraVector

CameraVectorは表面を基準にカメラの方向を示す3つのチャンネルのベクター値を出力します。言い換えるとピクセルからカメラの方向を表します。 

使用例: CameraVectorは、CameraVectorとComponentMaskをつなぐ偽造環境マップを作成する際にしばし使用されます。またCameraVectorのxとyチャンネルをテクスチャ座標として使用します。

(Hover for animated preview)

exp_cameravector_still.jpg

CameraWorldPosition

CameraWorldPosition表現式は、ワールドのカメラ位置を示す3つのチャンネルベクター値を出力します。

カメラが回転するとプレビューの球形の色が変化します。

CameraWorldPosition.jpg

Ceil

Ceil表現式は値を受け取り、一番近い整数へ 切り上げ て結果を出力します。FloorFracも参照してください。

例: 0.2のCeilは1.0、(0.2、1.6)のCeilは(1.0、2.0)になります。

CeilExample.jpg

Clamp

Clampは受け取った値を最小値(Min)と最大値(Max)が定義された特定の範囲で制約されます。0.0の最小値と0.5の最大値は、結果値が決して0.0より小さく、または0.5より大きくならないことを意味します。

Inputs(入力値)

  • 最小値(Min) - クランプする際の最小値を受け取ります
  • 最大値(Max) - クランプする際の最大値を受け取ります

例: Min 0.0 と Max 1.0 で 0.3 をクランプすると、結果は 0.3 になります。Min 0.0 と Max 1.0 で 1.3 をクランプすると結果は 1.0 になります。

ClampExample.jpg

ComponentMask

ComponentMask表現式で入力から出力へ渡すための特定のチャンネルサブセット(R、G、B、またはA)を選択できます。 入力に引き渡しチャンネルが存在しないと、入力がシングルのConstant値でない限りエラーが生じます。その場合、単一値がそれぞれのチャンネルに引き渡しされます。選択された現在の引き渡しチャンネルが式のタイトルバーに表示されます。

Properties(プロパティ)

  • R - チェックされると、赤もしくは最初の入力値のチャンネルが出力として渡される
  • G - チェックされると、緑もしくは2番目の入力値のチャンネルが出力として渡される
  • B - チェックされると、青もしくは3番目の入力値のチャンネルが出力として渡される
  • A - チェックされると、アルファもしくは4番目の入力値のチャンネルが出力として渡される
例: (0.2、0.8、1.4)の入力値をもつComponentMaskとRとBチャンネルがチェックされると、出力は(0.2、1.4)となります。

ComponentMaskExample.jpg

Constant

Constantは浮動小数点値を出力します。これは最もよく使用される表現式で、入力のチャンネル数に関係なくいかなる入力と接続します。

Properties(プロパティ)

  • R - 表現式が出力する浮動小数点値を特定します。

例: 0.7, -0.24, 1.1

ConstantExample.jpg

Constant2Vector

Constant2Vectorは2チャンネルのベクター値を出力します。すなわち、二つの定数です。

Properties(プロパティ)

  • R - 赤の浮動小数点値、または表現式が出力する最初のベクターチャンネルを特定します。
  • G - 緑の浮動小数点値、または式が出力する2番目のベクターチャンネルを特定します。

例: (0.4、0.6)、 (1.05、-0.3)

使用例: Constant2Vectorは2チャンネルの値なので、テクスチャ座標を修正するのに有益です。

Constant2Example.jpg

Constant3Vector

Constant3Vectorは3チャンネルのベクター値を出力します。すなわち3つの定数です。RGBカラーは各チャンネルが色に割り当てられる(赤、緑、青)Constant3Vectorとして考えられます。

Properties(プロパティ)

  • R - 赤の浮動小数点値、または式が出力する最初のベクターチャンネルを特定します。
  • G - 緑の浮動小数点値、または式が出力する2番目のベクターチャンネルを特定します。
  • B - 青の浮動小数点値、または式が出力する3番目のベクターチャンネルを特定します。

例: (0.4、0.6、0.0)、 (1.05、 -0.3、0.3)

Constant3Example.jpg

Constant4Vector

Constant4Vectorは4チャンネルのベクター値を出力します。 すなわち4つの定数です。RGBAカラーは各チャンネルが色に割り当てられる(赤、緑、青、アルファ)Constant4Vectorとして考えられます。

Properties(プロパティ)

  • R -赤の浮動小数点値、または式が出力する最初のベクターチャンネルを特定します。
  • G - 緑の浮動小数点値、または式が出力する2番目のベクターチャンネルを特定します。
  • B - 青の浮動小数点値、または式が出力する3番目のベクターチャンネルを特定します。
  • A - アルファの浮動小数点値、または式が出力する4番目のベクターチャンネルを特定します。

例: (0.4、0.6、0.0、1.0)、 (1.05、 -0.3、 0.3、 0.5)

Constant4Example.jpg

ConstantBiasScale

ConstantBiasScaleは入力値を受け取り、バイアス値を加算して、スケーリング係数を掛けて結果を出力します。例えば入力データを[-1、1]から[0、1]へ変換する場合、バイアス値に1.0、スケーリング係数に0.5を使います。

Properties(プロパティ)

  • Bias(バイアス) - 入力に加算される値を特定します。
  • Scale(スケール) - バイアスがかかった結果の乗数を特定します。

exp_constantbiasscale.jpg

ConstantClamp

ConstantClampはClampと同関数を実行しますが、ノードの最小値と最大値を使用して簡素化がされ使いやすくなっています。時間と共に変数を必要としない最少、最大クランプ値(出力値を0から1へクランプ)と併用すると有益です。

Properties(プロパティ)

  • 最小値(Min) - クランプ時に使用する最小値を特定します。
  • 最大値(Max) - クランプ時に使用する最大値を特定します。

exp_constantclamp.jpg

Cosine

Cosineは入力値(ラジアン)のコサインを出力します。この関数は、Timeと入力値を関連付けして継続的な振動の波形を出力することでよく知られています。出力値は-1と1の周期を行ったり来たりします。波形を視覚的に表示したものが以下となります。

cosine_wave.jpg

Properties(プロパティ)

  • Period - 合成振動の周期を特定します。 すなわちこれによって一つの振動が起こるまでの時間がわかります。

使用例: この機能は振動効果が必要な際にいつでも便利です。振動の速度と振幅は、時間入力(速度)または出力(振幅)を掛けることによって動的に簡単な制御がいつでも可能となります。

(Hover for animated preview)

exp_cosine_still.jpg

CrossProduct

CrossProductは3チャンネルのベクター値の二つの入力の外積を計算し、3チャンネルのベクター値の結果を出力します。空間に二つのライン(またはベクター)が与えられ、外積は両方の入力に対して垂直なライン(またはベクター)となります。

Inputs(入力値)

  • A - 3チャンネルのベクター値を受け取ります。
  • B - 3チャンネルのベクター値を受け取ります。

使用例: CrossProductはしばし二つの反対方向と垂直な方向を計算します。

CrossProductExample.jpg

Custom

Customは任意量のインプットを実行するカスタムHLSLシェーダーコード書き、実行結果を出力します。

注意事項! カスタムノードの使用は定数畳み込みを妨げ、内蔵ノードで実行する同等バージョンよりもかなり多くの指示/命令を仰ぐことになります。 定数畳み込みは、必要に応じてシェーダー指示の数の削減をUE3で検証するために採用されました。例えば、「Time->Sin->Mul by parameter->Add to something」といった一連の表現式は、UE3では一つの指示へ折り畳まれます。これは表現式の全ての入力(Time、parameter)は全体のdraw呼び出しの定数であるため、ピクセルごとの変換をしないことにより可能となります。UE3はカスタムノード内のものを折り畳むことが出来ません。これは既存ノードの同等バージョンで作成されたものよりも多少非効率なシェーダーを実行します。結果として、既存ノードで不可能な機能群へのアクセス権がある際はカスタムノードのみの使用が最善です。

*その他の注意事項: カスタムノードに書かれたシェーダーコードはターゲットプラットフォームへ「現状のまま」コンパイルされます。 * もしシェーダーがPC用にコンパイルされた場合、有効なHLSLとみなされます。PS3用にコンパイルされた場合は有効なCgとみなされます。 

Properties(プロパティ)

  • Code - 表現式が実行するHLSLコードを含みます。
  • Output Type - 表現式が出力する値のタイプを特定します。
  • Description - マテリアルエディタの表現式のタイトルバーに表示するテキストを特定します。
  • Inputs - 式が使用する入力の配列です。
    • Input Name - 入力の名前を特定。 これはマテリアルエディタの表現式に表示される名前、また入力値を参照するためのHLSLコード内で使用される名前と一緒です。

Input配列に必要な限りの入力を追加して名前を付けてください。その後Codeプロパティにコードを書いてください。例にあるようにreturnステートメントを含む完全に機能するコード、または「Input.bgr」といった簡単な表現式をタイプしてください。出力データタイプをOutputTypeに特定しなくてはいけません。

Custom.jpg

CustomTexture

CustomTextureはCustom表現式内のHLSLコードにあるテクスチャを参照します。通常はtex2D や類似関数でHLSL内やサンプリングします。

カスタムノードで通常のTextureSampleをインプットとして使用することが可能ですが、その場合サンプルはカスタムノード外部で計算され、結果がfloat4値として渡されます。ループ内で同テクスチャを数回サンプル化したい場合、またはtex2Dbias、tex2Dlod、tex2Dproj等(HLSL文書でこれらの使用目的を参照してください)のサンプリング指示を使用したい場合、この方法は柔軟性に欠けます。

customtex.jpg

DepthBiasBlend

DepthBiasBlendはスプライトが他のジオメトリと交差する際にスプライトパーティクルに生じる鋭いエッジを削除するため、マテリアルでよく使用されます。深度バイアスブレンディングはsrcとdstピクセルの深度を比較し、ピクセルを描画する際のアルファを決めるためのバイアスを使用します。 詳細はDepthBiasBlendUsageを参照してください。 

DepthBiasBlendは他の深度バイアスブレンディングノードと比べて速度が遅く、柔軟性に劣る場合があります。DepthBiasAlphaを代わりにご使用ください。

プログラマー: DepthBiasBlenは深度バイアスブレンディングノードとして最も好まれない関数です。 理由は 1)直近のフレーム/深度バッファリゾルブからカラーと深度をサンプリングするから(遅い) 2)ブレンドはハードウェアブレンディングではなくシェーダーコードで実行される(遅い)3)DepthBiasBlendのテクスチャ入力は、任意の式入力ではなくテクスチャプロパティ経由 

DepthBiasAlpha

DepthBiasAlphaはスプライトが他のジオメトリと交差する際にスプライトパーティクルに生じる鋭いエッジを削除するため、マテリアルでよく使用されます。深度バイアスブレンディングはsrcとdstピクセルの深度を比較し、ピクセルを描画する際のアルファを決めるためのバイアスを使用します。詳細はDepthBiasBlendUsageを参照してください。

DepthBiasAlphaは深度バイアスブレンディングの使用に好まれるノードです。

exp_depthbiasalpha.jpg

プログラマー: ブレンドがシェーダーではなくハードウェアで実行されるので、DepthBiasAlphaは深度バイアスブレンディングに好まれます。

DepthBiasedBlend

DepthBiasedBlendはスプライトが他のジオメトリと交差する際にスプライトパーティクルに生じる鋭いエッジを削除するため、マテリアルで最もよく使用されます。深度バイアスブレンディングはsrcとdstピクセルの深度を比較し、ピクセルを描画する際のアルファを決めるためバイアスを使用します。詳細はDepthBiasBlendUsageを参照してください。

DepthBiasedBlendはDepthBiasAlphaよりも速度が遅くなります。DepthBiasAlphaを代わりにご使用ください。

プログラマー: DepthBiasedBlendは深度バイアスブレンディングノードとして最も好まれない機能です。 理由は 1) カラーと深度を直近のフレーム/深度バッファリゾルブからサンプリングする(遅い) 2)ブレンドはハードウェアブレンディング経由ではなくシェーダーで実行される(遅い)。

DeriveNormalZ

DeriveNormalZ表現式はタンジェント空間法線のZコンポーネントから派生します。XとYコンポーネントを渡し、結果として3チャンネルタンジェント空間法線を出力します。ZはZ = sqrt(1 - (x * x + y * y))と計算されます。 

Inputs(入力値)

  • InXY - 2チャンネルベクター値の形式でタンジェント空間法線のXとYコンポーネントを受け取ります。 

exp_derivenormalz.jpg

Desaturation

Desaturationは入力をデサチュレート(非飽和)にする、または入力されたカラーを一定のパーセンテージに基づいてグレーの影へ変換します。

Properties(プロパティ)

  • Luminance Factors(ルミナンスファクター)  -各チャンネルがカラーをデサチュレートするのに貢献する量を特定します。これによって、デサチュレート時は、緑は赤よりも明るく、またブルーよりも赤のほうが明るくなるように制御されます。

Inputs(入力値)

  • Percent(パーセント) - 入力に適用するデサチュレーションの量を特定します。割合の範囲は0.0(完全なデサチュレーション)から1.0(完全なオリジナルカラー、デサチュレーションなし)です。

DesaturationExample.jpg

プログラマー: デサチュレート色のDを定義し、Iカラーと輝度係数のLを入力します。出力はO = (1-Percent)*(D.dot(I)) + Percent*I になります。 

DestColor

DestColorは現在描画されているピクセルの背景で、レンダリングされているシーンの既存カラーを出力します。 

使用例: ウォーターマテリアルは水中の岩のカラーをサンプリングする際に使用出来ます。 

exp_destcolor.jpg

DestDepth

Destdepthは現在描画されているピクセルの背景でレンダリングされているシーンの既存深度を出力します。

使用例: DestDepthを駆使して、水に「深さ」や霧効果与えることが出来ます。水深が深いほど(深度が大きい)、水中の岩が不明瞭となります。

exp_destdepth.jpg

プログラマー: DestDepthはロー深度値を返します(0から2^24-1の整数)。この非線形の深度は以下の様に標準化することが出来ます:

     MaxZ = 16777215
     NormalizedDepth = 1 - MaxZ / (DestDepth + MaxZ)
  

結果として標準化された深度は0.0から1.0の範囲の線形になります。

Distance

Distanceは二つのポイント、カラー、位置、ベクターの(ユークリッド)距離間を計算し、結果値を出力します。これは1、2、3、または4つのコンポーネントベクターに機能しますが、表現式への両入力値が同数のチャンネルを持っていなくてはいけません。

Inputs(入力値)

  • A - 任意の長さの値またはベクターを受け取ります。
  • B - 任意の長さの値またはベクターを受け取ります。 

exp_distance.jpg

Pseudo code: Result = length(A - B)

Low level HLSL code: float Result = sqrt(dot(A-B, A-B))

Divide

Divideは二つの入力値を受け取り、1 番目の値を2番目の値で割った結果値を出力します。除算はチャンネルごとに計算されます。 つまり、最初のRチャンネルが二番目のチャンネルによって、最初のGチャンネルが二番目のチャンネルによって除算される形です。約数が単精度浮動小数点値でない限り入力値は同数でなくてはいけません。

Inputs(入力値)

  • A - 除算される値を受け取る、被除数。
  • B - 除算する値を受け取る、約数。

例: A=(1.0,0.5,-0.4)と B=(2.0,2.0,4.0)のDivideの結果は (0.5,0.25,-0.1)

DivideExample.jpg

DotProduct

DotProductはdot product(内積)、もしくはその他に投影されたあるベクターの長さを計算します。この計算はフォールオフの計算に多々使用される技術です。DotProductはベクター入力値に同数のチャンネル数を必要とします。

Inputs(入力値)

  • A - 任意の長さの値またはベクターを受け取ります。
  • B -任意の長さの値またはベクターを受け取ります。

DotProductExample.jpg

DynamicParameter

DynamicParameterは、いかなるマナーでも使用できるマテリアルに最高4つの値を渡し、パーティクルエミッタ―にコンデュイットを提供します。これらの値はエミッタ―に置かれたParameterDynamicモジュールを経由してCascadeで設定されます。

Properties(プロパティ)

  • Param Names - パラメータの名前の配列。この値がMaterial Editorに表示される表現式の出力テキストを決定し、CascadeのParameterDynamicモジュールでパラメータを参照する名前として使用されます。

Outputs(出力値)

  • Param1 - Param Namesプロパティにある最初のパラメータの値を出力する。この出力の名前はParam Names プロパティにある値に基づいて変更出来ます。
  • Param2 - Param Namesプロパティにある二番目のパラメータの値を出力する。この出力の名前はParam Names プロパティにある値に基づいて変更出来ます。
  • Param3 - Param Namesプロパティにある三番目のパラメータの値を出力する。この出力の名前はParam Names プロパティにある値に基づいて変更出来ます。
  • Param4 - Param Namesプロパティにある四番目のパラメータの値を出力する。この出力の名前はParam Names プロパティにある値に基づいて変更出来ます。

FlipBookSample

FlipBookSampleは、マテリアルで生き生きとしたflipbookテクスチャの使用を可能にします。TextureSampleとかなり似た関数ですが、flipbookテクスチャとしてインポートされたテクスチャはFlipBookSampleを使用しなくてはいけません。FlipBookSampleは必要なUV操作を実施し、flipbookテクスチャのHorizontalImage、VerticalImages、FrameRateプロパティに基づいて、flipbookテクスチャのサブイメージをレンダリングします。

Properties(プロパティ)

  • Texture - 使用するflipbookテクスチャを特定します。

Inputs(入力値)

  • UVs - テクスチャに適用するテクスチャ座標を受け取ります。

(Hover for animated preview)

exp_flipbooksample_still.jpg

Floor

Floorは値を受け取り、前の整数と同じ 概数 にして結果を出力します。CeilFracも併せて参照してください。

例: 0.2のFloorは0.0、(0.2、1.6)のFloorは(0.0、1.0)です。 

FloorExample.jpg

FluidNormal

FluidNormal表現式はFluidSurfaceActorによって作成される法線マップへのアクセスを与えます。リップルとウェーブを含む全てのタービランス、オブジェクトが流体サーフェスで動的に相互処理されることによって起こります。 流体サーフェスによって計算される相互作用的なタービランスに加えて、環境光のタービランスを作成するその他の法線マップと併用して使用できます。

exp_fluidnormal.jpg

FMod

FModは二つの入力値を除算した後の浮動小数点余りを返します。 

(Hover for animated preview)

exp_fmod_still.jpg

FoliageNormalizedRotationAxisAndAngle

FoliageNormalizerotationAxisAngleは、RotateAboutAxisと併用使用にデザインされ、マテリアルがInteractiveFoliageActorへ適用されると自動的に値がコードによって設定されます。RGMはInteractiveFoliageActorのスプリングオフセットを適用するため、標準化された回転軸を含みます。InteractiveFoliageActor で例を参照してください。 

exp_foliagenraaa.jpg

FoliageImpulseDirection

FoliageImpulseDirection の出力値は、マテリアルがInteractiveFoliageActorへ適用されると自動的にコードによって設定されます。また、InteractiveFoliageActorスプリングオフセットへrawアクセスを与えます。 InteractiveFoliageActor で例を参照してください。

exp_foliageimpulsedir.jpg

FontSampler

FontSampler表現式は、通常の2Dテクスチャとしてフォントリソースからテクスチャページのサンプル化を可能にします。フォントのアルファチャンネルは、フォントアウトライン値を含みます。有効なフォントページのみ特定することが出来ます。

FontSampler.jpg

Frac

Fracは値を受け取り、これらの値の小数部分を出力します。 CeilFloorも参照してください。

例: 0.2のFrancは0.2、(0.0、1.6)のFracは(0.0、0.6)です。

FracExample.jpg

Fresnel

Fresnelは表面法線のdot product(内積)とカメラの方向に基づいてフォールオフを計算します。表面法線が直接カメラに向いている時、0の値が出力されます。表面法線がカメラに垂直に向き合っている時は、1の値が出力されます。結果は[0、1]にクランプされるので、真ん中にネガティブカラーを持ちません。

Properties(プロパティ)

  • Exponent(指数) - 出力値がどれくらいの速さでフォールオフするか特定します。大きな値はぴんと張った、または素早いフォールオフを意味します。 

Inputs(入力値)

  • Normal - サーフェスの法線を表す3チャンネルのベクター値を受け取ります。通常は法線マップです。 法線が特定されていない場合、メッシュのタンジェント法線が使用されます。 

Fresnel.jpg

FunctionInput

FunctionInput表現式は、関数の入力の一つを定義する、マテリアル関数のみに置かれます。

Properties(プロパティ)

  • Input Name(入力名) - 入力名を表示するMaterialFunctionCall は、入力を格納するマテリアル関数を使用します。
  • Description(説明) - 入力の説明は、Materialfunction呼び出しにある入力用のコネクターがマウスポインタ上に重なると、ツールヒントとして表示されます。
  • Input Type(入力タイプ) - 入力が要求するデータのタイプ。入力用に渡されたデータはこのデータタイプに型変換され、データに互換性がない理由で型変換に失敗するとコンパイラーエラーを表示します。
  • Preview Value(プレビュー値) - マテリアル関数を編集する時、入力のプレビューとして使う値。
  • Use Preview Value As Default(デフォルトのプレビュー値として使用) - 有効の際、データが渡されないと入力のデフォルト値として Preview Value が使用されます。
  • Sort Priority(プライオリティをソート) - MaterialFunctionCallに表示する入力の順番を決定する際に、入力のプライオリティを特定します。

このノードはMaterialFunctionsと使用されます。

FunctionOutput

FunctionInput表現式は、 関数の出力値の一つを定義するマテリアル関数のみに入れることができます。

Properties(プロパティ)

  • Output Name(出力名) - MaterialFunctionCallに表示される出力名は、出力値が含まれるマテリアル関数を使用します。
  • Description(説明) - 出力値の説明は、MaterialFunction呼び出しにある入力用のコネクターがマウスポインタ上に重なると、ツールヒントとして表示されます。
  • Sort Priority(ソートのプライオリティ) - MaterialFunctionCallに表示する出力値の順番を決定する際に、出力のプライオリティを特定します。

このノードはMaterialFunctionsと使用されます。

If

If表現式は二つの入力値を比較し、比較結果に基づいてその他の3つの値のうち一つを渡します。比較される二つの入力値は単精度浮動小数点でなければいけません。

Inputs(入力値)

  • A - 単精度浮動小数点を受け取ります。
  • B -単精度浮動小数点を受け取ります。
  • A>B - Aの値がBの値より大きい時、値を受け取り出力します。
  • A=B -Aの値とBの値が同等の時、値を受け取り出力します。
  • A<B - Aの値がBの値よりも小さい時、値を受け取り出力します。

IfExample.jpg

LensFlareIntensity

LensFlareIntensity表現式は、レンダリングしているレンズフレアの'ConeStrength'を提供します。コーン(円錐)強度はフレアソースに関連するビューのポジションに対するフレアの輝度を決定するために提供されています。フレアソースがレンズフレアの半径外に位置している場合、コーン強度は0.0になります。 (レンズフレアの半径が0.0fに設定されている場合、状態がいつもオンであるとみなされます)半径内に位置している場合、コーン強度は1.0fになります。レンズフレアが指向性コーンと一緒に設定されていて、ビューがコーン内側に位置及びフレアに向いている場合、ConeStrength は1.0になります。外部コーンを通り抜ける際に0.0fへフォールオフします。

LensFlareOcclusion

LensFlareOcclusion はレンダリング中のレンズフレアのオクルージョン値を提供します。値はレンズフレアのScreenPercentageMap の参照値として使用されているプリミティブ型の範囲の割合によって決定されます。

LensFlareRadialDistance

LensFlareRadialDistance はスクリーンのセンターからレンダリングされているエレメントの放射距離を処理します。値はレンズフレアエレメントのbNormalizeRadialDistance を使って0.0f(中央)から1.0f(端)の値に標準化することが出来ます。値は通常0.0f(中央)から1.0f(垂直または水平縁)、1.4f(スクリーンのコーナー)となります。1.4fの値は、スクリーンの幅と高さの割合になります。

LensFlareRayDistance

LensFlareRayDistance はレンダリングされているフレアエレメントの光線距離を処理します。

LensFlareSourceDistance

LensFlareSourceDistance はスクリーン空間でソースからレンダリングされているエレメントの距離を処理します。

LightmapUVs

LightmapUVs は2チャンネルのベクター値という形でライトマップのUVテクスチャを出力します。ライトマップUVが利用不可能な場合、2チャンネルのベクター値(0.0)を出力します。

LightmassReplace

LightmassReplace 表現式は、通常のレンダリング目的のマテリアルコンパイル時にRealtime入力を通過し、グローバルイルミネーション処理の際にマテリアルをLightmassへエクスポートする時、Lightmass入力を通過します。これは、WorldPositionのようなエクスポートされたバージョンが正常に処理されない際など回避策として有益です。

Inputs(入力値)

  • Realtime - 通常のレンダリング処理のため通過する値を受け取ります。
  • Lightmass - マテリアルをLightmassへエクスポートする際に通過する値を受け取ります。 

LightVector

LightVectorは表面に対する光の方向を表す3チャンネルのベクター値です。

使用例: LightVectorはカスタムの光源処理アルゴリズムの計算に使用されます。簡素なランバート照明モデルが例として挙げられます。

LightVectorExample.jpg

ALERT! 注釈: Emissive出力の値を求めている間は、LightVector表現式は有効ではありません。 

LightVectorはCustomLightingにとって重要です。

LinearInterpolate

LinearInterpolate 表現式はマスクに使用された入力値に基づいて二つの入力値をブレンドします。これはPhotoshopでレイヤーマスクを処理する際のテクスチャ間のトランジッション(変形)を定義するマスクのようなものです。マスクアルファの輝度は、二つの入力値から受け取るカラーの割合を決定します。アルファが1.0/White(白)の場合、最初の入力値が使用されます。アルファ値が0.0/black(黒)の場合は二番目の入力値が使用されます。 アルファ値がグレー(0.0と1.0間のどこかの値)の場合、出力値は二つの入力値のブレンドになります。ブレンドはチャンネル毎に処理されることにご留意ください。ですからアルファ値がRGBカラーの時、アルファの赤のチャンネル値によってA と B の赤のチャンネル間のブレンドが定義されます。これは、A と B の緑のチャンネルの間のブレンドを定義する、アルファの緑のチャンネルとは 無関係 です。

Inputs(入力)

  • A - 白にマッピング化された値を受け取ります。 
  • B - 黒にマッピング化された値を受け取ります。 
  • Alpha - アルファマスクとして使用する値を受け取ります。

プログラマー: LinearInterpolateはパラメータのアルファ値に基づいてAとB間の各チャンネルのlerp(Linear Interpolate線形補間)を実行します。

LinInterpExample.jpg

MaterialFunctionCall

MaterialFuntionCall表現式は、他のマテリアルまたは関数から外部のMaterialFunctionの使用を可能にします。外部関数の入力と出力は、関数呼び出しノードの入力と出力値になります。 これらの関数の一つをセットしている時にContent BrowserでMaterialFunctionが選択されると、自動的に割り当てられます。

Shortcut(ショートカット): F + Left Mouse Click

Properties(プロパティ)

  • Material Function(マテリアル関数) - MaterialFunctionの使用を特定します。

このノードはMaterialFunctionsと一緒に使用されます。

MeshEmitterDynamicParameter

MeshEmitterDynamicParameter は、カスケード表示にマテリアルとメッシュエミッターが使用される場合を除いて、標準のDynamicParameterと同一の関数です。カスケードからマテリアルへ渡される4つの同出力値を渡します。

MeshEmitterVertexColor

MeshEmitterVertexColor は、マテリアルにとってメッシュパーティクルエミッターに影響するカラーモジュールの出力値までのアクセスポイントです。メッシュエミッターによってパーティクルとしてレンダリングされる各メッシュには利用できるカラーがあります。これがそのカラーです。 

Outputs(出力値)

  • RGB - 3チャンネルのRGBカラーのベクター値を出力します。
  • R - 赤のカラーチャンネルを出力します。
  • G - 緑のカラーチャンネルを出力します。
  • B - 青のカラーチャンネルを出力します。
  • A - アルファのカラーチャンネルを出力します。

ALERT! メッシュパーティクルに使用したマテリアルはこのノードで使用しなくてはいけません!

Programmers(プログラマー): この色は定数としてシェーダーと伝達します。メッシュパーティクルの頂点カラー毎ではありません。

MeshEmitterVColor.jpg

MeshSubUV

MeshSubUV表現式は、カスケード表示にマテリアルがメッシュエミッタと使用される際の絶対的な使用を除いて、ParticleSubUVと同一の関数です。 表現式に適用されているテクスチャからサブイメージを表示する機能を提供しますが、サブイメージ間をブレンドする機能はありません。この式は、メッシュパーティクルの全てのフレームに対しテクスチャ座標が再パックすることを防ぐために、通常のParticleSubUVの代わりに使用する必要があります。

Properties(プロパティ)

  • Texture(テクスチャ) - 使用するテクスチャを特定します。 

Inputs(入力値)

  • UVs - UVの入力値は無視されて何も起こりません。 

MeshSubUV.jpg

MeshSubUVBlend

MeshSubUVBlend表現式は、カスケード表示で線形ブレンドやランダムなブレンドモードを使用してサブイメージ間をブレンド出来る機能を除いて、MeshSubUVと同等の機能を持ちます。 

Properties(プロパティ)

  • Texture(テクスチャ) - 使用するテクスチャを特定します。 

Inputs(入力値)

  • UVs - UVの入力値は無視されて何も起こりません。 

Multiply

Multiplyは二つの入力値を受け取り、その入力値を掛け合わせて結果を出力します。Photoshopのレイヤーのブレンドモードの乗算に似た機能です。乗算はチャンネルごとに計算されます。 つまり最初のRチャンネルが二番目の値と掛けられ、最初のGチャンネルが二番目の値と掛けられといった形になります。片方の値が単精度浮動小数点値でない限り、同数の入力値でなくてはいけません。 

Inputs(入力値)

  • A - 乗算する最初の値を受け取ります。
  • B - 乗算する二番目の値を受け取ります。

UE3のマテリアルは[0、1]に限定されていないことを忘れないでください!カラー/値が1よりも大きい場合、Multiply表現式は実際にカラーを明るくします。 

Examples(例)0.4と0.5のMultiplyは0.2;(0.2、-0.4、0.6)と(0.0、2.0、1.0)のMultiplyは(0.0、-0.8、0.6;(0.2、-0.4、0.6)と0.5のMultiplyは(0.1、-0.2、0.3)となります。

Example Usage(使用例): Multiplyはしばしカラー/テクスチャを明るく、もしくは暗くするために使用されます。

MultiplyExample.jpg

Normalize

Nomalizeは入力の標準値を計算して出力します。これは入力値の各コンポーネントがベクターのL2ノルム(長さ)で割られることを意味します。

NormalizeExample.jpg

TIP 注釈: Normalマテリアル出力値に代入された表現式は標準化する必要はありません。

ObjectOrientation

ObjectOrientationはオブジェクトのワールド空間のUpベクターを出力します。すなわち、適用されたマテリアルが指している、オブジェクトのローカルポジティブZ軸の方向です。

exp_objectorientation.jpg

ObjectRadius

ObjectRadiusはオブジェクト範囲にあるワールド空間の半径を出力します。アクティブビューポート(ビューポート上部の下方向矢印の下)の「show bounds(範囲を表示する)」ビューモードを有効にしてから任意のオブジェクトの範囲をプレビューして、オブジェクトを選択します。ObjectWorldPosition で例を参照してください。 

ObjectWorldPosition

ObjectWorldPositionはオブジェクト範囲のワールド空間センター位置を出力します。例えるなら、フォーリッジで球状の光源を作成する際に有益です。

下記のノード設定は、オブジェクトポジションの1、オブジェクト半径0の値を持つオブジェクトの位置、ワールドの位置、そしてオブジェクトの半径を使用しています。

exp_objectradius.jpg

OcclusionPercentage

OcclusionPercentage表現式は、レンダリングされているオブジェクトのオクルージョンの割合を出力します。

ParticleSystem(None以外にOcclusionBoundMethod)とLensFlaresのみで使用されます。

OneMinus

OneMinusは入力値を受け取り、値から1を引いて出力します。演算はチャンネル毎に実行されます。

Examples(例): 0.4のOneMinusは0.6;(0.2、0.5、1.0)のOneMinusは(0.8、0.5、0.0);(0.0、-0.4、1.6)のOneMinusは(1.0、-0.4、-0.6)となります。

Example Usage(使用例): 入力カラーの範囲が[0、1]の時、OneMinusの効果は通常「invert」と呼ばれる機能と同等の効果があります。 つまり、OneMinusは入力値に加算すると白を作り出すといった、補完カラーを返します。 

OneMinus.jpg

Panner

Pannerはテクスチャのパン、または移動に使用されるUVのテクスチャ座標を出力します。

Properties(プロパティ)

  • SpeedX - U方向へ座標がパンする速度を特定します。
  • SpeedY - V方向へ座標がパンする速度を特定します。

Inputs(入力値)

  • Coordinate(座標) - ベースUVのテクスチャ座標を受け取ってから修正します
  • Time - 現在のパンの位置を決定するため値を受け取ります。通常はTimeによって一定のパン効果が提供されますが、Constant または ScalarParameterをある特定のオフセットまたはMatinee、UnrealScripを経由してパンを制御するために使用することも出来ます。

パンはTimeの入力値によって変化するUVを生成します。Coordinate入力値は、Pannerノードによって生成されたUVを操作(例えばオフセット)するのに使用出来ます。

(Hover for animated preview)

exp_panner_still.jpg

ParticleMacroUV

ParticleMacroUVは、パーティクルシステム全体へ連続的に2dテクスチャをマッピングする際に使用するUVのテクスチャ座標を出力します。つまりパーティクル全域でテクスチャがシームレスになります。UVは、タイル表示されるワールド空間の半径を決定するMacroUVPosition (MacroUVカテゴリ配下のParticleSystem、Cascadeで特定)とMacroUVRadiusを軸に展開されます。ParticleMacroUVノードは、法線テクスチャ座標と各パーティクル上にテクスチャをマッピングすることによってパターン化を解消し、パーティクル上の連続的なノイズのマッピングに有益です。 

Properties(プロパティ)

  • Use View Space - Trueの時、各スプライトの深度に基づいて座標を効率よくオフセットし、爆発に放射ブラーの視差効果をもたらします。

exp_macrouv.jpg

(Hover for animated preview)

macrouv_still.jpg

オプションが有効な時:

(Hover for animated preview)

macrouv_view_still.jpg

ParticleSubUV

ParticleSubUVはテクスチャのサブイメージをパーティクルにレンダリングする際に使用します。ParticleSubUVはテクスチャ操作がCascadeで操作可能である点を除いて、フリップブックと似た機能です。

Properties(プロパティ)

  • Texture(テクスチャ) - 使用するテクスチャを特定します。

Inputs(入力値)

  • UVs - UV入力は無視され何も起こりません。

ParticleSubUV.jpg

PerInstanceRandom

PerInstanceRandomはマテリアルが適用される静的メッシュの定数毎に、異なるランダムな浮動小数点値を出力します。InstancedStaticMeshComponentは必要に応じて、どこからでも使用できる様に保護されていないランダムな小数浮動点値をインスタンス用に設定します(例えば、ウィンドウの裏側のランダムなライトのレベル)。 定数ですが、メッシュの各インスタンスとは異なります。

出力値はターゲットプラットフォームの0からRAND_MAX間の整数になります。

注釈 InstancedStaticMeshアクタまたはその他のProcBuildings等のInstancedStaticMeshComponentsを利用するアクタに適用時のみ機能します。

PixelDepth

PixelDepth は、現在レンダリングされているピクセルのカメラからの深度または距離を出力します。値の使用についての詳細は、DestDepthを参照してください。 

exp_pixeldepth.jpg

Power

Power表現式は二つの入力値を受け取り、BaseをExp乗の累乗をして結果を出力します。言い換えると、Baseがその値によってExp回乗算されます。 

Inputs(入力値)

  • Base - ベース値を受け取ります。
  • Exp - 指数値を受け取ります。

Examples: Base0.5のExp2.0乗は0.25になります。

Example Usage(使用例) Powerに渡すカラーが[0、1]の場合、Powerは明るい色のみが残るコントラスト調整として動作します。

Power.jpg

ReflectionVector

ReflectionVectorはCameraVectorと似通った機能ですが、表面法線を反映したカメラ方向を示す3チャンネルベクター値を出力します。

Example Usage(使用例) ReflectionVectorは一般に環境マップに使用されます。環境マップでは、リフレクションベクターのx/yコンポーネントがキューブマップテクスチャへのUVとして使用されます。

ReflectionVectorExample.jpg

Rotator

Rotatorは回転テクスチャの作成に使用され、2チャンネルのベクター値という形でUVテクスチャ座標を出力します。

Properties(プロパティ)

  • CenterX - 回転の中心として使用するU座標を特定します。
  • CenterY - 回転の中心として使用するV座標を特定します。
  • Speed - 座標が時計回りに回転する速度を特定します。

Inputs(入力値)

  • Coordinate(座標) - 後に表現式によって修正が可能なベースとなるUVテクスチャ座標を受け取ります。
  • Time - 現在の回転位置を決定する値を受け取ります。通常はTimeによって回転定数効果をもたらしますが、ConstantScalarParameterを使用して特定のオフセットの特定や、MatineeやUnrealScriptで回転を制御することが出来ます。

RotatorExample.jpg

RotateAboutAxis

RotateAboutAxis表現式は回転軸、軸の点、回転角度に与えられた3チャンネルのベクター入力値を回転させます。簡素なシーヤよりもより品質の高いWorldPositionOffsetを使用しているアニメーションに有益です。InteractiveFoliageActorから例を参照してください。

Inputs(入力値)

*NormalizedRotationAxisAndAngle - FoliageNormalizedRotationAxisAndAngleの出力値を受け取ります。

  • PositionOnAxis - 回転が生じる軸の位置を表す3チャンネルのベクター値を受け取ります。
  • Position - オブジェクトの位置を表す3チャンネルのベクター値を受け取ります。

exp_foliagenraaa.jpg

ScalarParameter

ScalarParameterは、マテリアルの定数またはオンザフライのコードによってアクセスや変更がされる単精度浮動小数点値(Constant)を出力します。

Properties(プロパティ)

  • Default Value - 定数が受け取る初期値を特定します。
  • Param Name - マテリアルの定数またはコードを通じてパラメータを確認する名前を特定します。

ScalarExample.jpg

SceneDepth

SceneDepthは既存のシーンの深度を出力します。DestDepthと似た機能ですが、DestDepthは現在描写されているピクセルのサンプリングのみが可能で、SceneDepthは *どんな位置* の深度もサンプリングが可能です。

Properties(プロパティ)

  • Normalize(標準化) - Trueの場合、出力深度は[0、1]の範囲に標準化されます。

Inputs(入力値)

  • UVs - 深度「テクスチャ」をどのようにサンプリングするかを決定する際に使用されるUVテクスチャ座標を受け取ります。 

exp_scenedepth.jpg

scenedepth_effect.jpg

Programmers(プログラマー) SceneDepthはraw(生)の深度値を返します(0 から 2^24-1までの整数)。この非線形深度は以下の様に標準化されます。

     MaxZ = 16777215
     NormalizedDepth = 1 - MaxZ / (SceneDepth + MaxZ)
  

結果として標準化された深度は、0.0と1.0の範囲の線形です。

SceneTexture

SceneTextureは既存シーンのカラーを出力します。DestColorと似た機能ですが、DestColorは現状描写されているピクセルのカラーサンプリングのみが可能で、SceneTextureは *どんな位置* のカラーもサンプリングが可能です。

Properties(プロパティ)

  • Scene Texture Type -
  • Screen Align - Trueの場合、[0、1]のUVテクスチャ座標をバックバッファの現状サイズにマップします。 すなわち、シーンテクスチャが相関的にシーンとマップ付されます。

Inputs(入力値)

  • UVs - シーンテクスチャをどのようにサンプリングするかを決定する際に使用されるUVテクスチャ座標を受け取ります。 

SceneTexture.jpg

ScreenPosition

ScreenPosition表現式は、現在レンダリングされているピクセルのスクリーンスペース位置を出力します。

Properties(プロパティ)

  • Screen Align - Tureの場合、ScreenPositionが位置を同次座標で割り、スクリーンアライメント用に位置を[0、0] - [1、1]へマップ付します。

ScreenPosition.jpg

Sine

Sineは入力値(ラジアン)の正弦を出力します。 最も一般的には、Timeとその入力値を関連付けて、継続的な振動波形の出力の際に使用されます。出力値は-1と1の間を循環します。この機能とCosineの出力値の違いは出力波形がほぼ半分にオフセットされます。波形のビジュアル描写は下記になります。

sine_wave.jpg

Properties(プロパティ)

  • Period - 合成波の周期を特定します。 すなわち、振動が発生するまでにどのくらいの時間を要するか特定します。

Example Usage(使用例) この機能は振動効果をもたらしたい際にいつでも有益です。振動の速度と振幅は、時間入力(速度)または出力値(振幅)を掛け合わせて動的に制御することが容易にできます。

(Hover for animated preview)

exp_sine_still.jpg

SphereMask

SphereMaskは距離計算に基づいてマスク値を出力します。ある入力が点の位置で、その他の入力がある範囲を伴う球のセンターの場合、マスク値はトランジッションエリア内の外側に0で内側に1となります。1、2、3、4つのコンポーネントをもつベクター値に効果があります。

Properties(プロパティ)

  • Attenuation(減衰)Radius -
  • Hardness(硬化) Percent - トランジションのエリアサイズを特定します。この機能はPhotoshopのブラシの硬さ調整のような働きをします。0はトランジッションが硬いことを意味し、100はトランジッションエリアが最大限(柔らかい)であることを意味します。

Inputs(入力値)

  • A - チェックするポイントの位置を表す値を受け取ります。
  • B - 球の真ん中を表す値を受け取ります。 

exp_spheremask.jpg

SquareRoot

SquareRootは、入力値の平方根を出力します。SquareRootは単精度浮動小数点入力値のみを実行することができます。

exp_sqrt.jpg

Subtract

Subtractノードは二つの入力値を受け取り、最初の入力値から二番目の値を減算し差分を出力します。減算はチャンネル毎に実行されます。つまり、二番目の入力のRチャンネルが最初の入力値から減算され、二番目の入力のGチャンネルから最初の入力値が減算される、などです。 二番目の入力値が単一の定数値でない限り、両入力値は同数のチャンネルを持たなくてはいけません。定数はベクターのさまざまな入力値から減算されます。

Inputs(入力値)

  • A - 被減数の値を受け取ります。 
  • B - 減数される値を受け取ります。 

0.5から0.2を減算すると0.3、(0.2、-0.4、0.6)から(0.1、0.1、1.0)を減算すると(0.1、-0.5、-0.4)、(0.2、0.4、1.0)から 0.2 を減算すると(0.0、0.2、0.8)になります。

* Example Usage(使用例)* Subtractは濃いカラーやオフセットUVに使用出来ます。

SubtractExample.jpg

StaticBool

StaticBoolは関数内で静的bool関数入力のデフォルトbool値を渡すために使用されます。ノードがスイッチされることはありませんので、StaticSwitchノードと合わせて使用しなくてはいけません。

Properties(プロパティ)

  • Value - bool値は、TRUE(チェック済)またはFalseです。 

このノードはMaterialFunctionsと使用されます。

StaticBoolParameter

StaticBoolParameterは、boolパラメータを作成しswitchを実装しないという点を除いて、StaticSwitchParameterのような機能を持ちます。

Properties(プロパティ)

  • Default Value - パラメータのデフォルトbool値は、TRUE(チェック済)またはFalseです。

このノードはMaterialFunctionsと使用されます。

StaticComponentMaskParameter

StaticComponentMaskParameterは、マスク値が定数によって設定されるという点を除いて通常のComponent Maskのような機能を持ちます。ランタイム時に変更が出来ない静的で、Material Instance Editorによってのみ設定が可能です。 Static Component Maskはランタイムではなく、コンパイル時に適用されます。マテリアルの新バージョンは、マテリアルの静的パラメータの全ての*使用された*コンビネーションをコンパイルしなくてはいけません。これがされないと、シェーダーエクスプロージョンを引き起こします。マテリアルの静的パラメータ数と実際に使用するこれら静的パラメータの置換数を最小限に抑えるようにしてください。

Properties(プロパティ)

  • Default R - チェックされると、赤または最初の入力値のチャンネルが出力値として渡されます。
  • Default G - チェックされると、緑または二番目の入力値のチャンネルが出力値として渡されます。
  • Default B - チェックされると、青または3番目の入力値のチャンネルが出力値として渡されます。
  • Default A - チェックされると、アルファまたは4番目の入力値のチャンネルが出力値として渡されます。
  • Parameter Name - マテリアルのインスタンスやコードを通じてパラメータの確認に使用された名前を特定します。

Example Usage(使用例) 静的Component Masksは、インスタンスが使用するマスクテクスチャを選択する際に使用します。仮にマスクが静的(ランタイム時に変更する必要無し)な場合、チャンネルをマスクするベクターパラメータによってテクスチャ参照を掛け合わせる代わりに、このアプローチをいつも使用してください。さもなければテクスチャ帯域幅とシェーダー文の無駄となります。 

StaticComponentMask.jpg

StaticSwitchParameter(静的スイッチパラメータ)

StaticSwitchParameterは二つの入力値を受け取り、パラメータ値がtrueの時最初の入力値、または逆の場合2番目の入力値を出力します。このパラメータはランタイム時に変更が出来ないため静的な名前が付けられ、Material Instance Editorによってのみ設定が可能です。Static Switchesはランタイムではなくコンパイル時に適用されます。これはマテリアルに含まれないブランチは実行されることなく、静的スイッチがランタイム時に効果的にフリーとなります。もう一方で、マテリアルの新バージョンは、マテリアルの静的パラメータの全ての*使用された*コンビネーションをコンパイルしなくてはいけません。これがされないと、シェーダーエクスプロージョンを引き起こします。静的パラメータ数、実際に使用されているこれら静的パラメータの置換数を最小限に抑えるようにしてください。

Properties(プロパティ)

  • Default Value - Trueの場合、最初の入力値が出力値となります。さもなければ、二番目の入力値が出力値となります。
  • Extended Caption Display - Trueの場合、表現式のタイトルバーに式の値を表示します。
  • Parameter Name - マテリアルのインスタンスやコードを通じてパラメータの確認に使用された名前を特定します。

Inputs(入力値)

  • A - さまざまなチャンネルの値を受け取ります。
  • B - さまざまなチャンネルの値を受け取ります。

Example Usage(使用例) Static Switches(静的スイッチ)はランタイムコストを発生させずにマテリアルの全てのブランチを削除する際に使用されます。インスタンスは異なる値を持つことが出来てパフォーマンスを損失することなくテンプレート化されたシェーダーを設定することが出来ます。 

exp_staticswitch_A.jpg

exp_staticswitch_B.jpg

StaticSwitch

StaticSwitchは、スイッチを実装するのみでパラメータを作成しないという点を除いてStaticSwitchParameterのような機能を持ちます。

Properties(プロパティ)

  • Default Value - どの入力がアクティブになるかを決定するパラメータのデフォルトbool値、True(チェック済)またはFalseです。 

* Inputs(入力値)*

  • True - wsitchの Value がTrueの時使用される入力値です。
  • False - wsitchの Value がFalseの時使用される入力値です。
  • Value - アクティブな入力値を決定するbool値を受け取ります。

このノードはMaterialFunctionsと使用されます。

TextureCoordinate

TextureCoordinateは、マテリアルが他のUVチャンネルの使用、タイリング処理の特定、メッシュのUVの動作を許可する2チャンネルのベクター値という形でUVテクスチャを出力します。

Properties(プロパティ)

  • Coordinate Index - 使用するUVチャンネルを特定します。 
  • UTiling - U方向へのタイル処理の量を特定します。
  • VTiling - V方向へのタイル処理の量を特定します。 
  • Un Mirror U - Trueの場合、U方向への任意のミラーリングを元に戻します。
  • Un Mirror V - Trueの場合、V方向への任意のミラーリングを元に戻します。

* Example Usage(使用例)* メッシュの二番目のUVチャンネルへアクセスし、Texturecoordinateノードを作成し、そのCoordinateIndexを(0-最初のチャンネル、1-二番目のチャンネル等)設定し、TextureSampleノードのUV入力値と接続します。 

TextureCoordinateExample.jpg

TextureSample

TextureSampleは、テクスチャからカラー値を出力します。このテクスチャは、通常のTexture2D(法線マップを含む)、キューブマップ、またはムービーテクスチャとなります。

Properties(プロパティ)

  • Texture(テクスチャ) - 式によってサンプル化されたテクスチャを特定します。テクスチャを設定するには、まずContent Browserからテクスチャを選択します。そして式のプロパティウィンドウにあるTextureプロパティを選択して、「Use current Selection」ボタンをクリックします。 

Inputs(入力値)

  • UVs - テクスチャに使用するUVテクスチャ座標を受け取ります。UVへ値が入力されない場合、マテリアルが適用されたメッシュのテクスチャ座標が使用されます。TextureSampleがキューブマップのテクスチャを表す場合、UV座標は2チャンネルの値ではなく3チャンネルの値でなくてはいけません。 

* Outputs(出力値)*

  • RGB - カラーの3チャンネルRGBベクター値を出力します。
  • R - RGBカラーの赤チャンネルを出力します。
  • G - RGBカラーの緑チャンネルを出力します。
  • B - RGBカラーの青チャンネルを出力します。 
  • A - RGBカラーのアルファチャンネルを出力します。テクスチャがアルファチャンネルを持たない場合、「アルファ」チャンネルを何かと接続することは、技術的に不正でない限りいつもゼロ(黒)の結果となります。

TextureSampleExample.jpg

TextureSampleParameter2D

TextureSampleParameter2Dは、マテリアルのインスタンス及びコードを通じて修正されるパラメータという点を除いて、TextureSampleと同等の機能を持ちます。 

Properties(プロパティ)

  • Parameter Name - マテリアルのインスタンスとコードを通じて、パラメータを確認する際に使用された名前を特定します。
  • Texture - 式によってサンプル化されたテクスチャを特定します。 

Inputs(入力値)

  • UVs - テクスチャに使用するUVテクスチャ座標を受け取ります。 UVに値が入力されない場合、マテリアルが適用されたメッシュのテクスチャ座標が使用されます。

Outputs(出力値)

  • RGB - カラーの3チャンネルRGBベクター値を出力します。 
  • R - RGBカラーの赤チャンネルを出力します。 
  • G - RGBカラーの緑チャンネルを出力します。
  • B - RGBカラーの青チャンネルを出力します。 
  • A - RGBカラーのアルファチャンネルを出力します。テクスチャがアルファチャンネルを持たない場合、「アルファ」チャンネルを何かと接続することは、技術的に不正でない限りいつもゼロ(黒)の結果となります。

TextureSampleParameterCube

TextureSampleParameterCubeは、キューブマップを受け入れることとマテリアルのインスタンスとコードを通じて修正されるパラメータという点を除いて、TextureSampleと同等の機能を持ちます。 

Properties(プロパティ)

  • Parameter Name(パラメータ名) - マテリアルのインスタンスとコードを通じてパラメータを確認する際に使用する名前を特定します。 
  • テクスチャ Texture - 式によってサンプル化されたキューブマップを特定します。

* Inputs(入力値)*

  • UVs - テクスチャに使用するUVテクスチャ座標を受け取ります。 UVに値が入力されない場合、マテリアルが適用されたメッシュのテクスチャ座標が使用されます。この値は3チャンネルのベクター値でなくてはいけません。 

* Outputs(出力値)*

  • RGB - RGBカラーの3チャンネルRGBベクター値を出力します。
  • R - RGBカラーの赤チャンネルを出力します。
  • G - RGBカラーの緑チャンネルを出力します。
  • B - RGBカラーの青チャンネルを出力します。
  • A - RGBカラーのアルファチャンネルを出力します。テクスチャがアルファチャンネルを持たない場合、「アルファ」チャンネルを何かと接続することは、技術的に不正でない限りいつもゼロ(黒)の結果となります。

TextureObject

TextureObjectは、関数内のテクスチャ関数入力にデフォルトテクスチャを渡す際に使用されます。このノードは実際にテクスチャをサンプル化しないので、TextureSampleノードと合わせて使用されなくてはいけません。

TextureObjectParameter

TextureObjectParameterは、テクスチャパラメタを定義し、テクスチャ入力と関数を呼び出すマテリアルに使用されるテクスチャオブジェクトを出力します。このノードは実際にテクスチャをサンプル化しないので、TextureSampleノードと併せて使用されなくてはいけません。 

このノードはMaterialFunctionsと使用されます。 ].

TextureSampleParameterMeshSubUV

TextureSampleParameterMeshSubUVは、マテリアルのインスタンスとコードを通じて修正されるという点を除いて、MeshSubUVと同等の機能を持ちます。.

Properties(プロパティ)

  • Parameter Name(パラメータ名) - マテリアルのインスタンスとコードを通じてパラメータを確認する際に使用する名前を特定します。 
  • Texture(テクスチャ) - 式によってサンプル化されたテクスチャを特定します。

* Inputs(入力値)*

  • UVs - UV入力は無視され、何もしません。

* Outputs(出力値)*

  • RGB - RGBカラーの3チャンネルRGBベクター値を出力します。 
  • R - RGBカラーの赤チャンネルを出力します。
  • G - RGBカラーの緑チャンネルを出力します。
  • B - RGBカラーの青チャンネルを出力します。
  • A - RGBカラーのアルファチャンネルを出力します。テクスチャがアルファチャンネルを持たない場合、「アルファ」チャンネルを何かと接続することは、技術的に不正でない限りいつもゼロ(黒)の結果となります。 

TextureSampleParameterMeshSubUVBlend

TextureSampleParameterMeshSubUVBlendは、カスケード処理の際に線形ブレンドまたはランダムブレンドモードを使用してサブイメージ間をブレンド出来るという点を除いてTextureSampleParameterMeshSubUVと同等の機能を持ちます。 

Properties(プロパティ)

  • Parameter Name(パラメータ名) - マテリアルのインスタンスとコードを通じてパラメータを確認する際に使用する名前を特定します。
  • Texture(テクスチャ) - 式によってサンプル化されたテクスチャを特定します。

* Inputs(入力値)*

  • UVs - UV入力は無視され、何もしません。

* Outputs(出力値)*

  • RGB - RGBカラーの3チャンネルRGBベクター値を出力します。
  • R - RGBカラーの赤チャンネルを出力します。
  • G - RGBカラーの緑チャンネルを出力します。
  • B - RGBカラーの青チャンネルを出力します。
  • A - RGBカラーのアルファチャンネルを出力します。テクスチャがアルファチャンネルを持たない場合、「アルファ」チャンネルを何かと接続することは、技術的に不正でない限りいつもゼロ(黒)の結果となります。

TextureSampleParameterMovie

TextureSampleParameterMovieは、ムービーテクスチャ(Binkムービー)のみを受け付け、マテリアルのインスタンスかコードを通じて修正される点を除いて、TextureSampleと同等の機能を持ちます。.

Properties(プロパティ)

  • Parameter Name(パラメータ名) - マテリアルのインスタンスとコードを通じてパラメータを確認する際に使用する名前を特定します。
  • Texture(テクスチャ) - 式によってサンプル化されたムービーテクスチャを特定します。 

* Inputs(入力値)*

  • UVs - テクスチャに使用するUVテクスチャ座標を受け取ります。UVに入力がない場合、マテリアルが適用されたメッシュのテクスチャ座標が使用されます。

* Outputs(出力値)*

  • RGB - RGBカラーの3チャンネルRGBベクター値を出力します。
  • R - RGBカラーの赤チャンネルが出力されます。
  • G - RGBカラーの緑チャンネルが出力されます。
  • B - RGBカラーの青チャンネルが出力されます。
  • A - RGBカラーのアルファチャンネルを出力します。テクスチャがアルファチャンネルを持たない場合、「アルファ」チャンネルを何かと接続することは、技術的に不正でない限りいつもゼロ(黒)の結果となります。

TextureSampleParameterNormal

TextureSampleParameterNormalはTextureSampleと同等の機能を持ちますが、マテリアルのインスタンスとコードを通じて修正が出来るパラメータの法線マップテクスチャとの使用が最適です。NormalMapFormats から、法線マップで使用されるパラメータを特定する際に何故このノードの使用が好まれるのか説明をご覧ください。

Properties(プロパティ)

  • Parameter Name(パラメータ名) - マテリアルのインスタンスとコードを通じてパラメータを確認する際に使用する名前を特定します。
  • Texture(テクスチャ) - 式によってサンプル化された法線マップを特定します。

* Inputs(入力値)*

  • UVs - テクスチャが使用するUVテクスチャ座標を受け取ります。UVに入力がない場合、マテリアルが適用されたメッシュのテクスチャ座標が使用されます。

* Outputs(出力値)*

  • RGB - RGBカラーの3チャンネルRGBベクター値が出力されます。
  • R - RGBカラーの赤チャンネルが出力されます。
  • G - RGBカラーの緑チャンネルが出力されます。
  • B - RGBカラーの青チャンネルが出力されます。
  • A - RGBカラーのアルファチャンネルを出力します。テクスチャがアルファチャンネルを持たない場合、「アルファ」チャンネルを何かと接続することは、技術的に不正でない限りいつもゼロ(黒)の結果となります。

TextureSampleParameterSubUV

TextureSampleParameterSubUVは、マテリアルのインスタンスかコードを通じて修正が出来るパラメータという点を除いて、ParticleSubUVと同等の機能を持ちます。

Properties(プロパティ)

  • Parameter Name(パラメータ名) - マテリアルのインスタンスとコードを通じてパラメータを確認する際に使用する名前を特定します。
  • Texture(テクスチャ) - 式によってサンプル化されたテクスチャを特定します。

* Inputs(入力値)*

  • UVs - UV入力は無視され、何もしません。

* Outputs(出力値)*

  • RGB - RGBカラーの3チャンネルRGBベクター値を出力します。
  • R - RGBカラーの赤チャンネルを出力します。
  • G - RGBカラーの緑チャンネルを出力します。
  • B - RGBカラーの青チャンネルを出力します。
  • A - RGBカラーのアルファチャンネルを出力します。テクスチャがアルファチャンネルを持たない場合、「アルファ」チャンネルを何かと接続することは、技術的に不正でない限りいつもゼロ(黒)の結果となります。

Time

Timeノードはマテリアルに時間の推移を追加する際に使用されます。PannerCosineやその他の時間依存演算がその例となります。

Properties(プロパティ)

  • Ignore Pause - Trueの場合、ゲームが一時停止されても時間は経過します。

(Hover for animated preview)

exp_time_still.jpg

Transform

Transformは3チャンネルベクター値をある参照座標システムをその他のシステムへ変換します。

デフォルトで、マテリアルの全てのシェーダー計算はタンジェント空間で処理されます。ベクター定数、カメラベクター、ライトベクター等はマテリアル使用される前にタンジェント空間で変換されます。Transformは、これらのベクター値がタンジェント空間からワールド空間、ローカル空間、ビュー空間の座標システムへの変換を可能にします。また、ワールド空間とローカル空間をその他の参照座標システムへの変換も可能にします。

Properties(プロパティ)

  • Transform Source Type - 現在の座標システムが変換されるベクターを特定します。ワールド、ローカルまたはタンジェントのいずれかになります。
  • Transform Type - タンジェント座標システムが変換するベクターを特定します。ワールド、ビュー、ローカル、タンジェントのいずれかになります。

ミラーリングされたUVのTransformノードアカウントです。キャラクターの右端のみに影響をあたえます。

Transformノードは、キューブマップをサンプリング化する際のワールド空間法線を生成する際に有益です。下記はキューブマップをサンプルする際の法線をワールド空間へ変換する例となります。

TransformExample1.jpg

法線のビュー空間への変換は真横向き効果を作成する際に使用されます。これはメッシュ法線を使用してテクスチャ座標(通常「Sphere mapping」と参照されます)作成することによって実現します。この方法では、カメラに直面している法線がテクスチャ座標の真ん中へマッピングします。そしてカメラに垂直に向いている法線がテクスチャ座標の端にマッピングします。下記はSphereマッピングの例となります。

CT_SphereMap01.jpg

(0、0、1)の値を持つconstant3vectorは、TRANSFORM_View セットとTransformへ送られ、その後ComponentMaskへ渡されます(RとGのみを渡します)。Transformは-1から1の範囲の値を出力するので、入力する値は0から1の範囲であると先入観を持たなくてはいけません。0.5をかけて、その後0.5を加算してください。 求めた値をテクスチャの座標へあてはめてください。3つのリング(輪)の例が下記になります。効果が一目瞭然です。

CT_SphereMap_Texture01.jpg

この効果を法線マップで使用するには、単にConstant3 Vectorを法線マップテクスチャと差し替えてください。

下記がブロブっぽいロックメッシュに適用された球体マップの例となります。

CT_BlobMesh01.jpg

ALERT! 注意: VertexColorは限定補間のため、Transformノードと相互排他的です。TransformノードとVertexColorを両方使用すると、VertexColorが白で出力されます。

ALERT! 注意: Transformノードは現在非均等スケーリングを正しくハンドルしません。 

TransformPosition

このノードはオリジンからworld posを派生する際に使用されると、重量な精密問題が発生し非推奨となっています。

TransformPositionはTransformTypeの変数によって、スクリーン空間や指定された目的空間からどんな位置でも変換が可能となります。現在はワールド空間への変換のみがサポートされています。この式はマテリアルのワールド空間座標を取得する際にしようされます。ワールド位置を可視化するには、直接エミッシブにつないでください。

TransformPosition1.jpg

ワールド位置は平面テクスチャ座標としても使用出来ます。You can also use world position as planar texture coordinates:

TransformPosition2.jpg

TwoSidedSign

TwoSidedSignは、Phongの機能と合致させるため両面カスタムライティングマテリアルの背面で法線を反転させる際に有益です。+1は表面へ、-1は両面マテリアルの背面へ反転します。

exp_twosidedsign.jpg

WorldPosition

WorldPositionはワールド空間の現在のピクセル位置を出力します。単にエミッシブにつなぐことによって可視化が出来ます。

WorldPosition.jpg

一般的な使用方法はカメラからピクセル(PixelDepthから直行距離と対照的に)までの反射距離を求めます。WorldPositionはテクスチャ座標として使用や、近距離のテクスチャ座標の組み合わせを使用した無関係のメッシュを持つことができます。以下はWorldPosition.xyを使用したテクスチャの平面マップの基本例です。

WorldPosPlanarMap.jpg

WorldNormal

WorldNormalはワールド空間の頂点法線を出力します。WorldPositionOffsetのような頂点シェーダーで実行されるマテリアル入力のみで使用が可能です。メッシュの拡大や縮小の際に有益です。法線とオフセットされる位置は、UVシーム(綱ぎ目)に沿ってジオメトリを割ることに留意ください。

(Hover for animated preview)

exp_worldnormal_still.jpg

VectorParameter

VectorParameterはマテリアルのインスタンスとコードを通じて修正が出来るパラメータという点を除いて、Constant4Vectorと同等の機能を持ちます。VectorParameterの利点のひとつとして挙げられるのが、Color pickerを使用して値が設定出来るということです。.

Properties(プロパティ)

  • Default Value
    • R - 式が出力する赤の浮動点小数値、最初の値、またはベクターのチャンネルを特定します。
    • G - 式が出力する緑の浮動点小数値、二番目の値、またはベクターチャンネルを特定します。
    • B - 式が出力する青の浮動点小数値、三番目の値、またはベクターチャンネルを特定します。
    • A -式が出力するアルファの浮動点小数値、4番目の値、またはベクターチャンネルを特定します。
  • Parameter Name(パラメータ名) - マテリアルのインスタンスやコードを通じてパラメータを確認する際に使用する名前を特定します。

VectorParameterExample.jpg

VertexColor

VertexColorは、マテリアルやスプライトパーティクルエミッタ―に影響するカラーモジュールの出力のアクセスポイントです。

* Outputs(出力値)*

  • RGB - RGBカラーの3チャンネルRGBベクター値を出力します。
  • R - RGBカラーの赤チャンネルを出力します。
  • G - RGBカラーの緑チャンネルを出力します。
  • B - RGBカラーの青チャンネルを出力します。
  • A - RGBカラーのアルファチャンネルを出力します。

注意: VertexColorは限定補間のため、Transformノードと相互排他的です。TransformノードとVertexColorを両方使用すると、VertexColorが全て白で出力されます。

Programmers(プログラマー) スプライトパーティクルに関しては、カラーは頂点毎のシェーダーと通信しますが、メッシュパーティクルのカラーはシェーダー定数として設定されます。

WindDirectionAndSpeed

WindDirectionAndSpeedは、風方向(風の強度がRGBチャンネル)と風の速度(チャンネル)を出力する4チャンネルのベクター値です。値はオブジェクトに影響する風のアクタから派生されます。

このノードは風のアクタに影響を及ぼす(WindDirectionalSourceまたはWindPointSource)コードに基づいて設定されます。複数の風のアクタが影響してくる場合、ウェイトに基づいて属性がブレンドされます。WindPointSourceを例にとってみると、このノードで使用するマテリアルがソースに近ければ近いほど、ソースからのWindDirectionAndSpeedへの影響が強くなります。このノードは、WorldPositionOffsetと使用すると廉価な風アニメーションを作成する際に有益です。