まず何に使う?
- 0〜1 の範囲に収めたい時
- 位置や強さが暴れすぎるのを防ぎたい時
- 下限や上限を超えない安全な値にしたい時
概要
数値を指定範囲に「収める」安全装置ノードです。範囲外の値は端の値に貼り付きます。 波形や計算の結果が暴れても下流を壊さないよう、パラメータ入力の直前に挟むのが 典型的な使い方です。
使い方のポイント
remapとの使い分け: remap は範囲を「変換」(比率を保って移す)、clamp は 「切り捨て」(範囲外だけ潰す)。範囲内の値をそのまま通したいなら clamp- 透明度・割合系(0〜1)の入力前に
Normalizedプリセットで挟むのが定番 - 「はみ出た部分が平らになる」性質を逆手に取ると、波形の頭打ち (台形波っぽい形)も作れる
関連ノード
remap— 範囲の変換(圧縮・拡大)をしたい場合math_op—Min/Maxは片側だけの制限に使えるexpression_float— 式の中でclamp()も書ける
範囲プリセット
Normalized0..1に制限したい時の定番です
SignedNormalized-1..1のような正負ありの強さに向いています
Percent0..100の割合値に向いています
Count1..16の個数や段数に向いています
PixelOffset-32..32のピクセル移動量に向いています
LargeOffset-256..256の大きめの移動量に向いています
Custommin/maxで制限範囲を決めたい時に使います
注意
min > maxの時は、内部で自動的に並び替えて処理します。- 出力ポートは
Numberですが、実行時の返り値は現在Floatです。 Custom以外では、range_preset自体が実際の制限範囲を決めます。保存データや PPL 内のmin/maxが古くても、選択したプリセットの範囲で評価されます。min/maxを実際の制限値として使うのはCustomの時だけです。- 細かく調整したい時は
Customに切り替えてsoft_min/soft_max/soft_stepを使います。
使用例
range_preset = Normalized0.0〜1.0をすぐ作れます- 透明度や割合の値を制限する時に便利です
Noise Waveの出力を0.0〜1.0に収める- 負の値や 1 を超える値をそのまま次段へ流したくない時に便利です
Math Op(Add)の結果をClamp- 足し合わせで大きくなりすぎた値を抑えられます
Opacityの前段で0〜1に制限する- 透明度入力を安全な範囲に保てます
range_preset = PixelOffset-32..32の位置補正用クランプをすぐ作れます
RevealやTrimの割合入力を0〜1に固定する- アニメーション中の破綻を防ぎやすくなります