Language:
Page Info
Engine Version:

Math Hall のコンテンツ サンプル

コンテンツ サンプル プロジェクト内に存在する Math_Hall マップにより、ブループリントマテリアル 内のアンリアル エンジン 4 での数学の使い方についてさらに理解しやすくなりました。

最初のセクションは 関数 です。数学とマテリアル関数 (表の左側) と使用例 (表の右側) を説明します。マテリアルのブレンド方法に加えて、マテリアル エディタ 内で水面を波立たせたりボールを跳ね返らせたりするイベントを作成するためにロジックをマテリアルに適用する方法をしっかり学べるセクションです。

2 つ目のセクションは ベクター演算 です。各種ベクターの説明と、それらのマテリアル内での使い方、およびブループリントと関係した場合の重要性について説明します (オブジェクトをプレイヤーに向かい合わせる、プレイヤーが何か見ているかを確認する、あるいはオブジェクトからプレイヤーがどのくらい離れているかを知る、など)。

関数

MathHall_FunctionsHeader.png

関数 セクションで提供されているサンプルは以下の通りです。右側がサンプルの使用例です。

サンプル

内容

1.1 入門

各種数学関数に対して X 値を配置した表の読み取り方を説明するセクションです。

1.2 ABS

負の値を正の値として読み取る場合、 Absolute (ABS) 値の X を取得するサンプルです (例えば、 Time の Sine を受け取り ABS 値を取得することで、ボールに対して跳ね返る動きを作成します)。

1.3 Frac

Frac 関数を使用して擬似のランダム数生成に便利な数字の整数部分を取り除くサンプルです (例えば、Raw Time の値は 1 から増えて、Frac は Raw Time 値をインクリメントする 0 から 1 の時間を表現するために使います)。

1.4 Floor

Floor は小数部分を取り除いて整数のみが残るようにします (例えば 0.9 は 0 に、 1.9 は 1 になります)。

1.5 Ceil

Ceil も Floor と同じですが、切り捨てではなく切り上げます。Ceil の結果は常に Floor よりも 1 大きくなります (例えば、 0.1 は 1 に、 1.1 は 2 になります。 Mosaic を作成するサンプルも提供されています)。

1.6 FMod

FMod は Floating Modulus という意味で、 A 入力と B 入力の両方があります。A を B で割った余りを返します (マテリアル上でストライプ パターンを静止するためのサンプル)。

1.7 Power

Power は基本入力を受け取り、指数を適用します。負の値は ABS のように正の値となり、 1 の累乗は ABS と同じ結果となります (テクスチャのコントラストを調整するためのサンプル)。

1.8 Lerp

線形補間 (Lerp) はアルファ入力に合わせて、A 入力と B 入力の間のブレンドを返します。サンプルでは、アルファが 0 の時、A の 100% が返され、アルファが 1 の時、B の100% が返されます (Lerp を使って 2 つのテクスチャをブレンドするサンプル) 。

1.9 HeightLerp

HeightLerp はハイトマップを使ってブレンドを調整する Lerp です (草のテクスチャを敷石道のテクスチャにブレンドする際、テクスチャのハイトマップを使って、 2 つのテクスチャをブレンドするサンプル)。

1.10 Clamp

Clamp は、入力値を特定の Min および Max Range にクランプするために使います (例えば、セキュリティ カメラ上で最小 / 最大のビューアングルを指定するためにクランプを使います)。

1.11 Sine

Sine は角度の関数で、直角三角形の辺の間の比率を表します (Sine には様々な用途があります。例えば、ブループリント内で揺れる動きを作成したり、水中に「波」を起こすことです)。

1.12 Cosine

Cosine も Sine と同じ三角関数の 1 つです。直角三角形の辺の長さ間の比率を表します。Cosine は角に接する辺と斜辺間の比率です (提供されたサンプルで分かるとおり波を作る場合に Sine と Cosine は非常に似ています)。

1.13 OneMinus

OneMinus は、テクスチャやイメージなどの逆数値を取得するために使います (黒白のロゴを白黒のロゴに反転するサンプルです)。

1.14 Exponential Density

Exponential Density は、両端にスムーズなカーブをもつグラディエントを作成します (フォグに密度を作成するためによく付かされますが、他の用途もあります)。

