Operation(判定と制御)

AIと読む
全ドキュメントを1ファイルで(llms-full.txt)

値を判定して流れを分けたり、数え上げたり、選んだりするノードです。全11種。 Math が「値を変える」のに対して、Operation は「どちらへ流すか」を決めます。

論理演算(4種)

すべて float を受け、1 か 0 を返します

ノード結果が 1 になる条件
AndA と B が両方とも 1.0 以上
OrA と B のどちらかが 1.0 以上
XorA と B の片方だけが 1.0 以上
NotA が 1.0 未満

真偽の境界は 0 ではなく 1.0 です。 A >= 1.0f で判定しているため、0.5 は「偽」になります。 0〜1 の連続値(SliderLFO の出力)をそのまま挿すと、1.0 に到達した瞬間しか真になりません。 手前に MathCeilRound を挟むか、IFFilter でしきい値を明示してください。

Not の B ポートも使われません。 二項演算の基底クラスを継承しているため生えているだけで、 実装は A しか見ていません(Math の Abs と同じ事情です)。

判定と分岐

IFFilter

A と B を比べて、結果によって出力先を切り替えます。 比較の種類はノード上のドロップダウンで選びます: > < == != >= <=

ポート中身
True Output / False Output判定結果に応じて、どちらも A の値が出ます
True Trigger / False Trigger同じタイミングでトリガーが出ます

出るのは常に A です。B は比較にしか使われません。 「条件を満たしたら B を流す」という動きにはならないので、値そのものを切り替えたいときは Switch を使ってください。 == / != は浮動小数の比較なので Mathf.Approximately(近似一致)で判定しています。

判定は A・B の変化、Trigger、条件の変更のいずれでも走ります。

Switch

Index で A / B / C / D の4入力から1つを選び、Selected へ流します。

Index は Mathf.Clamp(Mathf.FloorToInt(Index), 0, 3) で処理されるため、 小数は切り捨て、範囲外は端に丸められます(-5 なら A、99 なら D)。 Counter の出力をそのまま挿しても事故になりません。

数え上げとタイミング

Counter

Count Trigger が来るたびに数え、Count Output へ整数を出します。 Reset TriggerMin Value に戻ります(0 ではありません)。

Max が Min より小さいと減っていきます。 カウントの向きは Max と Min の大小関係で決まります。

Loop が OFF のとき、値は止まりません。 範囲外に出たときの処理はループ時にしか実装されていないため、Loop OFF では Max を超えて増え続けます。上限で止めたい場合は、後ろに Math の Min / Max を置いて挟んでください。

Init Trigger

プロジェクトのロード/ノード生成から Delay 秒後に1回だけ発火します。 初期値の流し込みや状態のリセットの入口として使います。 Delay はロード直後の数フレームのゴタつきを避けるためのもので、負の値は 0 に丸められます。

Random

Trigger が来たときに、A 〜 B の範囲から乱数を1つ出します。

A や B を動かしても振り直されます。 二項演算の基底クラスを継承しているため、入力が変化した時点でも出力が更新されます。 Trigger のタイミングだけで振りたい場合は、A / B は動かさない値にしておいてください。

文字列とメディア

Combine

2つの文字列を Separator で繋ぎ、末尾に Suffix を足して出します。 B が空のときは Separator も付きません(A と Suffix だけになります)。 ファイルパスの組み立てに使えます。

MediaBrowserIndex

ドロップダウンで選んだ MediaBrowser のフォルダに対し、Index 番目の ファイルパスと、そのフォルダのアイテム数を出します。 Counter と組み合わせると、拍ごとに素材を切り替える流れが作れます。

関連

このページへのリンク

同じページを参照しているページ