このページでは、RGBA にマップされたベクター値を出力するために使用可能な Vector 表現式を紹介します。これらは、キャラクターが指定エリアに入った時にマテリアルがキャラクターの色に反応したり色を変形するためのワールド空間でのオブジェクトの位置の取得など、マテリアルの作成のための様々なエフェクトに使うことができます。空間のローカル スタイル マテリアル エフェクトを制御する表現式は他にもあります。
ActorPositionWS
ActorPositionWS は、マテリアルが設定されたオブジェクトのワールド空間の位置を表す 3vector (RGB) データを出力します。

この例では、ActorPositionWS がマテリアルの基本カラーへ直接渡されています。その結果、マテリアルが適用されたオブジェクトは、3D 空間の異なる場所に移動すると、それぞれ異なる色を示すようになります。ActorPositionWS ノードの結果が 1600 で割られることで、突然のポップではなく、美しいブレンド イン カラーを作り出していることに注目してください。
CameraPositionWS
CameraWorldPosition 表現式は、ワールド空間のカメラ位置を表す 3 つのチャンネルのベクター値を出力します。
この例では、カメラ位置がマテリアルの基本カラーへ渡されています。カメラの位置が変わると、プレビュー の球の色が変わることに注意してください。
CameraVectorWS
CameraVector 表現式は、サーフェスに対するカメラ方向、つまり、ピクセルからカメラへの方向を表す 3 つのチャンネルのベクター値を出力します。
使用例: CameraVector は多くの場合、CameraVector を ComponentMask に接続して疑似的な環境マップに使用し、テクスチャ座標として CameraVector のX チャンネルと Y チャンネルを使用します。

Constant2Vector
Constant2Vector 式では 2 チャンネルのベクター値、つまり 2 つの定数を出力します。
プロパティ | 説明 |
---|---|
R | 式で出力するベクターの赤色の (最初の) チャンネルの浮動小数値を指定します。 |
G | 式で出力するベクターの緑色の (2 番目の) チャンネルの浮動小数値を指定します。 |
例: (0.4, 0.6)、(1.05, -0.3)
使用例: UV 座標には 2 チャンネルの値が必要であるため、Constant2Vector はテクスチャ スケールやオフセットの修正に役立ちます。

マテリアル グラフ内で 2 キーを押しながら マウスを左クリック すると、Constant2Vector ノードをすばやく作成できます。
Constant3Vector
Constant3Vector 式では 3 チャンネルのベクター値、つまり 3 つの定数を出力します。Constant3Vector は、それぞれのチャンネルに色 (赤色、緑色、青色) が割り当てられたソリッドな RGB カラーの定義によく使用されます。マテリアル グラフ内で Constant3Vector ノードをダブルクリックすると、色を設定するダイアログが表示されます。
プロパティ | 説明 |
---|---|
R | 式で出力するベクターの赤色の (最初の) チャンネルの浮動小数値を指定します。 |
G | 式で出力するベクターの緑色の (2 番目の) チャンネルの浮動小数値を指定します。 |
B | 式で出力するベクターの青色の (3 番目の) チャンネルの浮動小数値を指定します。 |
例: (0.4, 0.6, 0.0)、(1.05, -0.3, 0.3)
この例では、Constant3Vector を Texture Sample で乗算することでテクスチャの色合いを変更します。

マテリアル グラフ内で 3 キーを押しながら マウスを左クリック すると、Constant3Vector ノードをすばやく作成できます。
Constant4Vector
Constant4Vector 式では 4 チャンネルのベクター値、つまり 4 つの定数を出力します。Constant4Vector 式は、それぞれのチャンネルに色 (赤色、緑色、青色、アルファ) が割り当てられた RGBA カラーの定義に使用できます。
プロパティ | 説明 |
---|---|
R | 式で出力するベクターの赤色の (最初の) チャンネルの浮動小数値を指定します。 |
G | 式で出力するベクターの緑色の (2 番目の) チャンネルの浮動小数値を指定します。 |
B | 式で出力するベクターの青色の (3 番目の) チャンネルの浮動小数値を指定します。 |
A | 式で出力するベクターのアルファ (4 番目の) チャンネルの浮動小数値を指定します。 |
例: (0.4, 0.6, 0.0, 1.0)、(1.05, -0.3, 0.3, 0.5)
次の例では、Constant4Vector 式を使ってマテリアルの Base Color と Opacity が定義されています。上のピンは RGB カラーを出力し、下のピンではアルファ チャンネルの値を出力します。アルファ値を「0.5」に設定すると、マテリアルが半透明になります。

