ノード一覧に戻る

FXスプライトシートベイク

fx_bake_spritesheet

決定論的な FX レーンをスプライトシートへベイクします。FX 入力はフレーム数と FPS を、画像入力は各フレームの最終見た目を渡します。

下書き
解説あり

入力ポート

名前説明
FX
fx
FxState2D
必須
総フレーム数と FPS を定義する FX state です
画像
image
Image
必須
FX レーンの現在フレーム画像です
列数
columns
Int
ベイク後のスプライトシート列数を上書きします
配置順
fill_order
Text
配置順の上書きです。row_major は右へ、column_major は下へ先に埋めます

出力ポート

名前説明
画像
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
ベイクしたスプライトシート契約の短い概要です

パラメータ

名前既定値範囲説明・選択肢
列数
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 の時は自動でほぼ正方形に近い配置を選びます
ノード一覧に戻る
FXスプライトシートベイク — PixPipeline ノード解説