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

この記事では、Operatorsカテゴリの記号ノードを中心に、各ノードの一言説明を紹介していきます。
ちなみに、Operatorsは「演算子」という意味です。何かのはずみにググりたくなったら演算子とか入れて調べるとヒットしやすいと思います。
各ノードの詳細はneos公式wikiを参照してください。 https://wiki.neos.com/Category:LogiX:Operators/ja
四則演算/加減乗除 [+][-][×][÷][%]
いわゆる足し算引き算掛け算割り算です。
割り算については注意が必要です。整数を扱うint
型やlong
型などの場合は、割り切れなかったときに小数点以下が切り捨てられてしまいます。小数点以下まで扱いたい場合はfloat
型やdouble
型で計算しましょう。

また、頻繁に使う四則演算に関しては専用のノードが用意されています。
論理演算/ブール演算/ビット演算 [!][&][|][^]
真理値(論理値 / 真偽値 / bool値 / boolean)同士の演算に使います。
ノード | 意味 | 例 |
! | 否定演算子。ブール反転 | !true → false |
& | AND演算子。論理積。かつ。 | |
| | OR演算子。論理和。または。 | |
^ | XOR演算子。排他的論理和。いずれか一方のみがtrueのときにtrue | |
NAND | NAND演算子。否定論理積。ANDの反対。falseが含まれていればtrue | |
NOR | NOR演算子。否定論理和。ORの反対。両方がfalseの場合にtrue | |
XNOR | XNOR演算子。否定排他的論理和。排他的論理和の反対。 |
これらの演算子は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になる。 | |
Distance | 2地点間の距離。 | |
· | ベクトルの内積。ドット積。 | |
° | 2ベクトル間の角度 | |
Cross | ベクトルの外積。クロス積。 | |
Project | 入力ベクトルをもう一方のベクトルに平行投影します。 | |
Reflect | 入力ベクトルをもう一方のベクトルを軸に鏡映して出力します。 |
時間経過 [×dT][÷dT]
直前のフレームの秒数を掛けたり割ったりできます。dTは微分とか積分とかの記法です。
行列計算 [A^-1]
行列を扱うノード群です。
ノード | 意味 | 例 |
Pack Rows/Columns | 複数の行ベクトル/列ベクトルから行列を構成する。 | |
Unpack Rows/Columns | 行列を行ベクトル/列ベクトルに分解する。 | |
Matrix Element | 行列の行と列の座標の要素を取り出す。 | |
Determinant | 行列式。 | |
A^-1 | 逆行列。 | |
Transpose | 転置行列。 |