Choose your operating system:
Windows
macOS
Linux
このページでは、RGBA にマップされたベクター値を出力するために使用可能な Vector 表現式を紹介します。これらは、キャラクターが指定エリアに入った時にマテリアルがキャラクターの色に反応したり色を変形するためのワールド空間でのオブジェクトの位置の取得など、 マテリアルの作成のための様々なエフェクトに使うことができます。空間のローカル スタイル マテリアル エフェクトを制御する表現式は 他にもあります。
ActorPositionWS
ActorPositionWS は、マテリアルが設定されたオブジェクトのワールド空間の位置を表す 3vector (RGB) データを出力します。
この例で、ActorPositionWS がマテリアルの Base Color へ直接入力されている様子が理解できます。結果としてマテリアルが適用されたそれぞれの球は、3D 空間の位置を移動する際に異なった色を表現します。ActorPositionWS ノードの出力結果は、最良なカラーのブレンドを作成するために 1600 で分割されていることに注目してください。
CameraPositionWS
CameraWorldPosition 表現式は、ワールド空間のカメラ位置を表す 3 つのチャンネルのベクター値を出力します。
カメラが回転すると球のプレビュー表示は変化します。
CameraVectorWS
CameraVector 表現式は、サーフェスに対するカメラ方向、つまり、ピクセルからカメラへの方向を表す 3 つのチャンネルのベクター値を出力します。
使用例: CameraVector は多くの場合、CameraVector を ComponentMask に接続して疑似的な環境マップに使用し、テクスチャ座標として CameraVector のX チャンネルと Y チャンネルを使用します。
Constant2Vector
Constant2Vector は、2 チャンネルのベクター値を出力します。つまり、2 つの定数です。
アイテム |
説明 |
|
---|---|---|
Properties |
||
R |
表現式が出力する赤の (最初の) チャンネルの浮動小数点値を指定します。 |
|
G |
表現式が出力する緑の (2 番目の) チャンネルの浮動小数点値を指定します。 |
例: (0.4, 0.6), (1.05, -0.3)
使用例: Constant2Vector もまた、2 チャンネルの値なので、テクスチャ座標の修正に実用的です。
2 キーを押してマテリアル エディタのグラフ領域を クリック すると Constant2Vector ノードをすぐに作成できます。
Constant3Vector
Constant3Vector 表現式は、3 チャンネルのベクター値を出力します。つまり、3 つの定数です。RGB カラーは各チャンネルが色に割り当てられる (赤、緑、青) Constant3Vector として考えられます。
アイテム |
説明 |
|
---|---|---|
プロパティ |
||
R |
表現式が出力する赤の (最初の) チャンネルの浮動小数点値を指定します。 |
|
G |
表現式が出力する緑の (2 番目の) チャンネルの浮動小数点値を指定します。 |
|
B |
表現式が出力する青の (3 番目の) チャンネルの浮動小数点値を指定します。 |
例: (0.4, 0.6, 0.0), (1.05, -0.3, 0.3)
3 キーを押してマテリアル エディタのグラフ領域を クリック すると Constant3Vector ノードをすぐに作成できます。
Constant4Vector
Constant4Vector 表現式は、4 チャンネルのベクター値を出力します。つまり、4 つの定数です。RGB カラーは各チャンネルが色に割り当てられる (赤、緑、青、アルファ) Constant4Vector として考えられます。
アイテム |
説明 |
|
---|---|---|
プロパティ |
||
R |
表現式が出力する赤の (最初の) チャンネルの浮動小数点値を指定します。 |
|
G |
表現式が出力する緑の (2 番目の) チャンネルの浮動小数点値を指定します。 |
|
B |
表現式が出力する青の (3 番目の) チャンネルの浮動小数点値を指定します。 |
|
A |
表現式が出力するアルファの (4 番目の) チャンネルの浮動小数点値を指定します。 |
例: (0.4, 0.6, 0.0, 1.0), (1.05, -0.3, 0.3, 0.5)
4 キーを押してマテリアル エディタのグラフ領域を クリック すると Constant4Vector ノードをすぐに作成できます。
LightVector
ライティングの演算はディファードで行われるため、この表現式は非推奨です。
Object Bounds
Object Bounds 表現式は、各軸のオブジェクトのサイズを出力します。カラーとして使用すると、X 軸、Y 軸、および Z 軸はそれぞれ R、G、および B に対応します。
上の例では、オブジェクトのカラーがオブジェクトの最長軸に対応していることがわかります。
ObjectOrientation
ObjectOrientation 表現式は、オブジェクトのワールド空間の Up ベクターを出力します。言い換えると、オブジェクトのローカルの正の z 軸はこの方向を向いています。
ObjectPositionWS
ObjectPositionWS 表現式は、オブジェクト範囲のワールド空間の中心位置を出力します。例えば、フォリッジに球状のライティングを作成する際に便利です。
ParticlePositionWS
ParticlePositionWS 表現式は、ワールド空間における各パーティクルの位置を表す Vector3 (RGB) データを出力します。
この画像では、 ParticlePositionWS はデータを可視化するためにエミッシブカラーへ送り込まれています。パーティクル システムの機能は、位置に基づいた色の変化方法を表示するようになりました。
PixelNormalWS
PixelNormalWS 表現式は、現法線に基づきピクセルが向いている方向を表すベクターデータを出力します。
この例では、PixelNormalWS は Base Color へ入力されています。ピクセルごとに結果を表示する法線マップの使用方法に注目してください。
Pre-Skinned Local Normal
Pre-Skinned Local Normals ベクター表現式は、スケルタルおよびスタティックメッシュのローカル サーフェス法線を表現する 3 つのチャンネル ベクター値を出力します。これにより、ローカルで位置合わせした 3 面マテリアルを使って スケルタルメッシュに自動 UV マッピングなどのエフェクトを適用できるようになりました。
この例では、マテリアルはメッシュのローカル サーフェス法線に合わせた 3 面テクスチャを使っています。
画像をクリックしてフルサイズで表示
|
|
---|---|
Tri-Planar Pre-Skinned Local Normal ベクトル式 |
Tri-Planar Material |
Pre-Skinned Local Position
Pre-Skinned Local Position ベクター表現式は、頂点ごとの出力に使用するスケルタルメッシュのデフォルト ポーズ位置データにアクセスできるように、 3 チャンネル ベクター値を出力します。これにより、アニメートしたキャラクター上での局所的なエフェクトが可能になります。スタティックメッシュと使用することも可能で、 標準ローカル位置を返します。
画像をクリックしてフルサイズで表示
この例では、スケルタルメッシュのデフォルト ポーズが、マッピングおよびデフォルト UV マッピング (右) に使用されています。
|
|
---|---|
Pre-Skinned Local Position ベクトル式 |
スケルタルメッシュのデフォルトの UV レイアウト |
ReflectionVectorWS
ReflectionVectorWS 表現式は CameraVectorWS と類似した性質をもっていますが、サーフェス法線上に反射するカメラ方向を表す 3 つのチャンネルのベクター値を出力します。
使用例: ReflectionVector は、反射ベクターの X、Y コンポーネントがキューブマップ テクスチャへの UV として使用される環境マップで一般的に使用されます。
VertexNormalWS
VertexNormalWS 表現式はワールド空間の頂点法線を出力します。WorldPositionOffset など頂点シェーダーで実行するマテリアル入力としてのみ使用することができます。メッシュを拡大または収縮させるのに便利です。法線に沿ってオフセットすると UV のシームに沿ってジオメトリが割れる原因になることに注意してください。
上の例では、各頂点が各法線方向に移動しているため、プレビューの球体が正弦波の動きで拡大、縮小しているように見えます。
Vector Noise
Vector Noise マテリアル表現式は、マテリアル内で使用する 3D あるいは 4D ベクター ノイズ結果をさらに追加します。これらの関数はランタイムに負荷がかかるため、外見が決定した後は 4.13 以降で導入された Draw Material to Render Target Blueprint 機能を使って計算のすべてまたは一部をテクスチャにベイクすることをお勧めします。こうしたマテリアル グラフ表現式を使うと、最終アセットでエンジン内でプロシージャルな見た目を決めることができます。外部ツールを使ってプロシージャルに生成したテクスチャを作成し、UE4 のアセットへ適用する代替方法になります。以下は、Vector Noise マテリアル表現式に含まれるタイプです。
画像 |
アイテム |
説明 |
---|---|---|
|
Cellnoise |
3D グリッドの各セルに対してランダムな色を戻します (すなわち、ノード入力に適用される数学的フロア演算から)。結果は常に任意の位置に対して一貫性があるため、高い信頼性でマテリアルにランダム性を加えることができます。この Vector Noise 関数の演算の負荷は非常に低いものです。そのため、パフォーマンス上の理由でテクスチャにベイクする必要はありません。 |
|
Perlin 3D Noise |
3D グリッドの各セルに対してランダムな色を戻します (すなわち、ノード入力に適用される数学的フロア演算から)。結果は常に任意の位置に対して一貫性があるため、高い信頼性でマテリアルにランダム性を加えることができます。この Vector Noise 関数の演算の負荷は非常に低いものです。そのため、パフォーマンス上の理由でテクスチャにベイクする必要はありません。 |
|
Perlin Gradient |
スカラー Perlin Simplex Noise の解析的 3D 勾配を計算します。出力は 4 チャンネルです。この場合、最初から 3 つめ (RGB) までは勾配であり、4 つめが (A) スカラー ノイズになります。サーフェス上のバンプとフローマップに適しているノイズ タイプです。 |
|
Perlin Gradient |
ベクター Perlin Simplex Noise (いわゆる Curl Noise ) の解析的 3D カールを計算します。出力は 3D signed curl vector で、液体やパーティクルのフローに適しています。 |
|
Voronoi |
スカラー Noise マテリアルノードと同じ Voronoi ノイズを計算します。スカラー Voronoi ノイズは 3D 空間でシード ポイントを分散し、最も近いものからの距離を戻します。Vector Noise バージョンは RGB で最も近いシード ポイントの位置を戻し、A でそれに対する距離を戻します。特に Cellnoise と併用すると、ボロノイのセル単位でビヘイビアを一部ランダム化することができます。 |
以下は、Vector Noise / Voronoi の距離コンポーネントを使って、サーフェスのバンプやクラックの苔のブレンドを調整したシンプルな地面の石のマテリアルです。シードの位置と Vector Noise / Cellnoise を合わせて石毎に色やバンプの高さを変えています。
Perlin Curl と Perlin Gradient は微分係数ベースの演算なので、オクターブでまとめて追加することができます。より複雑な式の微分係数については、表現式の結果の勾配を計算する必要があります。これを行うには、計算する表現式をマテリアル関数に配置し、以下のヘルパー ノードと併用します。
項目 |
説明 |
---|---|
Prepare3DDeriv |
四面体パターンの位置オフセットを使用して、3D 微分係数を計算します。この関数で生成されたそれぞれのオフセット位置で同じ 3D 関数を評価してから、結果値を Compute3DDeriv に渡します。 |
Compute3DDeriv |
四面体パターンの位置オフセットを使用して、3D 微分係数を計算します。Prepare3DDeriv と併用します。 |
GradFrom3DDeriv |
Prepare3DDeriv/Compute3DDeriv の結果から 3D グラディエント ベクターを計算します。 |
CurlFrom3DDeriv |
Prepare3DDeriv/Compute3DDeriv の結果から 3D ベクター フィールドのカールを計算します。 |
これらのヘルパー マテリアル関数は、四面体パターンに配置された式をベースにした 4 つの評価を用いて、微分係数ベースの演算を近似します。
以下は、Vector Noise マテリアル式で使用される各種ノイズ関数と説明です。
アイテム |
説明 |
||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
プロパティ |
|||||||||||||
Function |
|
||||||||||||
Quality |
外観、パフォーマンスを設定します。値が低いと処理は速くなりますが外観が悪くなります。値が高いと処理は遅くなりますが外観が良くなります。 |
||||||||||||
Tiling |
ノイズのタイル処理を可能にします。負荷が高くなりますが、ノイズをシームレスにラップするテクスチャにベイクする場合に便利です。 |
||||||||||||
Tile Size |
タイリング処理でのノイズ繰り返し数です。Perlin ノイズ変数の場合、Tile Size は 3 の乗数でなければなりません。 |
||||||||||||
入力値 |
|||||||||||||
Position |
3D ベクターを介してテクスチャ サイズを調整できます。 |
Cell Noise マテリアル サンプル:
クリックしてフルサイズで表示
Perlin Gradient マテリアル サンプル:
クリックしてフルサイズで表示
Voronoi マテリアル サンプル:
クリックしてフルサイズで表示