Sabamirinのブログ

VRChatで役に立ちそうなことを書いていきたい

VRChatのアバターでお花を飛ばす話(パーティクル設定編)

何がしたいの

こういうのをつくります
f:id:Sabamirin:20181013173914g:plain
sisters.booth.pm
※モデルはいちごドラゴンちゃん(めちゃかわいい)改変ソーダドラゴンちゃんです

事前準備

パーティクルで飛ばす画像の設定

デフォルト設定では白いもやもやしか飛ばせないので飛ばしたい画像を作成する必要があります
(自分はとりあえずいらすとやからもってきました)

作成した画像を適当なフォルダにインポートします
f:id:Sabamirin:20181013174754p:plain

空のマテリアルを作成します
f:id:Sabamirin:20181013175738p:plain

作成したマテリアルに画像をテクスチャとして貼り付けます
ここでは透過pngを使いたいのでunlitのTransparentを設定しています
f:id:Sabamirin:20181013175829p:plain

ParticleSystemの作成

今回は頭から飛ばすのでアーマチュアのHeadの直下にParticleSystemを作成します
 f:id:Sabamirin:20181013180332p:plain
ParticleSystemを移動して頭の中心あたりにくるようにします
Scaleは0.2くらいでいいと思います
f:id:Sabamirin:20181013181012p:plain

ParticleSystemのパラメータ設定

飛ばすパーティクルの要素として以下を設定します。

  • 画像を飛ばす
  • 数秒ごとにまとめて飛ばす、を繰り返す
  • だんだん減速するようにする
  • 縮小+回転しながら飛ばす
  • 消えるタイミングをバラバラにする
画像を飛ばす

f:id:Sabamirin:20181013181306p:plain
RendererのMaterialに先程作成したマテリアルを設定します
これで飛ぶパーティクルが作成した画像になります

放射状に飛ばす
  • ShapeをHemisphere(半球)に設定します
  • ParticleSystemのTransFormを調整して頭部にかぶるように調整します

f:id:Sabamirin:20181013191241p:plain

消えるタイミングをランダムにする/ループさせる

f:id:Sabamirin:20181013192638p:plain

  • Durationに1ループの秒数を設定します
    • 上の場合は3秒
  • Start Delayを0に設定してすぐに発動するようにします
  • Start LifeTimeは右の▼からRandom Between Two Constantsを選択して、1と2を入力します
    • Start LifeTimeはパーティクルの残存時間なので、ここをランダムにすることによって消えるまでの時間をバラバラにすることができます
一度に複数飛ばす

f:id:Sabamirin:20181013191042p:plain
Burstsにイベントを追加することで一度に飛ばすような動きができます

  • Burstsのイベント以外でパーティクルを放出しないようRate over Timeには0を設定します
  • Burstのイベントを追加します
    • Min=4 Max=8を設定し、4~8個ランダムに飛ぶようにします
    • Count=1を設定し、1回だけ飛ばすようにします
    • timeは発動するタイミング、intervalは生成の間隔となりますがCount=1なので結果的に1ループ1度のみ発射されます
だんだん減速する

f:id:Sabamirin:20181013192956p:plain

  • Speedに右の▼からCurveを設定
  • 下ウィンドウで設定した曲線通りの速度に補正されます
  • Dampenの数値が1に近いほど強く補正されます
    • じんわり減速したい場合は上の画像を参考にしてください
だんだん縮小する

f:id:Sabamirin:20181013193618p:plain

  • 下ウィンドウで設定した曲線通りのサイズに拡大縮小されます
    • 今回は等倍から開始して消える瞬間に半分になるよう設定しています
回転させる

f:id:Sabamirin:20181013193248p:plain

  • Angular Velocityに右の▼からRandom Between Two Constantsを設定
  • 2つの数値の回転角の間でランダムに回転します
    • 今回は逆回転も混ぜたいので-180度~180で設定しています

調整する

ここまで設定すればだいたいいい感じになっているかと思います
あとは各自で速度や個数、間隔を調整してみてください
いっぱいパーティクルがあると重いのでほどほどに!

アニメーションオーバーライドに設定する

ここまでパラメータを設定しましたが、このままでは常に表示されてしまいます。
笑顔のときだけ表示する設定を次の記事で解説します。
sabamirin.hatenablog.com