パーティクルシステム

公式サイト:

組み込みパーティクルシステム | Unity マニュアル [公式]

概要

ドキュメント:

パーティクルシステム | Unity マニュアル [公式]

パーティクルシステムソリューションの選択 | Unity マニュアル [公式]

使い方

ドキュメント:

組み込みパーティクルシステムの使用 | Unity マニュアル [公式]

パーティクルシステム – コンポーネント | Unity マニュアル [公式]

参考:

パーティクルシステムの詳細とサンプル | かめくめ

パーティクル徹底解説!基本的なモジュールの使用方法から応用例まで | XR-Hub

Shuriken パーティクル | マルペケつくろーどっとコム

導入

参考:

パーティクルを覚える | STYLY

パーティクル | KAYAC engineers’ blog

Shuriken パーティクル | マルペケつくろーどっとコム

基本

参考:

パーティクル徹底解説!基本的なモジュールの使用方法から応用例まで | XR-Hub

プレビュー

参考:

Particle System のプレビュー再生で使用できるショートカットキー | コガネブログ

エディター

Particle System を持つゲームオブジェクトを選択してインスペクター上で「Open Editor…」ボタンを押すと、別ウィンドウでエディターを開いて複数のシステムを同時に編集できる。

参考:

パーティクルエディタ | テラシュールブログ

モジュール

  • メインモジュールパーティクルシステム全体のプロパティーを設定する。
  • Emissionパーティクル生成の頻度とタイミングを指定する。
  • Shapeエミッターの形状や位置・回転・拡大縮小、放出パターンを指定する。
  • Velocity over Lifetimeパーティクル生存中の速度を制御する。
  • Noiseパーティクルの動きに乱気流ノイズを加える。
  • Limit Velocity over Lifetimeパーティクルの速度を生存期間中に渡って減衰させる。
  • Inherit Velocityエミッターの移動を生成したパーティクルに影響させる。
  • Force over Lifetimeパーティクルに一定の力を加える。
  • Color over Lifetimeパーティクルの色及び透明度を生存期間中に渡って変化させる。
  • Color by Speedパーティクルの速さに応じて色を変化させる。
  • Size over Lifetimeパーティクルの大きさを生存期間中に渡って変化させる。
  • Size by Speedパーティクルの速さに応じて大きさを変化させる。
  • Rotation over Lifetimeパーティクルの生存期間中に渡って回転させる。
  • Rotation by Speedパーティクルの速さに応じて回転させる。
  • External ForcesWind Zone 及び Force Fields の影響度を指定する。
  • Collisionゲームオブジェクトとの衝突による振る舞いを指定する。
  • Triggersコライダーにより発生するイベントに対する振る舞いを指定する。
  • Sub Emitters下位のエミッターを設定する。
  • Texture Sheet Animationタイルに区切られたテクスチャをフレームとして再生する。
  • Lights指定した割合でパーティクルにライトを追加する。
  • Trailsパーティクルにトレイルを生じさせる。
  • Custom Dataシェーダーに渡すカスタムデータを定義する。
  • Renderer画像あるいはメッシュの描画を設定する。

ドキュメント:

パーティクルシステムモジュール | Unity マニュアル [公式]

メインモジュール (MainModule)

  • Duration
  • Looping
  • Prewarm
  • Start Delay
  • Start Lifetime
  • Start Speed
  • 3D Start Size
  • Start Size
  • 3D Start Rotation
  • Start Rotation
  • Flip Rotation
  • Start Color
  • Gravity Modifier
  • Simulation Space
  • Simulation Speed
  • Delta Time
  • Scaling Mode
  • Play on Awake
  • Emitter Velocity
  • Max Particles
  • Auto Random Seed
  • Random Seed
  • Stop Action
    • Disable
    • Destroy
    • Callback
  • Culling Mode
    • Automatic
    • Pause and Catch-up
    • Pause
    • Always Simulate
  • Ring Buffer Mode
    • Disabled
    • Pause Until Replaced
    • Loop Until Replaced

ドキュメント:

Particle System メインモジュール | Unity マニュアル [公式]

