%Description%
Constant
Constant マテリアル式では単精度浮動小数点値を出力します。最も頻繁に使用される式の 1 つであり、入力で想定されるチャンネルの数にかかわらず、あらゆる入力に対応できます。
たとえば、3 チャンネルのベクターを想定する入力に Constant をつなげた場合、その定数値は 3 つの要素すべてで使用されます。数値が 1 つだけ提供された場合は、説明フィールドにある小さな三角形のアイコンを使ってノードを折りたたむと便利です。
プロパティ | 説明 |
---|---|
R | 式で出力する浮動小数値を指定します。 |
例: 0.7、-0.24、1.1
マテリアル エディタのマテリアル グラフ領域で 1 キーを押しながら マウスを左クリック すると、Constant 式をすばやく作成できます。
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 をすばやく作成できます。
Distance Cull Fade
DistanceCullFade 式では、黒色から白色へとフェードするスカラー値を出力し、オブジェクトがカリング距離内に入った際にそのオブジェクトをスムーズにフェードインさせることができます。このノードは、カリング距離外にあるスタティックメッシュが突然「ポッピング」して表示されたり、非表示になったりする問題の防止に主に使用されます。
この例では、CullDistanceVolume 内に球体が配置されており、カリング距離は 3000 ユニットです。この球体には右側のマテリアルが適用されています。
エディタ内でこのレベルをプレイすると、カメラがカリング距離の内側と外側を移動するにつれて、球体がスムーズにフェードイン/フェードアウトします。
ParticleColor
ParticleColor 表現式は、Cascade 内で定義されたパーティクルごとのカラーデータをもとに任意のパーティクルの現在のカラーに結合します。関数は適切なチャンネル (エミッシブカラー) に接続しなくてはいけません。
アイテム | 説明 |
---|---|
出力値 | |
RGB | 結合した RGB ベクター データを出力します。 |
R | 赤チャンネル データを出力します。 |
G | 緑チャンネル データを出力します。 |
B | 青チャンネル データを出力します。 |
A | アルファ チャンネル データを出力します。 |
この例では、パーティクル システム内でパーティクルが定義されると表示する色を供給する ParticleColor 表現式を紹介しています。
ParticleDirection
ParticleDirection 表現式はパーティクルごとに 3vector (RGB) データを出力します。これは任意のパーティクルが現在移動している方向を表します。
この画像で、それぞれのパーティクルが現在の移動方向に基づいてパーティクルの色を変化させているのがわかります。
ParticleMotionBlurFade
ParticleMotionBlurFade 式は、モーションブラーの結果としてパーティクル上でフェードする量を値で出力します。1 の値はブラーが無いことを表し、黒は完全なブラーを表します。
ParticleRadius
ParticleRadius 表現式は、各パーティクルの半径をアンリアル単位で個別に出力します。例えば、半径がある特定のポイントに到達すると、マテリアルに変化をもたらすことができます。
この画像は、半径が 7 単位を超えるとパーティクルが緑から赤へ変化する模様を表しています。
ParticleRelativeTime
ParticleRelativeTime 表現式は、パーティクルの寿命を表す 0 か 1の値を出力します。 0 はパーティクルの誕生を表し、 1 はパーティクルの消滅を表します。
この例では、パーティクルの相対時間がエミッシブカラーへ送られているのが分かります。結果として誕生時に色が黒から薄れていくパーティクルが、消滅に近づくにつれて白へ変化しています。
ParticleSize
Particle Size 表現式は、パーティクル スプライトの X と Y のサイズを出力します。これは、マテリアルの一部の操作に使用できます。
画像をクリックしてフルサイズで表示
上のサンプルでは、パーティクル サイズはパーティクル カラーへ乗算されます。出力をマスクしているので、 Y 軸あるいはパーティクルの長さに対応する緑チャネルのみ利用できることにご注意ください。つまり、パーティクルが伸びるにつれて、色が明るくなるということです。パーティクルが縮むと色は暗くなります。
ParticleSpeed
ParticleSpeed は、各パーティクルの現在の移動速度をアンリアル単位 / 秒で測定して出力します。
この例は、パーティクルの速度はパーティクルの色を送り込んでいます。その後より意味のある結果とするため 10 で除算を行っています。減速するとパーティクルは黒に変化します。
PerInstanceFadeAmount
PerInstanceFadeAmount 式では、フォリッジなどのインスタンス化されたスタティックメッシュに適用されているカリング距離に基づき、0 ~ 1 の浮動小数値を出力します。これは定数ですが、メッシュのインスタンスごとに異なる数値となる場合もあります。多くの場合、このノードは、フォリッジを徐々にフェードイン/フェードアウトさせるために使用されます。これにより、InstancedFoliageActor のカリング距離に到達した際に、フォリッジがシーンに突然現れたり消えたりすることがなくなります。
この岩のマテリアルは、Opacity 入力に接続された PerInstanceFadeAmount 式を含む Translucent (透過) ブレンド モードを使用しています。InstancedFoliageActor の カリング距離 は「1000」と「2500」に設定されています。
カメラがシーン内を移動するにつれて、距離に基づいて岩の各インスタンスがフェードアウトする様子に注目してください。これにより、フォリッジを非常に多く使用するレベルでのパフォーマンスが向上します。
これは、InstancedStaticMesh アクタ、または InstancedStaticMeshComponent を使用する他のアクタに適用されている場合のみに機能します。
PerInstanceRandom
PerInstanceRandom 式では、マテリアルを適用する先のスタティックメッシュのインスタンスごとに、異なるランダム浮動小数値を出力します。InstancedStaticMeshComponent ではインスタンスのランダム浮動小数値を設定します。これは公開されるため、窓から見えるランダムなライトのレベルなど、さまざまな目的で使用することができます。これは定数ですが、メッシュの各インスタンスで異なる値となります。
この出力値は、0 からターゲット プラットフォームの RAND_MAX 値との間の整数となります。このマテリアルでは、PerInstanceRandom 式を使ってインスタンスごとのランダムなエミッシブ値を提供します。
このマテリアルを球体に適用して、フォリッジ システムでインスタンス化すると、球体のインスタンスにはそれぞれ異なるエミッシブ値が含まれます。
これは、InstancedStaticMesh アクタ、または InstancedStaticMeshComponent を使用する他のアクタに適用されている場合のみに機能します。
Time
Time ノードは、マテリアルに時間の推移を加える際に使用します。このノードは、Panner や Cosine といった時間に依存する演算など、時間の経過とともに変化するマテリアル式とともに使用されます。
プロパティ | 説明 |
---|---|
Ignore Pause | True の場合、ゲームがポーズ中であっても時間の流れは継続します。 |
Period | True の場合は、これが時間をラップする量となります。これにより、Mobile マテリアルでは CPU 上で完全精度の Period 演算が実行されますが、GPU 上では半精度で実行されます。Period が 1 分を超える場合は問題が生じることがあります。 |
上の画像で示されているマテリアルのネットワークでは、白色と黒色との間の正弦波的なトランジションを常に表しながら、時間の経過に伴って変化するマテリアルが作成されます。Period が有効な場合にそれを「0」に設定すると、実質的にトランジションが停止し、「1」に設定すると、Period プロパティを false に設定した場合と同じになります。値を 0 に近づけるほど、マテリアルがより速いペースで変化します。このグラフの結果は次の動画で確認できます。
TwoSidedSign
TwoSidedSign 式は、両面を持つカスタム仕様のライティング マテリアルの背面にある法線を反転して、Phong シェーディング の機能と一致させる際に便利です。「+1」は両面マテリアルの前面を、「-1」は背面を表します。
このグラフでは、法線マップが TwoSidedSign 式によって乗算されています。
次の比較画像では、TwoSidedSign 式を持つマテリアルと、持たないマテリアルの両面を示しています。
- 上 - TwoSidedSign ノードは含まれておらず、背面の法線が反転されており、レンガが正しくレンダリングされていません。各レンガの左上ではなく、右下の隅が強調表示されています。
- 下 - 上記のグラフで示されているように法線マップが TwoSidedSign 式で乗算されており、背面の法線は正しく、レンガは前面で描かれているとおりにレンダリングされています。
VertexColor
VertexColor マテリアル式では、マテリアルが適用されるスタティックメッシュからの頂点カラー データを、そのマテリアルで活用できるようにします。
出力 | 説明 |
---|---|
RGB | 頂点カラーの 3 チャンネル RGB ベクター値を組み合わせて出力します。 |
R | メッシュの頂点カラーの赤色チャンネルを出力します。 |
G | メッシュの頂点カラーの緑色チャンネルを出力します。 |
B | メッシュの頂点カラーの青色チャンネルを出力します。 |
A | メッシュの頂点カラーのアルファ チャンネルを出力します。 |
VertexColor ノードは、メッシュ ペイント モードで 2 つ以上のテクスチャをブレンドするためのアルファ マスクとしてよく使用されます。
上の画像のネットワークでは、頂点カラーの赤色チャンネルを使って、2 つのテクスチャ サンプル間の線形補間を行います。メッシュ ペイント モード で赤色チャンネル上でペイントを行うと、小石のテクスチャが公開されます。
View Property
ViewProperty 式では、視野角やレンダー ターゲット サイズなど、ビューに依存する定数プロパティを出力します。アクセスする View プロパティは、ノードを選択してその [Details] パネルのドロップダウン メニューを使用することで設定可能です。
出力のデータ型は、[Details] パネルで選択したプロパティに応じて異なります。たとえば [View Size (ビュー サイズ)] を選択した場合、このノードはビューポートの幅と高さをピクセル単位で表す 2 チャンネルのベクター値を出力します。次の画像には、出力が DebugFloat2Values マテリアル関数を介してパスされる流れが示されています。ビューポートの幅と高さはプレビュー ビューポートに示されます。
Precomputed AO Mask
PrecomputedAOMask ノードは、マテリアル内で Lightmass が計算されたアンビエント オクルージョン (AO) へのアクセスを提供するノードです。プロシージャルなテクスチャリングや、時間の経過とともに徐々に古くなる領域に劣化エフェクトや汚れを追加する場合に便利です。
Precomputed AO Mask はベイクされたライティングのみで機能します。Precomputed AO Mask の結果を確認するには、Lightmass で対象レベルのライティングを事前にビルドしておく必要があります。
上記のスクリーンショットでは、汚れのレイヤーを背景の各隅に自動的にブレンドするために、AO マスクが使用されています。 AO マスクを使用するには、[World Settings (ワールド セッティング)] -> [Lightmass settings (Lightmass 設定)] に移動し、[Use Ambient Occlusion (AO を使用)] と [Generate Ambient Occlusion Material Mask (AO マテリアル マスクを生成)] の両方を有効にしてから、ライティングをビルドする必要があります。 [Max Occlusion Distance (最大オクルージョン距離)] などの他の AO 制御設定は、AO の外観の微調整に役立ちます。 また、[Direct Illumination Occlusion Fraction (ダイレクト イルミネーション オクルージョンの割合)] と [Indirect Illumination Occlusion Fraction (インダイレクト イルミネーション オクルージョンの割合)] の両方を「0」に設定し、この AO が実際のレベルのライティングに適用されないようにしてください。
PrecomputedAOMask マテリアル式ノードを使用することで、あらゆるマテリアルの AO にアクセスすることができます。 PrecomputedAOMask は「0 と 1 のマスク」として機能し、「1」は AO の影響を受ける領域を、「0」はそうでない領域を示します。
次の画像は、Precomputed AO Mask を使用するためのマテリアルの設定を示しています。