Back to Node List

Fx Rasterize

fx_rasterize

Rasterizes FxState2D into the current frame image and exposes a raw animated spritesheet preview.

Draft
Guide available
The node name and summary are available in English. Port, parameter, and article details are currently shown in Japanese.

Input Ports

NameTypeDescription
FX
fx
FxState2D
Required
入力 FX state です
開始色
color_start
Color
初期粒子色のオプション上書きです
終了色
color_end
Color
後期粒子色のオプション上書きです
背景色
background
Color
背景色のオプション上書きです
粒子スタンプ
stamp
Image
任意の粒子シルエット画像です。接続すると、組み込みの pixel/blob 形状の代わりにこのスタンプ画像で粒子を描きます

Output Ports

NameTypeDescription
画像
image
Image
現在フレーム 1 枚だけの画像です。Preview Frame または time context で選ばれた単フレームを返します
スプライトシート
spritesheet
SpriteSheet
このラスタライズ結果を downstream の仕上げノードに入る前の段階で、そのまま全フレーム分ベイクした raw スプライトシートです
フレーム数
frame_count
Int
FX state から受け取った総フレーム数です
FPS
fps
Int
FX state から受け取った再生 FPS です
列数
columns
Int
raw preview スプライトシートで使われた列数です
行数
rows
Int
raw preview スプライトシートで使われた行数です
フレーム幅
frame_width
Int
raw preview スプライトシート内の 1 フレーム幅です
フレーム高さ
frame_height
Int
raw preview スプライトシート内の 1 フレーム高さです
配置順
fill_order
Text
raw preview スプライトシートで使われた配置順です
有効粒子数
active_particles
Int
描画したフレームで生きている粒子数です
フレーム
frame
Int
実際にラスタライズしたフレーム番号です
概要
summary
Text
現在ラスタライズしたフレームの短い概要です

Parameters

NameTypeDefaultRangeDescription / Options
プレビューフレーム
preview_frame
Int
00–4096

プレビューとしてどのフレームを描くかです

描画モード
render_mode
Enum
Pixel

粒子をどの見た目で pixel に落とすかです。スタンプ画像が未接続ならピクセル、ブロブ、トレイルから選びます。スタンプ接続時はそのシルエットを使って描きます

  • ピクセルPixel
    各粒子をくっきりした四角いドットとして描きます。火花、飛沫、硬い輪郭のレトロ FX に向いています
  • ブロブBlob
    各粒子を少しにじんだ柔らかい塊として描きます。炎、煙、発光するもやのような見た目に向いています
  • トレイルTrail
    各粒子の進行方向に短い尾を引いて描きます。筋を引く火花、残像付きの飛沫、速い粒子に向いています
開始色
color_start
Color
[1,0.8399999737739563,0.23999999463558197,1]

粒子の生まれ側で使う色です

終了色
color_end
Color
[0.949999988079071,0.11999999731779099,0.11999999731779099,0]

粒子の寿命が終わる側で使う色です

背景色
background
Color
[0,0,0,0]

FX フレームの背後に敷く背景色です。透明も使えます

サイズ倍率
size_scale
Float
10.1–16 / step 0.1

描画前に粒子サイズ全体へ掛ける倍率です。ピクセルでは四角ドットの大きさ、ブロブやトレイルでは描画半径、スタンプ接続時はスタンプ画像の拡大率として使います

不透明度
opacity
Float
10–1 / step 0.01

フレーム全体の不透明度倍率です

柔らかさ
softness
Float
1.20.1–4 / step 0.1

ブロブとトレイル描画のにじみ具合です。ピクセルモードには影響せず、粒子スタンプ画像が接続されている時も無視されます

トレイル長
trail_length
Float
31–16 / step 0.1

描画モードがトレイルの時だけ、どれだけ尾を引くかです。スタンプ画像が接続されている時は、そのスタンプを軌跡に沿って並べます

まず大事なこと

  • FxRasterize で初めて 画像 が出ます
  • image現在フレーム 1 枚だけ です
  • spritesheetこのノード時点の raw 連続再生プレビュー です
  • 粒子の見た目画像を使いたい時は stamp をつなぎます
  • P11 の FX はここで image に落としてから、
    • PaletteQuantize
    • PixelCleanup
    • Outline へ流すのが基本です