ParticleSystem.MainModule | Unity Scripting API [Official]

参考:

概要とメインモジュール | ゴイサギ日記

Unity 5.5 obsolete particle system code – Stack Overflow

Scaling Mode

ドキュメント:

Scaling Mode | Unity 2019.4 マニュアル [Official]

参考:

パーティクルの大きさを Scale で調整する | kan のメモ帳

How to scale particle system? – Unity Forum

Individual particles get scaled when using Mesh Renderer shape? – Unity Forum

How to resize Shuriken particle emitter on a mesh? – Unity Answers

Size

  • Start Size
  • Size over Lifetime
  • Max Particle Size

参考:

パーティクルの Size | albatrus.com

Pivot

ドキュメント:

ParticleSystemRenderer.pivot | Unity Scripting API [Official]

参考:

Particle System でパーティクルの拡大の仕方を変えたい- teratail

duration

パーティクルシステムの実行時間を取得する。

m_ParticleSystem = GetComponent<ParticleSystem>();
float duration = m_ParticleSystem.main.duration;Code language: C# (cs)

パーティクルシステムの実行時間を設定する。

m_ParticleSystem = GetComponent<ParticleSystem>();
m_ParticleSystem.main.duration = 2.0f;Code language: C# (cs)

ドキュメント:

ParticleSystem.MainModule.duration | Unity スクリプトリファレンス [公式]

参考:

MainModule の duration 動的変更方法 | yshystsj.com

ParticleSystem.duration の Unity 5.5 以降の対応 | ロードバイク時々ものづくり

why is particle system duration read only? – Unity Answers

startLifetime

参考:

Unity 5.5 obsolete particle system code – Stack Overflow

startColor

参考:

Particle の startColor をスクリプトで変更する | tanaka’s Programming Memo

描画順

参考:

Sprite の描画順をコントロールする方法 | 最強のエフェクトデザイナーになるブログ

2D のエフェクトを前面に表示する | kan のメモ帳

パーティクルが sprite の後ろ側に描画される | 196Log

Shape モジュール

  • Shape
    • Sphere
    • Hemi Sphere
    • Cone
    • Box
    • Mesh
    • Mesh Renderer
    • Skinned Mesh Renderer
    • Sprite
    • Sprite Renderer
    • Circle
    • Edge
    • Donut
    • Rectangle
  • Radius
  • Radius Thickness
  • Texture
  • Clip Channel
  • Clip Threshold
  • Color Affects Particles
  • Alpha Affects Particles
  • Bilinear Filtering
  • Position X / Y / Z
  • Rotation X / Y / Z
  • Scale X / Y / Z
  • Align to Direction
  • Randomize Direction
  • Spherize Direction
  • Randomize Position

ドキュメント:

Shape モジュール | Unity マニュアル [公式]

Texture Sheet Animation モジュール

ドキュメント:

Texture Sheet Animation モジュール | Unity マニュアル [公式]

参考:

ParticleSystem で連番テクスチャを扱う – Qiita

ParticleSystem で連番アニメーションをする方法 | LIGHT11

パーティクルに複数の種類のテクスチャを使う | おもちゃラボ

Lights モジュール

ドキュメント:

Lights モジュール | Unity マニュアル [公式]

参考:

パーティクルシステムの粒子を発光させる Lights モジュールを使う | テラシュールブログ

Renderer モジュール

  • Render Mode
  • Normal Direction
  • Material
  • Sort Mode
  • Sorting Fudge
  • Min Particle Size
  • Max Particle Size
  • Render Alignment
  • Enable Mesh GPU Instancing
  • Flip
  • Allow Roll
  • Pivot
  • Visualize Pivot
  • Masking
  • Apply Active Color Space
  • Custom Vertex Streams
  • Cast Shadows
  • Receive Shadows
  • Shadow Bias
  • Motion Vectors
  • Sorting Layer ID
  • Order in Layer
  • Light Probes
  • Reflection Probes
  • Anchor Override

ドキュメント:

Renderer モジュール | Unity マニュアル [公式]

Force Field

ドキュメント:

Particle System Force Field | Unity 2018.4 マニュアル [公式]

