【Unity】VFXグラフで煙のエフェクトを作る

投稿者: | 2020-05-02

VFXグラフで煙のエフェクトを作ってみました。

煙の画像を作る

Photoshopで煙の画像を作ります。フィルター -> 描画 -> 雲模様 を使います。

レイヤー

この上にレイヤーを追加し、白黒のグラデーションで、中心が真っ白、縁が真っ黒になるように塗ります。

このレイヤーの描画モードを乗算にすると、縁の雲模様が消えて真っ黒になります。

さらにレベル調整したりライト・コントラストを変えてみましたが、必要ないかもしれません。

これらを統合した画像を、新規の透明なレイヤーのレイヤーマスクにコピーします。新規の透明なレイヤーは真っ白に塗ります。

すると、黒い部分が透明になります。これで煙の画像ができました。

VFXグラフで煙のエフェクトを作る

プロジェクトウィンドウ

Unityでこの画像をインポートして、新しくVisual Effect Graphを作ります。

ヒエラルキーウィンドウ

ヒエラルキーウィンドウには、Visual Effectを新規作成し、これにインスペクタでVisual Effect Graphをアタッチします。

VFXグラフを編集して煙を作ります。

Visual Effect Graph

上で作った煙の画像をランダムな角度で表示して、上昇するにつれてサイズが大きくなるようにしました。色も徐々に透明になっていくようにしました。

まず、Spawnコンテキストはデフォルトのままにして、InitializeコンテキストのSet Lifetime RandomのMaxの値を上げすぎないようにし、Set Angleブロックを追加して、ChannelsをZにします。

Angleにはランダムの角度を入れます。これで出現する煙の画像の角度がランダムになります。

そして、Quad OutputコンテキストのMain Textureに煙の画像を入れて、Set Size over LifeブロックのSizeのカーブを右肩上がりにして、時間経過とともにサイズが大きくなるようにします。

さらにColor / Alpha over Lifeブロックで、Alpha CompositionをOverwriteにして、Gradientの不透明度を使うようにします。

Gradientの右の欄をクリックして、Gradient Editorを開き、透明度が低めの値から0に進むように設定します。両端の不透明度を0にして、中間の不透明度も低くしています。

これで簡単に煙のエフェクトができました。

コメントを残す

メールアドレスが公開されることはありません。