はじめに
前回は、重力を操って「煙」を空へ昇らせました。
今回は、その逆です。
重力に従って落下したエフェクトが、地面にぶつかって「ポーン!」と跳ね返る。
そんな物理現象をシミュレートしてみましょう。
これができると、キャラクターが歩いた時の土埃、壊れた壺から飛び散る破片、そして今回作る「大量のスーパーボール」など、世界の実在感がグッと増しますよ。
ステップ0:衝突の準備(マテリアルと地面)
今回も、まずは見た目を決めるマテリアル作りから始めます。
-
マテリアルの作成:
-
『Project』ウィンドウで右クリックし、『Create』>『Material』を選択。名前は “M_Ball” とします。
-
インスペクターの『Shader』を “Universal Render Pipeline/Particles/Unlit” に設定します。
-
“Surface Type” は “Opaque”(不透明)のままで大丈夫です。
-
“Base Map” の色を、好きな色(例えば明るい青)に変えてみましょう。これでカラフルなボールになります。
-
-
地面の用意:
-
衝突するためには、ぶつかる相手が必要です。
-
ヒエラルキー上で右クリックし、『3D Object』 > 『Plane』 を作成してください。これがボールを受け止める床になります。
-
ステップ1:ボールを発生させて落とす
準備ができたら、エフェクト本体を作ります。
-
ヒエラルキー上で右クリックし、『Effects』 > 『Particle System』 を作成。
-
インスペクター一番下の “Renderer” モジュールを開き、 “Material” に先ほど作った “M_Ball” を設定します。
-
今回はボールなので、少し大きさを変えましょう。メイン設定(一番上のタブ)にある “Start Size” を “0.5” くらいに設定します。
-
このままでは空中に浮いているだけなので、重力を与えます。 “Gravity Modifier” を “1” に設定してください。
これで、青いボールがボトボトと下に落ちていくようになりました。
でも、今はまだ床(Plane)をすり抜けてしまっていますね。
ステップ2:世界と衝突させる “Collision”
いよいよ今回の主役、 “Collision”(衝突)モジュールの出番です。
-
“Collision” モジュールにチェックを入れてください。
-
一番上の “Type” が “Planes” になっている場合、これを “World” に変更します。
見てください! さっきまで床をすり抜けていたボールが、床の上でピタッと止まりました!
“Type: World” に設定することで、エフェクトはゲーム世界にある「コライダー(衝突判定)」を持ったオブジェクトすべてと衝突するようになります。
ステップ3:スーパーボールのように跳ねさせる “Bounce”
今は衝突した瞬間にエネルギーを失って止まっています。
これを、元気に跳ね返るように設定しましょう。
“Collision” モジュールの中にある “Bounce”(跳ね返り係数)という項目を探してください。
この数値を上げていくと、跳ね返る力が強くなります。
-
“0.5” くらいに設定してみましょう。
地面に当たって、半分くらいの高さまで跳ね返るようになりました。 -
これを “0.9” くらいまで上げると、まさにスーパーボール! 元気に飛び跳ねるようになります。
逆に “Dampen”(減衰)という数値を上げると、衝突した瞬間に勢いが殺され、ドサッと落ちるような表現になります。
今回は “0” のままで大丈夫です。
ステップ4:跳ねた後の「余韻」を作る
スーパーボールは元気に跳ねますが、永遠に跳ね続けるわけではありません。
何度か跳ねたら消えるように調整しましょう。
-
“Collision” モジュールの中にある “Lifetime Loss”(寿命の減少)を見てください。
-
ここの数値を少しだけ、例えば “0.2” にしてみましょう。
これは、何かに衝突するたびに、残りの寿命が20%ずつ削られていく、という設定です。
これにより、何度かバウンドしたボールから順に自然に消えていくようになります。 -
最後に、消え際をきれいにします。(復習ですね!)
“Color over Lifetime” にチェックを入れ、グラデーションの右端(消える瞬間)の透明度(Alpha)を “0” に設定しましょう。
おわりに
いかがでしたか?
ただ落ちていくだけだった粒が、床と衝突し、跳ね返ることで、まるで意志を持った物体のように見えてきました。
“Collision” は少し処理負荷が高い機能ですが、その分、画面に与えるインパクトは絶大です。
雨粒が地面で跳ねる表現や、爆発で岩が飛び散る表現など、使い方は無限大です。
ぜひ色々な設定を試してみてください。
次回は、動きのあるエフェクトの代表格、「弾丸の軌跡(Trail)」に挑戦します。