マテリアル グラフ内で 4 キーを押しながら マウスを左クリック すると、Constant4Vector をすばやく作成できます。
LightVector
Deferred Decal マテリアルおよびデカール アクタと共に使用すると、Light Vector マテリアル式は、デカールの座標空間のデカール プロジェクション ボックスに相対する現在のピクセルの正規化された (0 から 1 の範囲の) 位置を表すベクトル (RGB) データを出力します。
LightFunction マテリアルと共に使用する場合、LightVector マテリアル式は、ライトの座標空間で、ライトからピクセルへのベクトルを表すベクトル (RGB) データを出力します。
他のマテリアル ドメインでは LightVector 式は使用されません。
LightVector マテリアル式は、Deferred Decal または LightFunction マテリアル ドメインでのみ使用する必要があります。
例
LightVector マテリアル式を使用して、ディファード デカールの線形減衰効果を作成することができます。下のグラフには、デカールと受信サーフェス間のブレンドの深度とフォールオフを制御する 2 つのパラメータがあります。
結果は以下のとおりです。
Object Bounds
Object Bounds 式は、マテリアルが適用されたオブジェクトの大きさを各軸ごとに出力します。この式は、X、Y および Z 軸を表す float3 を出力します。このノードが Base Color へ接続されると、軸はそれぞれ R、G、B に対応します。

以下の動画で、オブジェクトが各軸上でスケールされるとマテリアルがどのように変化するのか注目してください。
ObjectOrientation
Object Bounds 表現式は、オブジェクトのワールド空間の Up ベクターを出力します。言い換えると、オブジェクトのローカルの正の z 軸はこの方向を向いています。

ObjectPositionWS
ObjectPositionWS 表現式は、オブジェクト範囲のワールド空間の中心位置を出力します。下の画像の球体は、空間内の異なる位置に移動すると、それぞれ異なる色で表示されます。RGB のカラー チャンネルは、レベル内の X 軸、Y 軸、Z 軸に対応しています。このノードは、フォリッジの球状のライティングを作成するときに便利です。

ParticlePositionWS
ParticlePositionWS 表現式は、ワールド空間における各パーティクルの位置を表す Vector3 (RGB) データを出力します。

この画像では、 ParticlePositionWS はデータを可視化するためにエミッシブカラーへ送り込まれています。パーティクル システムの機能は、位置に基づいた色の変化方法を表示するようになりました。
PixelNormalWS
PixelNormalWS 表現式は、現法線に基づきピクセルが向いている方向を表すベクターデータを出力します。

