Roblox Studioでフリップブックパーティクルを作る方法
Roblox Studioでフリップブックパーティクルを作る手順を紹介します。シートをアップロードし、FlipbookLayoutを設定して、FlipbookModeにLoop、OneShot、PingPong、Randomのいずれかを選びます。フレームレートやカスタムグリッドの設定方法、よくある問題の解決方法も説明します。
フリップブックパーティクルは、テクスチャにフレームのグリッドを使うParticleEmitterです。各パーティクルは存在している間、フレームを再生します。煙が渦巻いたり、火花がちらついたり、1つのパーティクルで爆発全体を再生したりできます。設定はすべてエミッターのPropertiesで行うため、プラグインは必要ありません。
ゲームでのフリップブックの2つの使い方
- たくさんのパーティクルをそれぞれアニメーションさせる。 定番の使い方です。Rateを0より大きく設定したエミッターから複数のパーティクルを放出し、それぞれに煙が渦巻く様子や炎のちらつきなどの短いアニメーションを再生します。Speed、SpreadAngle、SizeとTransparencyのカーブで、動きやフェードを設定できます。
- 1つのパーティクルでエフェクト全体を表現する。 完成したエフェクト(爆発、斬撃、オーラなど)をフレームに描き、動かない1つのパーティクルで最初から最後まで再生します。すべてのParticleFXのエフェクトはこの方法でダウンロードできます。デザインどおりの見た目になり、どれほど複雑なエフェクトでもパーティクルは1つです。
こちらは後者のタイプのフリップブックです。各ページでROBLOXを押すとPNGをダウンロードできます。ページには使用するFlipbookLayoutとLifetimeが表示されます。
フリップブックを設定する手順
- フリップブックのPNGを作成するかダウンロードします。正方形の画像を2x2、4x4、8x8のグリッドに分割し、フレームを左上から行ごとに並べます。フリップブックテンプレートは描画用の空のグリッドです。ライブラリのエフェクトはすべて、ROBLOXボタンからダウンロードできます。
- StudioでView > Asset Managerを開き、ImportをクリックしてPNGを選びます。アップロード後、画像を右クリックしてCopy Asset IDを選びます。
- Partを挿入し、その中にAttachmentを追加します。さらにAttachmentにParticleEmitterを追加し、Textureに
rbxassetid://とIDを続けて入力します。 - 画像のグリッドに合わせてFlipbookLayoutをGrid2x2、Grid4x4、Grid8x8のいずれかに設定します。テクスチャのサイズがグリッドで正確に割り切れない場合、エミッターに警告が表示されます。
- FlipbookModeを選びます(下の表を参照)。Loop、PingPong、Randomでは、FlipbookFramerateを設定します。最大で1秒あたり30フレームです。
- PlayまたはRunを押し、ゲーム内のカメラから見やすくなるようにLifetime、Size、Rateを調整します。
| FlipbookMode | 動作 | 用途 |
|---|---|---|
| Loop | FlipbookFramerateの速度でフレームを順番に再生し、パーティクルが存在する間、最初から繰り返します | ちらつく炎、きらめき、渦巻く煙 |
| OneShot | パーティクルのLifetime全体に均等にフレームを1回再生します。FlipbookFramerateは使用しません | 爆発やヒットなどのエフェクト、発生して消える煙 |
| PingPong | 順方向に再生してから逆方向に再生し、繰り返します | 脈打つ光や呼吸するようなオーラ |
| Random | フレームをランダムな順番で切り替え、次のフレームへクロスフェードします | ゆっくりと自然にきらめく表現:星、残り火、魔法の粉 |
フレームレートとタイミング
- OneShot:フリップブック全体を Lifetime の間に1回再生します。そのため、Lifetime が 1.6 s の64フレームの爆発は、1秒あたり40フレームで再生されます。Lifetime の2つの値を同じに設定してください。そうしないと、パーティクルごとに再生速度が異なります。
- Loop と PingPong:FlipbookFramerate で再生速度を設定します。最大で1秒あたり30フレームです。たとえば12から18の範囲にすると、パーティクルごとに再生速度が変わるため、雲のように集まったパーティクルが一斉に点滅しません。
- FlipbookStartRandom:各パーティクルをランダムなフレームから再生します。FlipbookFramerate を 0 にすると、各パーティクルはランダムなフレームを1つ表示したままになります。これにより、1つのテクスチャから、岩4種類、葉4種類、火花4種類のようなバリエーションを作れます。
- FlipbookBlendFrames:フレーム間をクロスフェードします。フレーム数が少ない柔らかなエフェクトではオンのままにし、ドット絵や輪郭のはっきりしたアニメ調のフレームではオフにします。
カスタムグリッド
FlipbookLayout Custom では、FlipbookSizeX(列数)と FlipbookSizeY(行数)で定義したグリッドを読み込みます。2x2、4x4、8x8以外のスプライトシートに使えます。テクスチャは指定したグリッドで正確に分割できる必要があります。共有したり再利用したりするフリップブックには、3種類の標準グリッドが安全です。
スクリプトから作成する
パーティクル1つのエフェクトでは、Rate を 0 に設定してコードから放出すると、ゲームの指示どおりのタイミングで再生できます。次の例ではエミッター全体をスクリプトから作成します。実行時に作成するエフェクトに便利です。
-- A Script inside a part: builds a flipbook emitter and plays it once.
-- The names match the ready model (Attachment.Flipbook), so the other scripts on these pages work with it.
local attachment = Instance.new("Attachment")
attachment.Parent = script.Parent
local emitter = Instance.new("ParticleEmitter")
emitter.Name = "Flipbook"
emitter.Texture = "rbxassetid://123456789" -- your uploaded flipbook
emitter.FlipbookLayout = Enum.ParticleFlipbookLayout.Grid8x8
emitter.FlipbookMode = Enum.ParticleFlipbookMode.OneShot
emitter.Lifetime = NumberRange.new(1.6) -- the effect's length
emitter.Rate = 0
emitter.Speed = NumberRange.new(0)
emitter.Size = NumberSequence.new(6)
emitter.LightEmission = 1 -- 0 for smoke and anything dark
emitter.LightInfluence = 0
emitter.LockedToPart = true
emitter.Parent = attachment
emitter:Emit(1)ループするエフェクトでは、Lifetime ごとに再度放出します。ループ用のスクリプトはRoblox のセットアップページにあり、パーティクル1つのフリップブックに必要なほかのプロパティもすべて設定されています。アニメーションするパーティクルを多数使う場合は、代わりにエミッターに Rate を設定して動かします。
よくある問題
- 各パーティクルにスプライトシート全体が表示される。FlipbookLayout が None のままです。画像に合ったグリッドを設定してください。
- 再生が速すぎる、または遅すぎる。OneShot では Lifetime を変更してください。このモードでは FlipbookFramerate は機能しません。
- 離れた場所で隣接するフレームがにじむ。テンプレートやライブラリのフリップブックと同様に、各フレームの周囲に透明な余白を残してください。そうすれば、Roblox が遠くから描画するテクスチャの縮小版でフレームが混ざりません。
- エフェクトの周囲に黒い四角が表示される。PNG に透明度がありません。アルファチャンネル付きで保存してください。LightEmission が 1 の場合、黒は何も加えません。そのため、光るエフェクトに限り四角を目立たなくできます。
- テクスチャが表示されない。Roblox は新しいアップロードをゲーム内に表示する前に審査します。ID を Properties の Texture に貼り付けてください。
- 複数のコピーが重なって表示される。エミッターが自動で放出し続けています。パーティクル1つのエフェクトでは、Rate を 0 に設定し、Emit(1) を呼び出す前に Clear() を呼び出してください。
フリップブックPNGは無料です。各エフェクトページのROBLOXボタンはアカウント不要で使えます。また、無料アカウントでもスタジオから、グリッドとテクスチャサイズを選んで書き出せます(1日3エフェクト)。エミッターを設定済みで再生用Scriptが付いた.rbxmxの準備済みモデルと、UI用のUIFlipbook.luauは、月額$7.99からのすべてのプランに含まれます。
ゲームに取り込む
すべての設定と、無料のPNGまたはすぐに使えるモデルから始める2つの方法は、Robloxのセットアップページで確認できます。ジャンル別の一覧は無料のRoblox VFXにあります。また、どのエフェクトもスタジオで変更してからエクスポートできます。
よくある質問
Roblox でフリップブックパーティクルを作るには?
正方形の PNG を用意し、2x2、4x4、または8x8のグリッドに分割します。ParticleEmitter の Texture に設定し、FlipbookLayout を対応するグリッドに設定します。次に FlipbookMode を選び、Loop または PingPong の場合は FlipbookFramerate も設定します。
Loop と OneShot の違いは何ですか?
Loop はパーティクルの存続中、FlipbookFramerate の速度でフレームを繰り返し再生します。OneShot はフレームを Lifetime 全体に均等に割り振って1回再生するため、再生速度は Lifetime で決まり、FlipbookFramerate は無視されます。
Roblox のフリップブックは64フレームを超えられますか?
標準レイアウトは8x8までで、64フレームです。FlipbookLayout Custom では FlipbookSizeX と FlipbookSizeY で列数と行数を指定できますが、その分、各フレームに使えるテクスチャのピクセル数は少なくなります。
Robuxを獲得できるゲームで、これらのエフェクトを使えますか?
はい。ライブラリから開始したものを含め、書き出したエフェクトはクレジット表記なしで、商用ゲームを含むあらゆるプロジェクトに使用できます。ただし、ライブラリ自体をエフェクトパックとして再販売することは禁止されています。






