【Unity】パーティクルにマスクをかけて表示範囲を制限する方法

2019.03.21 自習室 0

ここでは下の動画のように「扉の向こうにモヤモヤした光が広がっている」表現を実装したかったのですが、その際にパーティクルの表示範囲を扉型に制限する方法を使ったのでその方法を書き留めておきます。

モヤモヤドア

ちなみにこちらのゲームはUnity1weekという1週間ゲームジャムで作ったゲームを元にしています。実際の見え方を知りたい場合は以下のリンクからプレイできますので、試してみてください。

ゲームはこちらからプレイできます

環境

  • Unity 2018.3.6f1

このページの構成

ポイント

パーティクルを表示する

パーティクルにマスクをかける

参考記事

ポイント

UnityにはSpriteMaskというSpriteにマスクをかけて表示をコントロールする機能がある

SpriteMaskはパーティクルにも適用できる

使い方は以下の通り

① SpriteMaskコンポーネントをParticleSystemにつけて、Maskに使用するspriteを指定しておく

② ParticleSystemのRendererにあるMaskingから、①で指定したspriteの内側のみに表示するか外側のみに表示するか設定する

パーティクルを表示する

パーティクルの設定

まずは普通にパーティクルを作成します。
ヒエラルキービューから「Effects」-「Particle System」を選択してください。

ここでは以下のような感じでパーティクルを設定してみました。
変更したのは色とStart Life Time、Start Size、Max Particlesくらいです。

パーティクルの設定

表示は以下のようになっている状態です。

デフォルトパーティクル

パーティクルにマスクをかける

マスク用のspriteをセットする

先ほど作ったパーティクルにマスクをかけて、ドアの形の範囲内にのみパーティクルを表示するように変更していきます。

Particle Systemを選択し、Add ComponentからSprite Maskを選択してください。

spriteの欄に、パーティクル用のマスク画像を設定しておきます。ここでは「door2mask」という名前で以下の画像をセットしました。

マスク用画像

設定としてはこのような感じになっている状態です。

マスクのセッティング

パーティクルにマスクを適用する

先ほどセットしたマスク用画像の範囲にのみパーティクルが表示されるようにしていきます。

Particle Systemの「Renderer」に「Masking」という項目があるので、そこの値を「Visible Inside Mask」に変更してみてください。先ほど指定したマスク用画像の形にパーティクルの表示範囲が制限されると思います。

モヤモヤドア

ちなみに「Masking」の値を「Visible Outside Mask」に指定すると、マスク用画像の外側にのみ表示させることもできます。

モヤモヤドアのそと

参考記事


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です