Unity 乱れ斬りパーティクル。
高速で斬撃を繰り返すパーティクル。
関連ページ
斬撃パーティクルを新しく作りました。けっこうカッコ良いのが出来たのと思うの共有します。

乱れ斬りパーティクルの概要
四方八方から連続で10回、素早い斬撃モーションが発生します。
UnityPackageとして
こちら
にファイルをまとめてアップロードしました。
展開するとProject内の
Assets/Effects/U0063
内に以下のようなファイル群が追加されるはずです。

パーティクル設定の解説
今回のパーティクルは以下の5つのParticleSystemを利用しています。
SlashはJaggedRadiationInをJaggedRadiatioOutを
SubEmitters
に指定しています。
このためJaggedRadiationInとJaggedRadiationOutの発生座標と発生タイミングはSlashと同期します。
同様にJaggedRadiationInはShineRoundとFireworkを
SubEmitters
に指定しています。
このためShineRoundとFireworkの発生座標と発生タイミングはJaggedRadiationInと同期します。
Mainモジュール
でランダム性を持たせていて、Lifetimeは0.1秒から0.2秒に、また斬撃のスピードは-13から-15にしてあります。
パーティクルは通常、内から外に向かって発散します。
しかし今回のようにStartSpeedにマイナスを指定することで、逆に外から内に収束する動きになります。
Emissionモジュール
ではCyclesに10を指定することで、斬撃を10回繰り返す演出にしています。
またIntervalに0.1を指定しているので、斬撃と次の斬撃が発生するまでの間隔は0.1秒です。
Shapeモジュール
ではまずShapeをCircleにしてパーティクルの生成座標の揺らぎをx軸とy軸に限定しています。
さらにRadiusに0.5、Radius Thicknessに0を指定しているので、パーティクルの生成位置は半径0.5の円の外周のいずれかになります。
ただしRomdamize Positionに0.5を指定しているので、最終的にはその円の外周から0~0.5ズレた何処かの座標に生成位置がずれます。
生成位置と同時にパーティクルの通過点も中心からズレるので、この結果乱れ斬り感が演出できます。
もしRondamize Positionを0にした場合、白刃が必ずパーティクルの中心点に向かうようになり、乱れ斬り感は無くなりますが達人感が出ます。
Limit Velocity over Lifetimeモジュール
でLifetimeの後半にいくほどパーティクルの速度を減少させています。
太刀筋は初速が一番早くて、インパクトを経て後半に向かうとやや減速するイメージです。
尤もこのパーティクルはLifetimeが短すぎるので、これをOnにしてもOffにしても差はかなり分かり辛いと思います。
Size over Lifetimeモジュール
で白刃のx, y軸のサイズに対して経過時間ごとに変化を与えています。
x軸(白刃の幅)に関しては生成直後時が最大で、終わりに向かってどんどん小さくなっていきます。
y軸(白刃の長さ)に関しては、Lifetimeの進行度の5割の辺りで最大化するように、山なりに変化します。
このSlashパーティクルに割り当てている画像は本来はただの正円です。
しかし
Rendererモジュール
でStretched Billboardを選択し、Length Scaleを10にすることで、かなり長い楕円にしています。
Mainモジュール
のStart Delayでパーティクルの発生タイミングに揺らぎを与えています。
SubEmitters
でSlashと紐づいているので、Slashが発生してから0~0.05秒後にこのJaggedRadiationInが生成されます。
またLifetimeには0.15秒に設定してます。
3D Start Sizeで、生成するパーティクルのx軸を1~1.5倍に引き伸ばしています。
Start Rotationでは、パーティクル発生時に0°から360°の範囲でランダムに回転を与えています。
回転軸はz軸(画面に対して時計回り/反時計回り)です。
Color over Lifetimeモジュール
で、最終的に画像が透明になる設定をしています。
進行70%の段階でアルファ=180にしてるので、後半にかけて急激に薄くなっていきます。
Size over Lifetimeモジュール
で、最初はサイズ0にして、Lifetimeの終わりにサイズが最大化するように調整しています。
SubEmitters
でJaggedRadiationInと紐づいているため、JaggedRadiationInの発生と同時にこのShineRoundが生成されます。
Mainモジュール
でLifetimeを0.15秒に設定してます。
Size over Lifetimeモジュール
で、発生時のサイズを最大にして、Lifetimeの終わりにサイズが0になるように調整しています。
SubEmitters
でJaggedRadiationInと紐づいているため、JaggedRadiationInの発生と同時にこのFireworkが生成されます。
Mainモジュール
で細かくランダム性を与えています。
Lifetimeは0.1秒から0.15秒の間で、飛沫スピードは3から10の間、粒子サイズは0.02から0.04の間です。
また粒子の色はオレンジ、黄色、白からランダムで選択されます。
Emissionモジュール
で、1回の発生タイミングにつき3つ同時にパーティクルを生成させています。
Shapeモジュール
で、JaggedRadiationInの発生座標から半径0~0.2ずれた座標にFireworkを発生させています。
Color over Lifetimeモジュール
で、Lifetimeの終わりに向けて透明になるように設定しています。
Size over Lifetimeモジュール
では、サイズ0から進行10%の段階で急激に最大化し、その後徐々に小さくなるように設定しています。
Slashと同様に、
Rendererモジュール
でStretched Billboardを選択し、Length Scaleを3にすることで画像を楕円にしています。
ほとんどJaggedRadiationInと設定は同じですが、
Mainモジュール
の値だけわずかに違います。
3D Start Sizeで、生成するパーティクルのx軸を2~2.5倍に引き伸ばしています。
0
0