この例では、PixelNormalWS は Base Color へ入力されています。ピクセルごとに結果を表示する法線マップの使用方法に注目してください。
Pre-Skinned Local Normal
Pre-Skinned Local Normals ベクター表現式は、スケルタルおよびスタティックメッシュのローカル サーフェス法線を表現する 3 つのチャンネル ベクター値を出力します。これにより、ローカルにアライメントされた 3 平面マテリアルや、マテリアルのメッシュ アライメント効果を実現することができます。
この例では、下のマテリアルは、メッシュの局所的な表面法線に整列した 3 平面テクスチャを使用しています。
クリックして画像を拡大
![]() |
![]() Pre-Skinned Local PositionPre-Skinned Local Position ベクター表現式は、頂点ごとの出力に使用するスケルタルメッシュのデフォルト ポーズ位置データにアクセスできるように、 3 チャンネル ベクター値を出力します。これにより、アニメートしたキャラクター上での局所的なエフェクトが可能になります。スタティックメッシュと使用することも可能で、 標準ローカル位置を返します。 クリックして画像を拡大 この例では、スケルタルメッシュのデフォルト ポーズが、マッピングおよびデフォルト UV マッピング (右) に使用されています。
Vector Noise![]() Vector Noise マテリアル表現式は、マテリアル内で使用する 3D あるいは 4D ベクター ノイズ結果をさらに追加します。これらの関数はランタイムに負荷がかかるため、レンダー ターゲット機能を使って計算のすべてまたは一部をテクスチャにベイクすることをお勧めします。 これらの Material Graph 表現式は、外部ツールでプロシージャルに生成されたテクスチャを作成する代わりに、エンジン内の最終アセットでプロシージャルの外観を開発することを可能にします。以下は、Vector Noise マテリアル表現式に含まれる Vector Noise タイプです。
以下は、Vector Noise / Voronoi の距離コンポーネントを使って、サーフェスのバンプやクラックの苔のブレンドを調整したシンプルな地面の石のマテリアルです。シードの位置と Vector Noise / Cellnoise を合わせて石毎に色やバンプの高さを変えています。 ![]() Perlin Curl と Perlin Gradient は微分係数ベースの演算なので、オクターブでまとめて追加することができます。より複雑な式の微分係数については、表現式の結果の勾配を計算する必要があります。これを行うには、計算する表現式をマテリアル関数に配置し、以下のヘルパー ノードと併用します。
これらのヘルパー マテリアル関数は、四面体パターンに配置された式をベースにした 4 つの評価を用いて、微分係数ベースの演算を近似します。 以下は、Vector Noise マテリアル式で使用される各種ノイズ関数と説明です。
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Tri-Planar Pre-Skinned Local Normal ベクトル式 | Tri-Planar Material |
Pre-Skinned Local Position
Pre-Skinned Local Position ベクター表現式は、頂点ごとの出力に使用するスケルタルメッシュのデフォルト ポーズ位置データにアクセスできるように、 3 チャンネル ベクター値を出力します。これにより、アニメートしたキャラクター上での局所的なエフェクトが可能になります。スタティックメッシュと使用することも可能で、 標準ローカル位置を返します。
クリックして画像を拡大
この例では、スケルタルメッシュのデフォルト ポーズが、マッピングおよびデフォルト UV マッピング (右) に使用されています。
![]() |
![]() ReflectionVectorWSReflectionVectorWS 表現式は CameraVectorWS と類似した性質をもっていますが、サーフェス法線上に反射するカメラ方向を表す 3 つのチャンネルのベクター値を出力します。 使用例: ReflectionVector は、反射ベクターの X、Y コンポーネントがキューブマップ テクスチャへの UV として使用される環境マップで一般的に使用されます。これにより、物理的な環境と一致しない任意の反射をマテリアル上に作成することができます。また、反射ベクターを使用して、Surface TranslucencyVolume または Surface ForwardShading が有効になっていない半透明なマテリアル上に低負荷の偽の反射を作成することも可能です。 ![]() VertexNormalWS表現式はワールド空間の頂点法線を出力します。WorldPositionOffset など頂点シェーダーで実行するマテリアル入力としてのみ使用することができます。メッシュを拡大または収縮させるのに便利です。法線に沿ってオフセットすると UV のシームに沿ってジオメトリが割れる原因になることに注意してください。 上の例では、各頂点が各法線方向に移動しているため、プレビューの球体が正弦波の動きで拡大、縮小しているように見えます。 Vector Noise![]() Vector Noise マテリアル表現式は、マテリアル内で使用する 3D あるいは 4D ベクター ノイズ結果をさらに追加します。これらの関数はランタイムに負荷がかかるため、レンダー ターゲット機能を使って計算のすべてまたは一部をテクスチャにベイクすることをお勧めします。 これらの Material Graph 表現式は、外部ツールでプロシージャルに生成されたテクスチャを作成する代わりに、エンジン内の最終アセットでプロシージャルの外観を開発することを可能にします。以下は、Vector Noise マテリアル表現式に含まれる Vector Noise タイプです。
以下は、Vector Noise / Voronoi の距離コンポーネントを使って、サーフェスのバンプやクラックの苔のブレンドを調整したシンプルな地面の石のマテリアルです。シードの位置と Vector Noise / Cellnoise を合わせて石毎に色やバンプの高さを変えています。 ![]() Perlin Curl と Perlin Gradient は微分係数ベースの演算なので、オクターブでまとめて追加することができます。より複雑な式の微分係数については、表現式の結果の勾配を計算する必要があります。これを行うには、計算する表現式をマテリアル関数に配置し、以下のヘルパー ノードと併用します。
これらのヘルパー マテリアル関数は、四面体パターンに配置された式をベースにした 4 つの評価を用いて、微分係数ベースの演算を近似します。 以下は、Vector Noise マテリアル式で使用される各種ノイズ関数と説明です。
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Pre-Skinned Local Position ベクトル式 | スケルタルメッシュのデフォルトの UV レイアウト |
ReflectionVectorWS
ReflectionVectorWS 表現式は CameraVectorWS と類似した性質をもっていますが、サーフェス法線上に反射するカメラ方向を表す 3 つのチャンネルのベクター値を出力します。
使用例: ReflectionVector は、反射ベクターの X、Y コンポーネントがキューブマップ テクスチャへの UV として使用される環境マップで一般的に使用されます。これにより、物理的な環境と一致しない任意の反射をマテリアル上に作成することができます。また、反射ベクターを使用して、Surface TranslucencyVolume または Surface ForwardShading が有効になっていない半透明なマテリアル上に低負荷の偽の反射を作成することも可能です。

