非プログラマに向けるLogiX記号辞書

LogiX
LogiXTIPS特集

LogiX/Operators/を見るとなんか記号がたくさんあるけどこれ何? という人向けの記事です。
LogiX/Operators/カテゴリの記号らは、プログラミングで使われる一般的な記号(おそらくC#の記法をそのまま持ち込んだもの)ですが、プログラミングに触れたことないけどLogiXを使いたい! という方にはわかりづらいものになってしまっています。

この記事では、Operatorsカテゴリの記号ノードを中心に、各ノードの一言説明を紹介していきます。
ちなみに、Operatorsは「演算子」という意味です。何かのはずみにググりたくなったら演算子とか入れて調べるとヒットしやすいと思います。

各ノードの詳細はneos公式wikiを参照してください。 https://wiki.neos.com/Category:LogiX:Operators/ja

四則演算/加減乗除 [+][-][×][÷][%]

いわゆる足し算引き算掛け算割り算です。

ノード意味
+足し算。加算。和。
引き算。減算。差。
×掛け算。乗算。積。
÷割り算。除算。商。
%割り算の余り。剰余。5 % 3 → 2

割り算については注意が必要です。整数を扱うint型やlong型などの場合は、割り切れなかったときに小数点以下が切り捨てられてしまいます。小数点以下まで扱いたい場合はfloat型やdouble型で計算しましょう。

また、頻繁に使う四則演算に関しては専用のノードが用意されています。

ノード意味
+/-加算と減算を同時に行う。上の出力が和、下の出力が差。3 +/- 2 → 5,1
+1入力の数値に+1する。
-1入力の数値に-1する。
-n入力の数値の正負を反転する。5 → -5
1-x入力の数値を1から引く。0~1の入力を1~0に変換するのに便利。0.3 → 0.7
1/x入力の逆数4 → 1/4(0.25)
x2入力の2乗。
x3入力の3乗。

比較 [==][!=][≈][<][>][≤][≥]

入力同士を比較できます。出力はbool(true/false)です。

ノード意味
==等価演算子。等号。同じときtrue
!=不等価演算子。不等号。異なるときtrue
ほぼ等しい。誤差は指定可能。3.1 ≈ 3.14 (誤差0.1) → true
<より小さい。小なり。同値はfalse
>より大きい。大なり。同値はfalse
以下。小なりイコール。同値はtrue
以上。大なりイコール。同値はtrue

論理演算/ブール演算/ビット演算 [!][&][|][^]

真理値(論理値 / 真偽値 / bool値 / boolean)同士の演算に使います。

ノード意味
!否定演算子。ブール反転!true → false
&AND演算子。論理積。かつ。
|OR演算子。論理和。または。
^XOR演算子。排他的論理和。いずれか一方のみがtrueのときにtrue
NANDNAND演算子。否定論理積。ANDの反対。falseが含まれていればtrue
NORNOR演算子。否定論理和。ORの反対。両方がfalseの場合にtrue
XNORXNOR演算子。否定排他的論理和。排他的論理和の反対。

これらの演算子はint型などの数値に使うとビット演算子として使用できます。ビット演算専用のノードもいくつか用意されています。

ノード意味
<<左シフト12(0000 1100) << 2 → 48(0011 0000)
>>右シフト12(0000 1100) >> 2 → 3(0000 0011)
ROL左循環シフト。左ビット・ローテーション
ROR右循環シフト。右ビット・ローテーション

条件演算子、三項演算子 [?:][0 1]

条件true/falseに応じて出力を変えるやつです。FlowのカテゴリにIfノードが存在しますが、あれはpulseの分岐をするノードなので、値の条件分岐をする場合はこちらを使います。

ノード意味
?:条件演算子。三項演算子。条件がtrue/falseに応じて出力を変える。[?:](3, -2, true) → 3
0 1入力のfalse/trueを0/1に変換する。出力はfloat。
Mask条件演算子の複合型(float2など)版です。

Null判定など [??]

入力値がNullかそうじゃないかなどに応じて使えるノード群です。

ノード意味
IsNull入力がNullのときtrue。
NotNull入力がNullじゃないときtrue。IsNullの反対。
??Null合体演算子。入力のうち、最初にNullじゃなかった値を出力。[??](null, SlotA, SlotB) → SlotA
IsNaN入力がNaN(Not a Number: 不正な数値)のときにtrue。
IsInfinity入力がInfinity(無限大)のときにtrue。-Infinityのときもtrue。
Filter Invalid入力が特殊な数値(NaNやInfinity)の場合に、代わりにFallback入力を出力する。[Filter Invalid](NaN, 0) → 0

ベクトル計算 [|V|][|V|2][·][°]

float3型などのベクトルの計算関連のノード群です。wikiを読むと複合データ型とか言うそうです。
PositionやScaleなどはfloat3型、画像のSizeなどはfloat2型です。

ノード意味
Pack xy/xyz/xyzw入力のデータ型から複合データ型に構築する
Unpack xy/xyz/xyzw入力の複合データ型から単独のデータ型に分解する
|V|ベクトルの大きさ。原点からの距離。
|V|2ベクトルの大きさの2乗
Normalized入力ベクトルを正規化する。入力ベクトルをその大きさで割ったもの。
正規化されたベクトルの大きさは1になる。
Distance2地点間の距離。
·ベクトルの内積。ドット積。
°2ベクトル間の角度
Crossベクトルの外積。クロス積。
Project入力ベクトルをもう一方のベクトルに平行投影します。
Reflect入力ベクトルをもう一方のベクトルを軸に鏡映して出力します。

時間経過 [×dT][÷dT]

直前のフレームの秒数を掛けたり割ったりできます。dTは微分とか積分とかの記法です。

ノード意味
×dT入力に直前のフレームの更新時間(秒)を掛ける。
÷dT入力を直前のフレーム更新時間(秒)で割る。瞬間速度を求めたりできる。

行列計算 [A^-1]

行列を扱うノード群です。

ノード意味
Pack Rows/Columns複数の行ベクトル/列ベクトルから行列を構成する。
Unpack Rows/Columns行列を行ベクトル/列ベクトルに分解する。
Matrix Element行列の行と列の座標の要素を取り出す。
Determinant行列式。
A^-1逆行列。
Transpose転置行列。
     
タイトルとURLをコピーしました