メッシュ (Mesh)

参考:

パーティクルにモデルを使いたい | テラシュールブログ

コリジョン (Collision)

ドキュメント:

Collision モジュール | Unity 2020.3 マニュアル [公式]

UnityEngine.CollisionModule | Unity スクリプトリファレンス [公式]

ParticleSystem.collision | Unity スクリプトリファレンス [公式]

参考:

particle collision – Unity Forum

自動的に生成を開始する

ドキュメント:

ParticleSystem.MainModule.playOnAwake | Unity スクリプトリファレンス [公式]

参考:

Play On Awake の切り替え – teratail

停止する

ドキュメント:

ParticleSystem.Stop | Unity スクリプトリファレンス [公式]

参考:

一定時間後にオブジェクトのパーティクルのみを消去する – Yahoo! 知恵袋

一時停止する

ドキュメント:

ParticleSystem.Pause | Unity スクリプトリファレンス [公式]

ParticleSystem.Stop | Unity スクリプトリファレンス [公式]

ParticleSystemStopBehavior.StopEmitting | Unity スクリプトリファレンス [公式]

ParticleSystem.Play | Unity スクリプトリファレンス [公式]

ParticleSystem.isEmitting | Unity スクリプトリファレンス [公式]

参考:

パーティクルのクリアは行わずパーティクルの生成を停止させる方法 | テラシュールブログ

期限が来てもすぐに消滅しないパーティクル | テラシュールブログ

一時停止の方法について – Yahoo! 知恵袋

炎エフェクトを作成する

参考:

シェーダーと ParticleSystem を利用した炎エフェクトの作り方 | STYLY

湯気エフェクトを作成する

参考:

パーティクルシステムを使って湯気を作る方法 | STYLY

花火エフェクトを作成する

参考:

パーティクルシステムを使用してARの花火を作成してみた | XR-Hub

集中線を表現する

参考:

Particle Systemを使って集中線を表示する | Akey 備忘録

ParticleSystem

ドキュメント:

UnityEngine.ParticleSystem | Unity スクリプトリファレンス [公式]

OnParticleCollision

ドキュメント:

MonoBehaviour.OnParticleCollision | Unity スクリプトリファレンス [公式]

ParticlePhysicsExtensions.GetCollisionEvents | Unity スクリプトリファレンス [公式]

ParticleSystem.CollisionModule.sendCollisionMessages | Unity スクリプトリファレンス [公式]

参考:

パーティクルに当たり判定を実装する – Qiita

particle collision with cube – Unity Forum

How to check if a collider overlaps with sphere? – Unity Forum

OnCollisionEnter / OnTriggerEnter

参考:

turn particle effect on, on collision – Unity Forum

position of particle system isn’t attached to object – Stack Overflow

GetParticles

ドキュメント:

ParticleSystem.GetParticles | Unity スクリプトリファレンス [公式]

参考:

Particle の粒子を一つだけ出してそのポジションを取得する方法 – Qiita

パーティクルの一つ一つ粒子の位置や速度の取得方法 | kan のメモ帳

再生中のパーティクルの位置を取得する | KAZUPON 研究室

スクリプトからパーティクルを操作する | 武0武 blog

Tips

パーティクルに関するエフェクト小技集まとめ | CGメソッド

Particle System のややこしいところまとめ – Qiita

チュートリアル

How to Make Fireflies in Unity

VFX Tool Box

リポジトリ:

rngtm/Unity-VFXToolBox: Tools for Unity VFX – GitHub

Mass Particle / Batch Renderer

動画:

MassParticle

リポジトリ:

i-saint/MassParticle – GitHub

i-saint/BatchRenderer – GitHub

デモ:

Demo – Batch Renderer | primitive

参考:

Unite 2015 Tokyo | primitive blog

Introdunction to SIMD Programming | primitive blog

Render Massive Amount of Cubes in Unity | primitive blog

Render Massive Amount of Cubes in Unity その2 | primitive blog

Pseudo-Instanced Drawing in Unity | primitive blog

記事をシェアする:
タグ:

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Protected by reCAPTCHA