1.15 Sphere Mask

Sphere Mask には Radius 入力と Hardness 入力の他にA 入力と B 入力もあり、A と B 間の距離を取得します (テクスチャ間のブレンドの硬化を実施するサンプル)。

1.16 Sphere Gradient - 2D

Sphere Gradient - 2D はマテリアル関数で、球状のフォールオフを返し、V2 入力座標、CenterPosition、スカラー半径値を受け取ります (面取りされた形状のマテリアルを作成するサンプル)。

基本的なベクター演算

MathHall_VectorMathHeader.png

基本的なベクター演算 セクションで提供されているサンプルは以下の通りです。

サンプル

内容

2.1 入門

マテリアルおよびブループリントにおける ベクター演算 の重要性の説明です。

2.2 ベクターについて

ベクター とは何か、またベクターのタイプの説明です。

2.3 1D ベクター

ロードマップの類推による 1D ベクター についての基本的な説明です。

2.4 2D ベクター

2D グラフを使った 2D ベクター の基本的な説明です。

2.5 距離

Pythagorean Theorum による 距離 の計算方法の説明です (注記:距離はマテリアルとブループリントにおいては自動的に計算されます)。

2.6 距離の実演

ブループリントとマテリアルにおける 距離 の計算の実演です。

2.7 3D ベクター

3D グリッドを使った 3D ベクター の基本的な説明です。

2.8 Normalized Vectors

ブループリントあるいはマテリアル内に存在する Normalize ノードのある Normalized Vectors の使用方法の説明です。

2.9 Vector as rotation

Vector 値を Rotation 値に変換します (プレイヤーの位置に向かって回転するキャラクターが紹介されています)。

2.10 WorldPosition

ワールド ポジションとは何か、およびデータの使用方法です (エディタ内でオブジェクトがドラッグで移動すると、ワールド位置も更新されます)。

2.11 World Aligned Texture

World Aligned Texture を使用して球の周りのテクスチャをブレンドします (岩のマテリアルの見た目をより自然に仕上げる際に便利です)。

2.12 CameraVector

CameraVector をベクター パスを示した図で表示します。

2.13 Camera Forward Vector

CameraForwardVector はフォワード ベクター パスを示した図で表示されます。

2.14 Dot Product

プレイヤーが特定のポイントを見ているか確認するために使用できる Dot Product のサンプルです。

2.15 Deriving Dot Product Algebraically

Dot Product (内積) の生成方法です (注記:アンリアル エンジン 4 では、内積は常にノードで生成されます)。

2.16 Dot Product のサンプル

CameraVector と Dot Product は、プレイヤーのオブジェクトまでの距離に合わせてマテリアルが色をブレンドするだけでなく、プレイヤーの動きもトラックします (注記:ブループリントなしでマテリアル内で全部行います)。

2.17 Dot Product のサンプル その 2

CameraForwardVector と Dot Product は、プレイヤーがオブジェクトの方を見ているか判断するために使用します (注記:ブループリントなしでマテリアル内で全部行います)。

2.18 Cross Product

ベクター値の読み取りによる外積の生成方法を示した図で Cross Product の使用方法。

2.19 CreateThirdOrthogonalVector

CreateThirdOrthogonalVector マテリアル関数について、および垂直なベクターのフルセット作成に便利であることの説明です。

2.20 Camera Facing math

CameraPosition - ObjectPosition を使って、プレイヤーの方に向くようにオブジェクトを回転させるエフェクトの作成方法の説明です (このサンプルでは、複数のオブジェクトの前に立つと、プレイヤーの右側あるいは左側にあるオブジェクトは内回りに回転しますが、プレイヤーの真正面にあるオブジェクトは回転しません)。

2.21 Camera Facing math 2

プレイヤーの方にオブジェクトが向くように回転させるエフェクトを作成するための Camera Left Vector と Camera Up Vector のサンプルです (このサンプルでは 2.20 とは異なり、全部一緒に回転するので外側のオブジェクトは内回りに回転しません)。

2.22 三角法のチップ

2 辺が分かれば X の角度が分かる直角三角形の作成に関連する Sine 、 Cosine 、 Tangent の説明です。