まず大事なこと
FxBakeSpriteSheetは FX 専用のベイク出口 です- generic な
AnimationRenderとは違い、正本はFxState2Dのtotal_frames / fpsです - そのため、P11 ではこちらを使う方が自然です
fxとimageは 役割が違うので両方必要 ですfx: 何フレーム焼くか、何 FPS か、どの seed かを決める時間軸の正本image: 各フレームで実際に焼く最終見た目
なぜ FX と画像の両方をつなぐのか
fxだけでは「何を描くか」が分かりませんimageだけでは「何フレーム焼くか」「何 FPS か」が分かりません- そのため、このノードは
FxState2Dから時間軸情報を受け取りFxRasterizeとその後段で仕上げた画像を各フレームで集めて- spritesheet に詰めます
つまり、このノードは 自分でラスタライズするノードではなく、完成済みフレーム列をベイクするノード です。
一番基本の使い方
FxDomain2D
-> FxEmitter2D
-> FxForce
-> FxRasterize
-> PaletteQuantize
-> PixelCleanup
-> FxBakeSpriteSheet
この形なら、
- FX を image 化
- ドット絵向けに仕上げ
- 最後に spritesheet 化
を 1 本のレーンで行えます。
fx 入力には、通常は FxEmitter2D や FxForce を通した最後の FxState2D を入れます。image 入力には、通常は FxRasterize の後ろで PaletteQuantize や PixelCleanup まで通した最終画像を入れます。
例
FxDomain2D.total_frames = 8FxDomain2D.fps = 12columns = 4fill_order = row_major
この時、FxBakeSpriteSheet は 8 フレームを 4 列で詰めるので、
columns = 4rows = 2frame_count = 8
の spritesheet を返します。
どういう時に使うか
- 炎、煙、飛沫を最終的に spritesheet 素材として出したい時
SpriteSheetPlaybackで即再生確認したい時- export 前に graph 内で spritesheet を再利用したい時
注意
- 1 フレームごとの最終見た目は
image入力側で決まります - つまり、
PaletteQuantizeやPixelCleanupは Bake より前 に挟む方が自然です columns = 0の時は自動でほぼ正方形に近い配置を選びます