ノード一覧に戻る

FX境界応答

fx_boundary_response

固定マスクに粒子を反応させます。屋根を流れる雨、床で跳ねる火の粉、壁で止まる煙を、既存の決定論FXレーン内で作れます。

確認済み
解説あり

入力ポート

名前説明
FX
fx
FxState2D
必須
境界を追加するFXです
境界マスク
mask
Image
必須
既定では不透明な画素が障害物です。接触位置を合わせるにはFXキャンバスと同じ大きさのマスクを使います

出力ポート

名前説明
FX
fx
FxState2D
境界規則を追加したFXです
確認用マスク
debug_mask
Image
FXへ保存した実際のマスクです。大きさや位置ずれの確認に使います
境界数
boundary_count
Int
このFXに入っている固定マスク境界の数です
概要
summary
Text
境界追加後のFX概要です

パラメータ

名前既定値範囲説明・選択肢
当たった時
response
Enum
Reflect

粒子がマスクへ入った時の動きです。火の粉は「跳ね返る」、屋根の雨は「表面を滑る」、着弾粒子は「消える」が目安です

  • 跳ね返るReflect
  • 表面を滑るSlide
  • その場で止まるStop
  • 消えるKill
跳ね返り
restitution
Float
0.650–1 / step 0.01

跳ね返った後に残す垂直方向の速さです。0.2前後は重く、火の粉は0.6〜0.8、1.0はほぼ減速しません

表面摩擦
friction
Float
0.150–1 / step 0.01

境界に沿う速さを弱めます。濡れた屋根は0〜0.2、すぐ落ち着かせるなら0.6以上が目安です

マスクしきい値
threshold
Float
0.50–1 / step 0.01

障害物として扱い始める不透明度です。通常は0.5、ぼかしや半透明の縁を無視したい時は上げます

マスク内に閉じ込める
invert
Bool
false

透明側を障害物として扱い、粒子を不透明な形の内側に閉じ込めます。容器・洞窟・通路内のFXに使います

概要

FxState2Dへ固定画像の障害物を追加するノードです。流体や物理エンジンを増やさず、屋根を伝う雨、地面で跳ねる火の粉、壁で止まる煙などを、同じseedなら同じ結果になる軽量FXとして作れます。

使い方のポイント

  • 定型は fx_domain_2d → fx_emitter_2d → fx_force → fx_boundary_response → fx_rasterize です。境界はフォースの後ろへつなぎます。
  • マスクはFXキャンバスと同じ幅・高さにすると位置が読みやすくなります。debug_mask をPreviewへつなぐと、実際に判定へ使う画像を確認できます。
  • 火の粉は「跳ね返る」、跳ね返り0.6〜0.8、表面摩擦0.1〜0.3から始めます。雨は「表面を滑る」、摩擦0〜0.2が目安です。
  • 容器や洞窟の内側に閉じ込めたい時は「マスク内に閉じ込める」を有効にします。
  • 複数の障害物を別の応答にしたい時は、このノードを直列につなぎます。例: 屋根は滑走、床は消滅。

よくある失敗

  • 粒子が境界をすり抜ける: 1フレームの速度がマスクの厚さより大きい可能性があります。速度を下げるか、マスクを厚くしてください。初期版は連続衝突判定ではなくフレームごとの画素判定です。
  • 半透明の縁で早く反応する: マスクしきい値 を0.7〜0.9へ上げます。
  • 端でスタンプが切れる: fx_domain_2d の「左右をつなぐ」「上下をつなぐ」を必要な軸で有効にします。
  • マスクの外へ出られない: 「マスク内に閉じ込める」のオン/オフが用途と逆になっていないか確認します。

関連ノード

  • fx_domain_2d — キャンバス寸法と周期境界を決める
  • fx_emitter_2d — 粒子を発生させる
  • fx_force — 重力・風・乱流などを加える
  • fx_rasterize — 境界応答後の粒子を画像化する
ノード一覧に戻る