stamp の役割

  • stamp粒子そのものの見た目 を決める画像です
  • 画像の RGB は使わず、alpha / シルエット を基準にします
  • 実際の色は color_start -> color_end の補間色で tint されます
  • size_scaleFxEmitter2D.size_min / size_max で stamp の大きさを変えます

つまり、

  • 発生位置の形を画像で決めたい
    • FxEmitter2D.mask
  • 粒子 1 個の見た目の形を画像で決めたい
    • FxRasterize.stamp

です。

imagespritesheet の違い

  • image
    • 今見ているフレーム 1 枚だけです
    • Preview Frame を変えると、この 1 枚が切り替わります
    • Preview ノードへ直接つなぐと、今選んでいる単フレームだけが見えます
  • spritesheet
    • FxRasterize を全フレーム分 1 回ずつ評価して集めた raw spritesheet です
    • Inspector ではこれを使って連続再生できます
    • ただし、これはまだ FxRasterize 時点の見た目です

つまり、このノードは「フレーム分の画像を 1 本の wire で全部出している」のではなく、

  • image では現在フレーム 1 枚を返し
  • spritesheet では backend 側で全フレームを順番に再評価して集めた結果を返す

という二本立てです。

仕上げノードを入れた時の考え方

  • FxRasterize -> Outline -> Preview
    • Preview では current frame に outline が付いた 1 枚を見ます
  • FxRasterize -> Outline -> FxBakeSpriteSheet
    • 全フレームに outline を付けた状態で spritesheet 化します

なので、

  • FxRasterize.spritesheet
    • raw FX のアニメーション確認用
  • FxBakeSpriteSheet
    • 仕上げ込みの最終 spritesheet 化

と考えるのが自然です。

描画モードの使い分け

  • pixel
    • 一番シャープです
    • 四角いドットとして出ます
    • size_scale を上げると 1 ドットではなく 2x2, 3x3 のような block になります
    • spark や飛沫向きです
  • blob
    • 火や煙向きです
    • size_scalesoftness を使います
  • trail
    • 尾を引く見た目です
    • size_scale, softness, trail_length を使います
    • 軌跡っぽい FX 向きです

基本レーン

FxDomain2D
  -> FxEmitter2D
  -> FxForce
  -> FxRasterize
  -> PaletteQuantize
  -> PixelCleanup
  -> Preview

炎っぽい設定

  • render_mode = blob
  • color_start = 黄
  • color_end = 赤透明
  • size_scale = 1.2
  • softness = 1.4

spark っぽい設定

  • render_mode = pixel
  • color_start = 白
  • color_end = 黄透明
  • size_scale = 1.0

サイズ系の見方

  • FxEmitter2D.size_min / size_max
    • 粒子ごとの基礎サイズです
  • FxRasterize.size_scale
    • その基礎サイズ全体へ掛ける倍率です

たとえば、

  • size_min = size_max = 1, size_scale = 1
    • pixel なら 1 ドット
  • size_min = size_max = 2, size_scale = 1
    • pixel なら 2x2 block に近い見え方
  • size_min = size_max = 1, size_scale = 3
    • pixel なら 3x3 block に近い見え方

注意

  • preview_frame は 0 始まりです
  • color_start / color_end は入力ポートがつながっていればそちら優先です
  • 小さいドット絵にしたい時は、まず pixelblob + 小さめ size から始めるのが安全です
  • FxRasterize.spritesheet は raw preview 用なので、PaletteQuantizeOutline の後の見た目までは含みません
  • 仕上げ込みで全フレームを 1 枚にしたい時は FxBakeSpriteSheet を使います

stamp を使う時の見え方

  • render_mode = pixel
    • stamp をそのまま 1 粒ごとに置きます
  • render_mode = blob
    • blob の代わりに stamp を 1 粒ごとに置きます
  • render_mode = trail
    • stamp を進行方向に沿って並べて尾を作ります

この時、

  • softness
    • 使いません
  • trail_length
    • trail の時だけ、stamp をどれだけ並べるかに使います

例: しずく型 stamp を使う

小さい白シルエット画像
  -> FxRasterize.stamp

設定例:

  • render_mode = pixel
  • size_scale = 2
  • color_start = 水色
  • color_end = 青透明

この場合、粒子は単なる四角ドットではなく、しずく型の stamp を拡大した形で描かれます。

Back to Node List