パーティクルエフェクトの外部制御 (Unity)

November 28, 2013

Unity のパーティクルエフェクトをスクリプトから制御する方法について実験したもの。

Unity のパーティクルエフェクトシステムでは、スクリプトから個々のパーティクルへアクセスする手段として GetParticles/SetParticles が用意されている。提供されているプロパティはそれほど多くないものの、直接アクセスすることで標準機能では不可能な動きを作り出すことができる。

上の映像では、特定のオブジェクトに吸い寄せられるような動きと、そこから反発するような動きを試してみている。ソースコードは次のような感じ。

ExternalControl.cs

C# から逐次処理を行っているため、それなりの負荷が発生することは避けられない。ただ、個々のパーティクルを GameObject として実装する方法と比較すれば、負荷は遥かに低くて済む。見た目の数を稼ぎたいときには有効な方法だと思う。