Math Expression ノードを作成するには、グラフを 右クリック して、コンテキスト メニューで [Add Math Expression... (数学式を追加...)] を選択します。

Math Expression ノードは折りたたまれたグラフのように動きます。ダブルクリック して、機能を構成しているサブグラフを開く単一のノードです。 名前 / 表現式は最初はブランクです。ノード名を変更すると、新規の表現式がパースされ、新規のサブグラフが生成されます。
ノード名の変更およびサブグラフの更新を行うには、ノード上で 右クリック し [Rename (名前変更)] を選択します。
例えば、以下の表現式で Math Expression ノード名を変更できます。
(1+x)*sin(myVar)-2.4/rand()
この表現式は、Math Expression ノードにの 2 つの浮動小数入力値 X と MyVar と、浮動小数出力値が 1 つできるように更新します。

この表現式でノードを ダブルクリック すると、以下のサブグラフができます。

サブグラフは以下のルールに従って作成されます。
- アルファベット名 (文字で始まるトークン) は、変数、 Math Ecpression ノード上での入力ピン、または関数コールのいずれかに変わります。上記の例でいうと、x、sin、myVar、rand です。
- アルファベット名がブループリント内に既存する変数と一致する場合、変数取得ノードとなります (ブループリントに既に myVar 変数がある、など)。
- sin( や rand( のようにアルファベット名の次に開き括弧がくると、それは関数ノードに変わります。
- 1 も 2 もステートが当てはまらないと、アルファベット名は Math Expression ノード上の浮動小数点入力になります。
- その名前がノードに存在するピンの名前と一致すれば、入力としても使用することができます。
- 数値の定数は常にピン入力になります。それら自体は決してノードを作成することはありませんが、他のノード上の入力フィールドを埋めるために使用されます。
- 数学演算子 (+ 、 * 、 - などの) は関数ノードになります。
- 数学と同様、括弧内の表現式が優先され、一番最初に評価されます。
変数
変数名はかなり自由につけることができますが、以下の点を覚えておいてください。
- 変数に数字を入れることは可能ですが、数字から始めることはできません。
- 変数は、非表示のブループリント変数と同じ名前にすることはできません。
- 使っている変数が正しい種類であることを確認してください。例えば、boolVar+1.5 は有効な変数ではありません。
操作の順序
操作は以下の順序で行います (優先度の高いものから)。
- 括弧
- 階乗
- 指数
- 乗算と除算
- 加算と減算
利用可能なブループリント関数
コード化された関数ライブラリにあるブループリント純粋関数は、すべて利用できます。以下になります。
- Trig functions (sin/cos/tan, asin, acos など):
sin(x)
- Clamping functions (min, max, clamp など):
clamp(y,0,20)
- Rounding functions (floor, fceil, round など):
round(z)
- Exponential functions (square, power, sqrt, loge, e/exp など)
一般的に使われる名前を複数もつ関数もあります。そのために、同じ関数 / ノードにマップするエイリアスがいくつかあります。以下が例になります。
- Power aliases: power, pow
- Trig arc functions (asin/arcsin, acos/arccos など)
ピンを接続するのではなく関数に入力しているので、正しい数字とパラメータの種類を入力するのにしてください。一致しない場合、 Math Expression ノードはエラーを表示します。
基本的な構造体の種類
Vector、transform の他にも、計算で頻繁に使用する基本的な構造体があります。表現式を使って、これらの種類を簡単に作成操作することができます。
- vector キーワードで MakeVector ノードをスポーンします。
vector(x,y,z)
- rotater キーワードで MakeRotator ノードをスポーンします。
rotator(x,y,z)
- transform キーワードで MakeTransform ノードをスポーンします。
transform(vec(x,y,z), rot(p,y,r), vec(6,5,4))
ある関数に対してエイリアスがあるように、vector と rotator エイリアスがあります。
- Vector エイリアス
vector, vec, vect
- Rotator エイリアス
rotator, rot
サポートされている演算子
以下の演算子は、すべてサポートされています。ロジカル演算子、比較演算子を組み合わせて複雑な表現式を作成することもできます。
- 乗法:
*, /, %
- 加法:
+, -
- 有理:
<, >, <=, >=
- 等式:
==, !=
- ロジカル:
||, &&, ^
サポートされていない演算子
現在のところ、以下の演算子はサポートされていません。
- 条件式:
?:
- Bitwise:
|, &, <<, >>
- 単項の接頭辞:
+, -, ++, --, ~, ! など
- 接尾辞:
++, --, [] など