アセットは別ページに分割しました。
関連ページ:
パーティクルシステム (Particle System)
公式サイト:
Built-in Particle System | Unity マニュアル [公式]
目次
- 1 概要
- 2 使い方
- 3 導入
- 4 基本
- 5 プレビュー
- 6 エディター
- 7 モジュール
- 8 メインモジュール (MainModule)
- 9 Scaling Mode
- 10 Size
- 11 Pivot
- 12 duration
- 13 startLifetime
- 14 startColor
- 15 頂点ストリーム
- 16 描画順
- 17 Shape モジュール
- 18 Texture Sheet Animation モジュール
- 19 Lights モジュール
- 20 Renderer モジュール
- 21 スタンダードシェーダー
- 22 ソフトパーティクル (Soft Particles)
- 23 Force Field
- 24 メッシュ (Mesh)
- 25 コリジョン (Collision)
- 26 自動的に生成を開始する
- 27 停止する
- 28 一時停止する
- 29 炎エフェクトを作成する
- 30 湯気エフェクトを作成する
- 31 花火エフェクトを作成する
- 32 集中線を表現する
- 33 シェーダーを作成する
- 34 ParticleSystem
- 35 OnParticleCollision
- 36 OnCollisionEnter / OnTriggerEnter
- 37 GetParticles
- 38 Tips
- 39 チュートリアル
- 40 Beam Shader
- 41 VFX Tool Box
- 42 Mass Particle / Batch Renderer
概要
参考:
パーティクルシステムとは何か? | Unity マニュアル [公式]
パーティクルシステム | Unity 2018.4 マニュアル [公式]
Particle Systems | Unity マニュアル [公式]
使い方
参考:
Unity のパーティクルシステムの詳細とサンプル | かめくめ
パーティクル徹底解説!基本的なモジュールの使用方法から応用例まで | XR-Hub
Unity のパーティクル Shuriken | マルペケつくろーどっとコム
パーティクルシステム (コンポーネント) | Unity マニュアル [公式]
パーティクルシステムの利用 | Unity 2018.4 マニュアル [公式]
導入
参考:
パーティクル | KAYAC engineers’ blog
Unity のパーティクル 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 Forces:Wind 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
参考:
パーティクルの大きさを Scale で調整する | kan のメモ帳
Scaling Mode | Unity 2019.4 マニュアル [Official]
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
参考:
Pivot
参考:
ParticleSystemRenderer.pivot | Unity Scripting API [Official]
Unity の ParticleSystem でパーティクルの拡大の仕方を変えたい- 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)
参考:
MainModule の duration 動的変更方法 | yshystsj.com
ParticleSystem.duration の Unity 5.5 以降の対応 | ロードバイク時々ものづくり
ParticleSystem.MainModule.duration | Unity スクリプトリファレンス [公式]
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
頂点ストリーム
参考:
Particle System の Custom Vertex Streams と Custom Data の使い方まとめ | LIGHT11
使用する TEXCOORD をマテリアルから指定できるようにする | LIGHT11
Custom Vertex Streams | ゴイサギ日記
頂点ストリームとスタンダードシェーダーサポート| Unity マニュアル [公式]
描画順
参考:
Sprite の描画順をコントロールする方法 | 最強のエフェクトデザイナーになるブログ
パーティクルが sprite の後ろ側に描画される | 196Log
Shape モジュール
参考:
Shape モジュール | Unity マニュアル [公式]
Texture Sheet Animation モジュール
参考:
ParticleSystem で連番テクスチャを扱う – Qiita
ParticleSystem で連番アニメーションをする方法 | LIGHT11
パーティクルに複数の種類のテクスチャを使う | おもちゃラボ
Texture Sheet Animation モジュール | Unity マニュアル [公式]
Lights モジュール
参考:
パーティクルシステムの粒子を発光させる Lights モジュールを使う | テラシュールブログ
Lights モジュール | Unity マニュアル [公式]
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 マニュアル [公式]
スタンダードシェーダー
参考:
物理シェーダーベースのパーティクル向けシェーダー、Standard Particle Shader | テラシュールブログ
パーティクルを重ねて光らせる加算モードで描画するには? | ぺんごや
パーティクルのスタンダードシェーダー | Unity マニュアル [公式]
ソフトパーティクル (Soft Particles)
参考:
Soft Particle を使って、ポリゴンとパーティクルの交差点がハッキリ見えないようにする | テラシュールブログ
Unity のソフトパーティクルのシェーダについて調べてみた | 凹みTips
深度値を使ったソフトパーティクルのシェーダを書く | LIGHT11
Shader Graph でソフトパーティクルシェーダーを作成する | 武0武/blog
Universal Render Pipeline でパーティクルが表示されない場合の対処法 – Qiita
a very weird bug. URP particles shader problem – Unity Forum
Unwanted hard edges when depth blending particles – Unity Forum
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
停止する
参考:
一定時間後にオブジェクトのパーティクルのみを消去する – Yahoo! 知恵袋
ParticleSystem.Stop | Unity スクリプトリファレンス [公式]
一時停止する
参考:
パーティクルのクリアは行わずパーティクルの生成を停止させる方法 | テラシュールブログ
期限が来てもすぐに消滅しないパーティクル | テラシュールブログ
ParticleSystem.Pause | Unity スクリプトリファレンス [公式]
ParticleSystem.Stop | Unity スクリプトリファレンス [公式]
ParticleSystemStopBehavior.StopEmitting | Unity スクリプトリファレンス [公式]
ParticleSystem.Play | Unity スクリプトリファレンス [公式]
ParticleSystem.isEmitting | Unity スクリプトリファレンス [公式]
炎エフェクトを作成する
参考:
Unity のシェーダーと ParticleSystem を利用した炎エフェクトの作り方 | STYLY
湯気エフェクトを作成する
参考:
花火エフェクトを作成する
参考:
パーティクルシステムを使用してARの花火を作成してみた | XR-Hub
集中線を表現する
参考:
Particle Systemを使って集中線を表示する | Akey 備忘録
シェーダーを作成する
参考:
Particle System で利用する Shader を作る – Qiita
ParticleSystem
参考:
UnityEngine.ParticleSystem | Unity スクリプトリファレンス [公式]
OnParticleCollision
参考:
MonoBehaviour.OnParticleCollision | Unity スクリプトリファレンス [公式]
ParticlePhysicsExtensions.GetCollisionEvents | Unity スクリプトリファレンス [公式]
ParticleSystem.CollisionModule.sendCollisionMessages | Unity スクリプトリファレンス [公式]
particle collision with cube – Unity Forum
OnCollisionEnter / OnTriggerEnter
参考:
turn particle effect on, on collision – Unity Forum
position of particle system isn’t attached to object – Stack Overflow
GetParticles
参考:
Particle の粒子を一つだけ出してそのポジションを取得する方法 – Qiita
パーティクルの一つ一つ粒子の位置や速度の取得方法 | kan のメモ帳
再生中のパーティクルの位置を取得する | KAZUPON 研究室
ParticleSystem.GetParticles | Unity スクリプトリファレンス [公式]
Tips
参考:
パーティクルに関するエフェクト小技集まとめ | CGメソッド
ParticleSystem のややこしいところまとめ – Qiita
チュートリアル
How to Make Fireflies in Unity
Beam Shader
リポジトリ:
参考:
Particle System で射線軸から見ても破綻しないビームを撃ちまくる – Qiita
VFX Tool Box
リポジトリ:
rngtm/Unity-VFXToolBox: Tools for Unity VFX – GitHub
Mass Particle / Batch Renderer
動画:
リポジトリ:
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