VRChatのアバターでお花を飛ばす話(パーティクル設定編)
何がしたいの
こういうのをつくります
sisters.booth.pm
※モデルはいちごドラゴンちゃん(めちゃかわいい)改変ソーダドラゴンちゃんです
事前準備
パーティクルで飛ばす画像の設定
デフォルト設定では白いもやもやしか飛ばせないので飛ばしたい画像を作成する必要があります
(自分はとりあえずいらすとやからもってきました)
作成した画像を適当なフォルダにインポートします
空のマテリアルを作成します
作成したマテリアルに画像をテクスチャとして貼り付けます
ここでは透過pngを使いたいのでunlitのTransparentを設定しています
ParticleSystemの作成
今回は頭から飛ばすのでアーマチュアのHeadの直下にParticleSystemを作成します
ParticleSystemを移動して頭の中心あたりにくるようにします
Scaleは0.2くらいでいいと思います
ParticleSystemのパラメータ設定
飛ばすパーティクルの要素として以下を設定します。
- 画像を飛ばす
- 数秒ごとにまとめて飛ばす、を繰り返す
- だんだん減速するようにする
- 縮小+回転しながら飛ばす
- 消えるタイミングをバラバラにする
画像を飛ばす
RendererのMaterialに先程作成したマテリアルを設定します
これで飛ぶパーティクルが作成した画像になります
放射状に飛ばす
- ShapeをHemisphere(半球)に設定します
- ParticleSystemのTransFormを調整して頭部にかぶるように調整します
消えるタイミングをランダムにする/ループさせる
- Durationに1ループの秒数を設定します
- 上の場合は3秒
- Start Delayを0に設定してすぐに発動するようにします
- Start LifeTimeは右の▼からRandom Between Two Constantsを選択して、1と2を入力します
- Start LifeTimeはパーティクルの残存時間なので、ここをランダムにすることによって消えるまでの時間をバラバラにすることができます
一度に複数飛ばす
Burstsにイベントを追加することで一度に飛ばすような動きができます
- Burstsのイベント以外でパーティクルを放出しないようRate over Timeには0を設定します
- Burstのイベントを追加します
- Min=4 Max=8を設定し、4~8個ランダムに飛ぶようにします
- Count=1を設定し、1回だけ飛ばすようにします
- timeは発動するタイミング、intervalは生成の間隔となりますがCount=1なので結果的に1ループ1度のみ発射されます
だんだん減速する
- Speedに右の▼からCurveを設定
- 下ウィンドウで設定した曲線通りの速度に補正されます
- Dampenの数値が1に近いほど強く補正されます
- じんわり減速したい場合は上の画像を参考にしてください
だんだん縮小する
- 下ウィンドウで設定した曲線通りのサイズに拡大縮小されます
- 今回は等倍から開始して消える瞬間に半分になるよう設定しています
回転させる
- Angular Velocityに右の▼からRandom Between Two Constantsを設定
- 2つの数値の回転角の間でランダムに回転します
- 今回は逆回転も混ぜたいので-180度~180で設定しています
調整する
ここまで設定すればだいたいいい感じになっているかと思います
あとは各自で速度や個数、間隔を調整してみてください
いっぱいパーティクルがあると重いのでほどほどに!
アニメーションオーバーライドに設定する
ここまでパラメータを設定しましたが、このままでは常に表示されてしまいます。
笑顔のときだけ表示する設定を次の記事で解説します。
sabamirin.hatenablog.com