渋谷ほととぎす通信

エンジニア社長によるUnityとAIのブログ & エンジニアの生存戦略

【Unity】Visual Effect Graphの必須設定項目

【Unity】Visual Effect Graphの必須設定項目

こんにちは、Unityエンジニアのオオバです。

Visual Effect GraphをインストールするとPreferencesに Visual Effectsという項目が並びます。

設定しておくべきものがあるため紹介します。

【Unity】Visual Effect Graphの必須設定項目_0

PreferencesのVsual Effect Graphで設定しておくべきもの

まずは結論からわかりやすく表にまとめました。

項目設定の可否
Experimental Operators/Blocks必ず設定するべき
Show Additional Debug info必ず設定するべき
Verbose Mode for compilation普段はOFF
Experimental shader externalization分からない
Force Compilation in Edition Mode普段はOFF

以下各項目の説明に移ります。

Unityエディタ上で表示されるツールチップ (各項目をマウスオーバーした時に表示されるテキスト) もセットで記載しています。

👉DOTweenの教科書を読んでUnityアニメーションをプログラミングしてみよう!

Experimental Operators/Blocksは設定するべき

When enabled, operators and blocks which are still in an experimental state become available to use within the Visual Effect Graph.

有効にすると、実験的な状態にある演算子やブロックがVisual Effect Graph内で使用できるようになります。

何が実験的なブロックなのか把握していませんが設定しておくべき理由の1つとしてはカスタムアトリビュートを使いためです。

カスタムアトリビュートについては以下の動画の13:38辺りで説明されています。

パーティクルエフェクトが超進化する! Visual Effect Graph の基礎と応用 - Unite Tokyo 2019 - YouTube

2つ目の理由はVisual Effect GraphでShaderGraphを使うためです。

【Unity】Visual Effect Graphの必須設定項目_1

設定しないと上のようにOutput Particleコンテキストの中でShaderGraphが設定できなくなります。

【Unity】Visual Effect Graphの必須設定項目_2

ShaderGraphを使って表現力を上げることが出来るため現状では Experimental Operators/Blocks は設定しておく一択です。

Show Additional Debug infoは設定するべき

When enabled, additional information becomes available in the inspector when selecting blocks, such as the attributes they use and their shader code.

ブロックを選択する際に、使用している属性やシェーダーコードなどの追加情報がインスペクタで利用できるようになります。

「このブロックはどんな処理をしているのか」 疑問に思った時に役立ちます。

【Unity】Visual Effect Graphの必須設定項目_3

例えばCaluculate Mass from VolumeブロックDensityがどういう計算をしているのか調べたくなったとします。

【Unity】Visual Effect Graphの必須設定項目_4

Show Additional Debug infoにチェックが入っていないとインスペクタ上では何も情報は表示されません。

Show Additional Debug infoにチェックを入れると

【Unity】Visual Effect Graphの必須設定項目_5

このようにComputed Source Codeに処理内容が表示されるようになります。

完全に理解することは難しいですが考えるきっかけになります。

よってShow Additional Debug infoにはチェックを入れておくべきと考えています。

Verbose Mode for compilationは基本OFF

When enabled, additional information about the data, expressions, and generated shaders is displayed in the console whenever a graph is compiled.

グラフがコンパイルされるたびにデータ、式、および生成されたシェーダーに関する追加情報がコンソールに表示されます。

どのようなコンピュートシェーダーがジェネレートされるのかを調べる際に役に立つと思います。

オオバ自身はまだ役に立った場面はありません。今後学習を重ねていく上で必要になる気はしています。ということで普段はOFFで良いという判断です。

Experimental shader externalizationは基本OFF

When enabled, the generated shaders are stored alongside the Visual Effect asset, enabling their c direct modification.

生成されたシェーダーは Visual Effect アセットと一緒に保存され直接変更できるようになると説明がありますが、挙動を把握できていないため「分からない」という判断です。

Enable Externalizing Shaders (for Debugging purposes) in the Visual Effect Graph Asset Inspector

公式マニュアルでも上記のように説明がありますが、、、よく分かりませんでした。

Force Compilation in Edition Modeは基本OFF

When enabled, the unoptimized edit version of the Visual Effect is compiled even when the effect is not being edited. Otherwise, an optimized runtime version is compiled.

以下公式マニュアルから引用

Disables Graph Optimization when Saving Assets (for Debug Purposes Only)

最適化を無効にしたコードが生成されます。

挙動的に何かおかしいときの調査用でしょう。ただ普段はOFFで良いかと思っています。

まとめ : 必ず設定しておくべきPreferencesのVisual Effectsの設定項目

まとめると、この2つにチェックを入れておけばよいという結論です。

  • Experimental Operators/Blocks
  • Show Additional Debug info

Visual Effect Graphはノードをつなぐだけでそれっぽくいい感じのエフェクトが作れて面白いです。

興味ある方は触ってみてください。

オススメ記事
検証環境
  • Unity2020.1.6f1
  • Visual Effect Graph v8.2.0
参考サイト