ささみ雑記帳

少し長くなりそうな色々を書き留めておくためのノート。

Unityのパーティクルで背景を描いてみた話

Unityのパーティクルで遊んでいたら、麦畑っぽい背景ができた。
せっかくなので、いつか使えるようにメモっておく。
20x20のクアッドに描画してるイメージで。

f:id:sasanon:20170930144211g:plain

準備

  1. プロジェクトを作成後、Main Cameraに付いてるCameraコンポーネントの設定を以下のように変えます。

    • Clear Flags : Solid Color
    • Background : 192,160,0
  2. 次にパーティクルシステムを生成。
    Position(0,0,0), Rotation(0,0,0), Scale(1,1,1)にします

パーティクルの詳細設定

Particle Systemコンポーネントを設定。

  • Looping : ON
  • Prewarm : ON
  • Start Lifetime : 2
  • Start Speed : 0
  • 3D Start Size : ON, (0.2, 2, 0.2)
  • MaxParticle : 2000
  • Emission
    • Rate over Time : 1000
  • Shape
    • Shape : Box
    • Scale : (20,20,0)
  • Color over Lifetime
    • Color :
      • Alpha(上側)
        • Location 0%:0
        • Location 50%:255
        • Location100%:0
      • Color(下側)
        • Location 0%:(255,224,0)
        • Location100%:(224,160,0)
  • Rotation over Lifetime
    • SeparateAxes : ON
  • Rotation over Lifetime
    • x : 0
    • y : 0
    • z : CurveでCos波のように設定

f:id:sasanon:20170930144054p:plain

雑に解説とか

  1. パーティクルだけど速度を0にして動かさず、その場でフェードイン~フェードアウトで消えるようにすることで、エフェクトというよりも背景に使えそうなものにもできます。パフォーマンスに注意ですが。

  2. 3D Start Sizeでパーティクルを縦長にすることで麦にしていますが、麦っぽさの表現としては、やはり揺れを表現するRotation over Lifetimeがポイント。パーティクル生存時間のちょうど半分を過ぎたタイミングで揺り戻し始めるよう、回転力を掛けています。

  3. Start Lifetimeで変化速度、EmissionのRate over Timeで麦パーティクル量を調整できます。 多くすると豪華ですが、パフォーマンスとの兼ね合いになるところ。 変更する場合、合わせてMaxParticleを変更する必要があります。

海にもアレンジしてみた

これ、いろいろ応用できそうじゃない?
横長にして青系に変えたら、海の波とかも描けそうじゃない?

よしやってみよう。さっきの設定を崩さずに、

  • 3D Start Size : ON, (2, 0.2, 0.2)

横長にして、

  • Color over Lifetime
    • Color :
      • Color(下側)
        • Location 0%:(64,64,255)
        • Location100%:(128,64,255)
  • CameraコンポーネントのBackground : (64,64,255)

青系。こうなった

f:id:sasanon:20170930150818g:plain

海だー!うーみー!
パーティクルさんと遊ぶといつも楽しい…!