VertexNormalWS
表現式はワールド空間の頂点法線を出力します。WorldPositionOffset など頂点シェーダーで実行するマテリアル入力としてのみ使用することができます。メッシュを拡大または収縮させるのに便利です。法線に沿ってオフセットすると UV のシームに沿ってジオメトリが割れる原因になることに注意してください。
上の例では、各頂点が各法線方向に移動しているため、プレビューの球体が正弦波の動きで拡大、縮小しているように見えます。
Vector Noise

Vector Noise マテリアル表現式は、マテリアル内で使用する 3D あるいは 4D ベクター ノイズ結果をさらに追加します。これらの関数はランタイムに負荷がかかるため、レンダー ターゲット機能を使って計算のすべてまたは一部をテクスチャにベイクすることをお勧めします。
これらの Material Graph 表現式は、外部ツールでプロシージャルに生成されたテクスチャを作成する代わりに、エンジン内の最終アセットでプロシージャルの外観を開発することを可能にします。以下は、Vector Noise マテリアル表現式に含まれる Vector Noise タイプです。
画像 | アイテム | 説明 |
---|---|---|
![]() |
Cellnoise | 3D グリッドの各セルに対してランダムな色を戻します (すなわち、ノード入力に適用される数学的フロア演算から)。結果は常に任意の位置に対して一貫性があるため、高い信頼性でマテリアルにランダム性を加えることができます。この Vector Noise 関数の演算の負荷は非常に低いものです。そのため、パフォーマンス上の理由でテクスチャにベイクする必要はありません。 |
![]() |
Perlin 3D Noise | 3D グリッドの各セルに対してランダムな色を戻します (すなわち、ノード入力に適用される数学的フロア演算から)。結果は常に任意の位置に対して一貫性があるため、高い信頼性でマテリアルにランダム性を加えることができます。この Vector Noise 関数の演算の負荷は非常に低いものです。そのため、パフォーマンス上の理由でテクスチャにベイクする必要はありません。 |
![]() |
Perlin Gradient | スカラー Perlin Simplex Noise の解析的 3D 勾配を計算します。出力は 4 チャンネルです。この場合、最初から 3 つめ (RGB) までは勾配であり、4 つめが (A) スカラー ノイズになります。サーフェス上のバンプとフローマップに適しているノイズ タイプです。 |
![]() |
Perlin Curl | ベクター 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 マテリアル サンプル:
クリックしてフルサイズで表示。