どうも蒼水です。
今回は前回の記事で基本的なことを理解したであろうVertex Stream (Custom Data)を使用して実践的なエフェクトとしてよくある円形のモーショングラフィックスを作っていきます。
前回の記事はこちらからどうぞ。
atelier-aomi.hatenablog.com
実行環境:Unity6(6000.1.17f1)
今回の目的

今回は前回ざっくりと作っていたものをブラッシュアップして実際に使えそうなモーショングラフィックスのようなエフェクトをVertex Stream (Custom Data)を使用して作ることで実践的な制作手法を理解することを目的とします。
最終的には上動画のようなものを作ってみました。
エフェクト用メッシュの用意

今回のエフェクトには標準のBillboard(Quad)ではなく自作したメッシュを使用するエフェクトとなりますので、上画像のようなモデルを作成します。
テクスチャはAlpha Clippingの制御のための仕様でこのように作成しています。
Vertex Streamでクリッピングするしきい値を制御するためこのような作りになっています。
Rendererモジュールの設定

今回は自作のメッシュを使用するのでRender ModeをBillboradからMeshに切り替え、Meshesに先ほどのメッシュを参照させます。
次に前記事で説明した通りCustom Vertex Streamsにチェックを入れ、Custom1/2を追加しておきます。
Custom Dataの設定

本エフェクトはCircleMeshを2つで表現するエフェクトとして作成するのでそれぞれをCustom Dataを画像のように設定しました。
Custom1の方ではCustom1.xでAlpha Clippingをカーブで設定することでLifetimeの後半になるほど円の幅が細くなるように制御することができます。
なぜそうなるのかは以前Shader編で解説しているシェーダーを使用していますのでそちらを参考にしてください。
<リンク>
Size Over Litimeの設定

よくあるモーショングラフィックスでは円が広がりながら細くなって消えていくのでLifetimeが進むにつれて大きさが大きくなるようにするために上が像のように設定することで広がりながら消えていくような挙動を作成することができます。
最初の方で急激に大きくさせて、後半ほど緩やかにすることで緩急をつけたりすることもできます。こういった挙動のほうが見ていて気持ち良い挙動にできるのでオススメです。
Shapeの設定

これはちょっとおまけ的な話なのですが「常に一点から出したい」という場合、Shapeモジュールの設定でShapeをSphereにして、Radiusを0.0001といった極限まで小さくすることで常に同じ場所からエフェクトを出すことができます。これはあらゆるエフェクトで結構使うテクニックなので覚えておくと何かと使えるのでオススメしておきます。
おわりに

というわけでほか細かい設定は割愛しますがこのようにVertex Stream (Custom Data)を使用した実践的なエフェクトを作成することができました。
これはあくまで一例なのであらゆるエフェクト制作で使ってみてください!Vertex Streamは理解さえできれば神機能です。
本エフェクトはBOOTHで販売中です!
もしご興味ある方はぜひご購入をご検討ください!
商用利用・改変ご自由にどうぞ!色やサイズなどを調整してご利用ください!
atelier-aomi.booth.pm



































