Back to Node List

Fx Bake SpriteSheet

fx_bake_spritesheet

Bakes a deterministic FX lane into a spritesheet. The FX input provides frame timing, while the Image input provides the final per-frame look.

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
総フレーム数と FPS を定義する FX state です
画像
image
Image
Required
FX レーンの現在フレーム画像です
列数
columns
Int
ベイク後のスプライトシート列数を上書きします
配置順
fill_order
Text
配置順の上書きです。row_major は右へ、column_major は下へ先に埋めます

Output Ports

NameTypeDescription
画像
image
Image
現在フレームの passthrough 画像です
スプライトシート
spritesheet
SpriteSheet
ベイクした SpriteSheet document です
フレーム数
frame_count
Int
ベイクした総フレーム数です
FPS
fps
Int
FX state から受け取った再生 FPS です
列数
columns
Int
実際に使われたスプライトシート列数です
行数
rows
Int
実際に使われたスプライトシート行数です
フレーム幅
frame_width
Int
ベイクしたスプライトシート内の 1 フレーム幅です
フレーム高さ
frame_height
Int
ベイクしたスプライトシート内の 1 フレーム高さです
配置順
fill_order
Text
実際に使われた配置順です
概要
summary
Text
ベイクしたスプライトシート契約の短い概要です

Parameters

NameTypeDefaultRangeDescription / Options
列数
columns
Int
00–512

目標列数です。0 にするとほぼ正方形になるよう自動配置します

配置順
fill_order
Enum
RowMajor

フレームをシートのグリッドへどう並べるかです

  • 右へRowMajor
  • 下へColumnMajor

まず大事なこと

  • FxBakeSpriteSheetFX 専用のベイク出口 です
  • generic な AnimationRender とは違い、正本は FxState2Dtotal_frames / fps です
  • そのため、P11 ではこちらを使う方が自然です
  • fximage役割が違うので両方必要 です
    • fx: 何フレーム焼くか、何 FPS か、どの seed かを決める時間軸の正本
    • image: 各フレームで実際に焼く最終見た目

なぜ FX と画像の両方をつなぐのか

  • fx だけでは「何を描くか」が分かりません
  • image だけでは「何フレーム焼くか」「何 FPS か」が分かりません
  • そのため、このノードは
    • FxState2D から時間軸情報を受け取り
    • FxRasterize とその後段で仕上げた画像を各フレームで集めて
    • spritesheet に詰めます

つまり、このノードは 自分でラスタライズするノードではなく、完成済みフレーム列をベイクするノード です。

一番基本の使い方

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

この形なら、

  • FX を image 化
  • ドット絵向けに仕上げ
  • 最後に spritesheet 化

を 1 本のレーンで行えます。

fx 入力には、通常は FxEmitter2DFxForce を通した最後の FxState2D を入れます。
image 入力には、通常は FxRasterize の後ろで PaletteQuantizePixelCleanup まで通した最終画像を入れます。

  • FxDomain2D.total_frames = 8
  • FxDomain2D.fps = 12
  • columns = 4
  • fill_order = row_major

この時、FxBakeSpriteSheet は 8 フレームを 4 列で詰めるので、

  • columns = 4
  • rows = 2
  • frame_count = 8

の spritesheet を返します。

どういう時に使うか

  • 炎、煙、飛沫を最終的に spritesheet 素材として出したい時
  • SpriteSheetPlayback で即再生確認したい時
  • export 前に graph 内で spritesheet を再利用したい時

注意

  • 1 フレームごとの最終見た目は image 入力側で決まります
  • つまり、PaletteQuantizePixelCleanupBake より前 に挟む方が自然です
  • columns = 0 の時は自動でほぼ正方形に近い配置を選びます
Back to Node List