![見出し画像](https://assets.st-note.com/production/uploads/images/130811413/rectangle_large_type_2_c5e95060b4e6a81dd1bcb7dd15d0003e.png?width=1200)
UnityCreativeCore⑤VFXについて
UnityCreativeCoreを学習しています。
長い戦いですが、今回はVFXについて。
まとめはこちら
VFXとは
VFXは「Visual Effects(ビジュアル・エフェクツ)」の略称です。
このUnityの学習では、以下の二つのツールの使い方を学びます。
・パーティクルシステム
・VFXグラフ
ゲームにおけるVFXには二つの分類があります
・環境エフェクト
砂嵐や水面、風や太陽などの環境エフェクト。
・ゲームプレイエフェクト
インタラクティブの意識づけを狙うエフェクト。道やアイテムが光ったり、選択しているときに光ったり。
Unity外にもさまざまなツールがあり、それを取り込むことでよりリッチなゲームが作成できる。
Photoshopなどの 2D 画像編集ソフトウェア
Mayaなどの 3D モデリングおよびアニメーション ソフトウェア
Houdiniなど、流体や粒子などの手続き型シミュレーションに特化したソフトウェア
VFXグラフはちょっと難しいが、とても良いのでぜひ使ってください。
とのこと。
サンプルをチェックしよう
![](https://assets.st-note.com/img/1707961644183-hOYSGsyTOp.png)
火は VFX アーティストにとって非常に一般的なエフェクトなので、始めるのに最適です。
そうですね、炎のひとつも作れなければ、Unity使えるとは言えまい。そんなことはないか。
![](https://assets.st-note.com/img/1707962082945-arwD6CyaKC.png)
![](https://assets.st-note.com/img/1707962141236-SiZ9xv3XHN.png)
![](https://assets.st-note.com/img/1707962231645-LXgwxNdp0k.png)
![](https://assets.st-note.com/img/1707962346788-c9uNEY7tpv.png)
![](https://assets.st-note.com/img/1707963371298-gTOnq4112a.png)
じゃあこれで作ってね、と言われて作れるようなものではないだろう・・・けど、作れるんですね!続きが楽しみです。
火花を散らそう
では、炎の中に火花が飛んでいるエフェクトを、その中にすでに作っているので、活性していきましょう。
![](https://assets.st-note.com/img/1707964115477-W3hm2jeU78.png)
インスペクターでポチっとするだけですよね
![](https://assets.st-note.com/img/1707964216431-CpEutpBkvr.png)
だけでは炎は出ない。「再起動」も押下するのだ
![](https://assets.st-note.com/img/1707964291971-4LoLB8DpcX.png?width=1200)
![](https://assets.st-note.com/img/1707964357311-6ARyLBEO10.png)
パーティクルシステムを変更するには、そのモジュールを有効にしている必要があります
VFX_Sparksを変更しますが・・・インスペクターで現在有効になっているモジュールは[Emission][Shape][Renderer]のみですね。
![](https://assets.st-note.com/img/1707964577421-ASB6Su5WAG.png)
Emissionというのは光を発することと、放出という意味もある
ニュアンスは色々あるかもしれませんが、和訳で[放出]とあるのが嫌ならば、環境の文字を英語に戻しましょう。
編集→環境設定→言語で、変更することができます。
学習の理解速度のために日本語メニューにしていますが、英語に慣れている方は英語のままの方が良いのでしょう。
時間の経過とともに火花の色を変化させるには、Color over Lifetimeモジュールを有効にして展開します
時間の経過とともに火花のサイズを変更するには、Size over Lifetimeモジュールを有効にして拡張します。
火花が上向きに浮き上がりながらランダムに揺れるようにするには、ノイズモジュールを有効にします。
モジュールを有効または無効にしてその効果を確認しましょう。
Emission モジュールのRate Over Timeプロパティを増減します。
Color over Lifetime モジュールでColorプロパティを編集する
いろいろと、変更を試してみたいけど、壊したらいけませんね。
なので、ヒエラルキー内でコピーして、わかりやすい名前をつけ、編集中以外のものは非アクティブにする。そういったかたちで、別の表現の炎を作っていきましょう。
![](https://assets.st-note.com/img/1707965665055-1GdW2jeOpT.png)
さまざまな炎を作ろう
![](https://assets.st-note.com/img/1707971330760-xE190tJdHz.png?width=1200)
炎表現をシェーダーでやるのか、パーティクルでやるのかは、ゲームによるのでしょう。
環境を変えよう、雪を降らせよう
では雪を降らせます。
ヒエラルキーで右クリックし、 >エフェクト>パーティクル システムを選択します。
![](https://assets.st-note.com/img/1707972197613-UWPh6B6l6b.png)
FXはエフェクトの略称です。他によく目にする略語としては、Special Effects の略である SFX があります。取り組んでいる業界やプロジェクトの種類によっては、これらの名前のいずれかが他の名前よりもよく見られる場合があります。一般に、オブジェクトの名前で、それが実際にはパーティクル エフェクトであることを明確にすることをお勧めします。
雨や雪は上から下に降るので、PositionとRotationをかえましょう。
Position X=0、Y=10、Z=0
Rotation X=90、Y=0、Z=0
なんか降ってきた! ポジションはカメラの画角にあわせた感じですね。
![](https://assets.st-note.com/img/1707973306483-1L34Zwnt4F.png)
![](https://assets.st-note.com/img/1707973430586-IKsuOT0O5L.png)
メインモジュールを見てみましょう
![](https://assets.st-note.com/img/1707973541072-wdUAkLtmOo.png)
見落としがちですが、チェックボックスによって有無を切り替えたりできない、必須項目の設定をここで行います。
パーティクルのサイズを変更するには、小さな雨滴や雪片の場合、メイン モジュールの[開始サイズ]プロパティを 0.1 に下げます。
必要に応じて時間の経過とともにサイズを変更できるため、単に「サイズ」ではなく「開始サイズ」と呼ばれます。
![](https://assets.st-note.com/img/1707973815717-cvq9f3pgUV.png?width=1200)
でも雪にしては速い。雨にしてはおっそい。
[開始速度]プロパティを 、雪なら5 から約 1 に減らし、
雨の場合は約 10 に増やします。
![](https://assets.st-note.com/img/1707974025528-5ne0ns2Fjw.png?width=1200)
この問題に対処するには、パーティクルの寿命を変更する必要があります。
[開始時の生存期間][Start Lifetime]プロパティを 5 秒から、パーティクルがカメラの視野内を移動するのにかかる時間まで増減します。粒子は地面まで到達するはずですが、それより遠くには到達しません。
雨なら1.5ほどに、雪なら13ほどに。
しかしですよ、開始時に雪が降るんでなく、開始時にはすでに降っててほしいんですよ。
そういうときは[prewarm][事前準備]をチェックしておきましょう。
![](https://assets.st-note.com/img/1707974797506-8aGFUNfzJf.png)
では最後に[Emission]と[Shape]。これがデフォルトで有効になっているので作業しましょう。デフォルトではこれにレンダラーが有効です。
日本語画面なら[放出]と[形状]です
Emissionモジュールは、エミッターから出てくるパーティクルの数を決定します。
Shapeモジュールは、エミッターのジオメトリとボリュームを決定します。
![](https://assets.st-note.com/img/1707975190661-Ttuncsdqtf.png)
![](https://assets.st-note.com/img/1707975387778-CyuElbh3fn.png)
Shapeモジュールではボックス全体の外側のシェルだけ、またはEdgeだけから放出するという設定もできます。今回はやりません。
Shape のScaleプロパティを X = 10、Y = 10、Z = 1 に変更してボックスを大きくすると、自然に、広い範囲で降ります。
![](https://assets.st-note.com/img/1707975868744-GFO3WKldqQ.png)
しかし、風雪の勢いが減りました。密度を上げましょう。
Emissionモジュールを展開し、生成しようとしている天候効果の強さに応じて、
Rate over Timeプロパティを 10 から 1 秒あたり 150 ~ 1000 個のパーティクルの数まで増やします。
![](https://assets.st-note.com/img/1707975955229-yek9IlqHw2.png)
![](https://assets.st-note.com/img/1707976922815-VxZiEUV34n.png)
![](https://assets.st-note.com/img/1707976875122-KPCTCWwqLW.png)
なるほどなあ。
![](https://assets.st-note.com/img/1707976970060-5cGIHIX3se.png)
え、限界なんて不要です。私はもっと雪を降らせたいのです。
メイン モジュールで、[Max Particles]プロパティを 1,000 から 10,000 に増やします。
![](https://assets.st-note.com/img/1707977111513-cbA5rhYhAc.png)
![](https://assets.st-note.com/img/1707977151734-bRQCpcDx4o.png)
![](https://assets.st-note.com/img/1707977169569-DbQnLR3wpJ.png)
![](https://assets.st-note.com/img/1707977229874-7yEtC3UXCN.png)
![](https://assets.st-note.com/img/1707977268716-E8gLPll4cn.png)
![](https://assets.st-note.com/img/1707977343103-ZeRWEW2IqY.png)
こういった知識も大切ですよね。
しかしUnityは言います。
この時点で、世界がこれまで見た中で最もクレイジーな気象現象を作り出すために、放出レートと最大パーティクルの制限を 1,000,000 まで上げたくなるでしょう。その誘惑に抵抗してください! VFX アーティストの仕事の大部分は、エフェクトが最適化されていることを確認することであり、非常に多くのパーティクルを追加すると、アプリのパフォーマンスが低下する可能性があります。
そう。目的を見失ってはならないのである。
雨や雪をキレイに[Renderer]
現状は雪といえどもただのホワホワ。雪と言うのは結晶であるし、雨というのは雫なのだ。
Rendereをひらきましょう
Materialが用意されているので、雨にも雪にもMaterialを当てましょう
![](https://assets.st-note.com/img/1707978045819-DOMxgNGP7q.png)
![](https://assets.st-note.com/img/1707978122523-quM6je7tdC.png)
![](https://assets.st-note.com/img/1707978168863-YxnCR5nsoc.png)
![](https://assets.st-note.com/img/1707978283853-dyS36qgONj.png)
プレハブ化
![](https://assets.st-note.com/img/1707978345969-0nbPWMH27U.png)
プレハブバリアントの機能を使って、様々な天候に変化できます
![](https://assets.st-note.com/img/1707979055550-oIAMRmWkzR.png)
![](https://assets.st-note.com/img/1707978505294-iOkD3Of2Wb.png)
好きな方を使いましょう。
ユーザー操作で現れるバーストパーティクル
新しいパーティクルを右クリックから作成し、名前を
[FX_SmokeBurst]にするのだ。
位置を変更:X=0,Y=0.5,Z=0
回転を変更:X=-90,Y=0,Z=0
このあたりを最初にやると作業しやすいのだ。
![](https://assets.st-note.com/img/1708058189823-OHcjx3nPuR.png)
![](https://assets.st-note.com/img/1708058240741-6y49FCgWNU.png)
Duration(持続時間)を低くして(0.05くらい)
Rate over Time(時間ごとの率)を多くするのだ。(1000)くらい
![](https://assets.st-note.com/img/1708058452453-jOkfm7prmD.png)
![](https://assets.st-note.com/img/1708059944094-6MUFAhJYos.png)
![](https://assets.st-note.com/img/1708058590137-THSLMMuHya.png)
![](https://assets.st-note.com/img/1708059999052-q2yHlW95rM.png)
0 秒 ( Time ) で、バーストは100% の確率 ( Probability ) で 30 個のパーティクル ( Count ) を 1 回 ( Cycles )出したいと、設定していた。(これがデフォルト)
バースト サイクルが 1 つしかないため、Interval 値は無関係です。
煙なので、ゆっくり立ち上るように
[開始速度]プロパティを約 0.3 秒に下げます。
![](https://assets.st-note.com/img/1708060143136-YvR2OxYZyr.png)
メイン モジュールで、バーストを持続させたい時間に応じて、
Start Lifetime[開始時の生存時間]を約 1.0 秒の値に減らします。
しかし、円状に上がるのも変(こういう表現が必要なこともあるが)
なので、Shape(形状)のエミッタ形状をCone (円錐)からSphere(スフィア)に変更・・・Radius(半径)を約 0.5 の値に変更します
![](https://assets.st-note.com/img/1708060442609-dpMMAaDYT5.png)
いいけど、いいけどこんなに、均一に消えますかね?ランダムに消えたらいいじゃないですか?
![](https://assets.st-note.com/img/1708060740151-Cc09hfBj3Z.png)
![](https://assets.st-note.com/img/1708060896239-sELAjKXbGP.png)
より自然なランダム性をシミュレートするには、Start Speed [開始時の速度]などの他の値に対してこのプロセスを繰り返すことができます。
色を変えましょう
Color over Lifetime[開始時の色]プロパティの作業をします
前回もこの色編集ツールが出ましたがスルーされていたのでありがたいですね。Gradient Editorウィンドウです。
![](https://assets.st-note.com/img/1708061386758-YWOnebdij3.png)
![](https://assets.st-note.com/img/1708061402379-kVuzTj5XxA.png)
この水平バーは、バーの左側から始まり右側で終わる、パーティクルの存続期間中の色と透明度のレベルを表します。したがって、デフォルトでは、パーティクルはその存続期間全体にわたって白く不透明になります。このグラデーション エディタを使用すると、以下の例のように、青とオレンジにフェードインしたりフェードアウトしたりする、無制限の色と不透明度の状態を介してパーティクルを遷移させることができます。
水平バーの上のマーカーのセットは時間の経過に伴う透明度を指定し、カラー バーの下のマーカーのセットは色を指定するため、透明度と色を個別に制御できます。
現時点では、パーティクルがその開始時にフェードインし、最後にフェードアウトするようにしたいだけです。
パーティクルをフェードインするには、左上のマーカーを選択し、アルファ値 (不透明度) を 0 まで下までドラッグします。
![](https://assets.st-note.com/img/1708061542255-zy8wV5cfqU.png)
スっとフェードイン、ゆっくりフェードアウトなので以下の状態にしよう
![](https://assets.st-note.com/img/1708061742867-i3jaTNwyfu.png)
パーティクルはそんなもんで、煙にテクスチャをつけましょう。
![](https://assets.st-note.com/img/1708061886119-rNxUsMF12K.png)
テクスチャ シートを使用して、パラパラマンガを作れますが、今回はランダムに起用します。
4つのテクスチャが一緒になっているマテリアルをそのままあてて実行すると
![](https://assets.st-note.com/img/1708062197975-MfF72DZrx3.png)
![](https://assets.st-note.com/img/1708062248479-w1N254CCfS.png)
この問題を解決するには、テクスチャ シート アニメーションモジュールを有効にする必要があります。
X =2 Y = 2にしましょう
![](https://assets.st-note.com/img/1708063382413-Jr674PoRFQ.png)
再生してみると、1枚だけが出る
![](https://assets.st-note.com/img/1708063440073-TVHLSzHKHN.png)
順に出すのも悪くないが、Start Frame[開始フレーム] を[2 つの定数の間でランダム]に変更し、開始フレームと終了フレームをそれぞれ 0 と 3 に設定します。これにより、0、1、2、3 の番号が付けられた開始フレームがランダムに選択されます。
![](https://assets.st-note.com/img/1708063602870-yghq3LNw61.png)
さらに、今回はパラパラ漫画ではないのでサイクル0にします。
![](https://assets.st-note.com/img/1708063917020-31ovELdJww.png)
![](https://assets.st-note.com/img/1708063946217-Y36Dcfpm6N.png)
パーティクルのサイズを変更していこう
パーティクルが出現するとサイズが大きくなり、消えると縮小します。これにより、より爆発的でダイナミックな印象になります。
なるほど、さっそくやっていきましょう。
生存期間のサイズ[Size Over Lifetime] モジュールを有効にし、それを選択して展開します。[サイズ]プロパティのドロップダウンで、 [カーブ]が選択されていることがわかります。
![](https://assets.st-note.com/img/1708064289607-3urBspB5zy.png)
パーティクルシステムカーブのグラフでは、時間 (0 ~ 1) が下の X 軸に沿って示され、サイズ (0 ~ 1) が左の Y 軸に沿って示されます。
表示されていない方は、下の方にありますので。
水平軸が時間で、垂直軸がサイズです
![](https://assets.st-note.com/img/1708064409460-KKsmF0Xpp6.png)
![](https://assets.st-note.com/img/1708064505419-uHXUa7v09q.png)
![](https://assets.st-note.com/img/1708064545257-jxlnSCXKBG.png)
終端ハンドルをいじって。こんなカーブにする。バッフンときえる。
![](https://assets.st-note.com/img/1708064592854-pWCll75gOc.png?width=1200)
トリガーを作る
![](https://assets.st-note.com/img/1708064825575-N6YrRGp6kq.png)
モークバーストのメインモジュールで
[Play on Awake][ゲーム開始時に再生]を無効にしておき、実行を待ちます。
![](https://assets.st-note.com/img/1708064956798-fjkE9tihAk.png)
![](https://assets.st-note.com/img/1708065045973-qYSFHTGeeR.png)
どこで変更できるんだろう?困りましたね。
![](https://assets.st-note.com/img/1708132440191-JBDZBZWXUT.png)
プレハブに適用、親のオーバーライドに適用などをためす
各自に適用する方を選ぶことで、別々に実行できる。
無事にできました。
![](https://assets.st-note.com/img/1708133066270-EKn5576IZZ.png)
ではスクリプトを、どこか編集しやすいところにアタッチして・・・
![](https://assets.st-note.com/img/1708133287369-R3OPQF9mbs.png)
素直に言われたようにやろう。
![](https://assets.st-note.com/img/1708133653412-IU8GHSL6lg.png)
![](https://assets.st-note.com/img/1708133770805-XDt3CWtRb2.png?width=1200)
スクリプト内容は以下
public class ToggleFireParticle : MonoBehaviour
{
//キーはインスペクタで変更できるようにしたいが、デフォルトはSpace
//これは良いプラクティスです
public KeyCode toggleKey = KeyCode.Space;
private ParticleSystem fireParticle;//使用コンポーネントの宣言
public ParticleSystem igniteParticle;//炎パーティクル
public ParticleSystem extinguishParticle;//消火パーティクル
public GameObject pointLight;//ライト
bool isPlaying = true;//炎がついているかどうか
private void Start()
{
fireParticle = GetComponent<ParticleSystem>();
}
void Update()
{
if (Input.GetKeyDown(toggleKey))
{
if(isPlaying)
{
//particleに対しては、Stop Playのメソッドで停止再生させる。
fireParticle.Stop();
pointLight.SetActive(false);
if (extinguishParticle != null)
extinguishParticle.Play();
isPlaying = false;
}
else
{
fireParticle.Play();
pointLight.SetActive(true);
if (igniteParticle != null)
igniteParticle.Play();
isPlaying = true;
}
}
}
}
サブエミッター
パーティクル内にさらにパーティクルを入れる
サブエミッターをトリガーするには、次の条件を使用できます。
Birth(発生): パーティクルが作成されたとき。
Collision(衝突): パーティクルがオブジェクトと衝突するとき。
Death(消滅): パーティクルが破壊されたとき。
Trigger(トリガー): パーティクルがトリガーコライダーと相互作用するとき。
Manual(手動): スクリプトを通してリクエストされたときのみ送信されます
![](https://assets.st-note.com/img/1708139339087-Mdx0KjVbhp.png?width=1200)
しかし、思うようには、なかなか出ないものです。試行錯誤が必要ですね。
VFXグラフを使用する
VFX グラフは、ユーザーが高度に最適化された信じられないほど複雑なエフェクトやシミュレーションを作成できる強力な機能です。
張り切っていきましょう
VFX グラフの利点
VFX グラフは数百万のパーティクルを同時に処理できますが、パーティクル システムは数千しか処理できません。
VFX グラフは、下に示す魔神のような、パーティクル システムを使用した場合には実現不可能な、より複雑なシミュレーションを生成できます。
![](https://assets.st-note.com/img/1708306179649-eK8w8a3VvH.png)
VFXグラフの欠点
VFX グラフは、パーティクル システムよりも初心者にとって学ぶのが少し難しいです。
VFX グラフにはパーティクル システムよりも厳しいハードウェア要件があるため、特定のターゲット デバイスでは正常に実行できません。
VFX Graph は GPU で実行され、Unity の物理計算は CPU で実行されるため、VFX Graph パーティクルはアプリの残りの物理演算と相互作用することができません (地面との衝突など)。パーティクル システムは CPU 上で実行されるため、他の物理ベースのコンポーネントと対話できます。
つまり、シェーダーグラフと違って、必ずしもVFX Graphが上位であるとばかりもいえない。
では、VFX グラフとパーティクル システムのどちらを使用するかをどのように選択すればよいでしょうか?
かなり経験があり、非常に複雑なものや数百万のパーティクルを必要とするものを作成したい場合は、VFX グラフを使用するとよいでしょう。
専門家ではなく、単純なもの、すべてのデバイスで実行できるもの、またはシーン内の他の物理ベースのオブジェクトと相互作用できるものを作成したい場合は、パーティクル システムを使用します。
例えば、シーンに降る雨などは、物理演算不要なので、VFXグラフでより良いものを作った方がよいといえそうです。
ふたたび天候を操作しましょう
![](https://assets.st-note.com/img/1708306653640-XdYrN1xI6e.png?width=1200)
![](https://assets.st-note.com/img/1708306718209-0mOe3MnuRR.png?width=1200)
サンプルでもらった有用なアセットは手元にも残しておくべきだろう。アセットの管理方法も検討を始めるべきだ。
![](https://assets.st-note.com/img/1708307503000-XUc0Vp2Y2m.png?width=1200)
編集画面ですので、レイアウトを調整しましょう。
![](https://assets.st-note.com/img/1708309171198-DMjyro7voX.png?width=1200)
プロジェクトウィンドウのアイコンは、Ctrl+マウスホイールでサイズを変えられます。
![](https://assets.st-note.com/img/1708309294168-5vdNt18DMc.png)
レイアウトに満足したら、レイアウトを保存しておきましょう。
![](https://assets.st-note.com/img/1708309709121-8AibgjsX8B.png)
画面の操作はシェーダーグラフと似ています。迷子になったら
Aキーでwindowにあわせる。全体を表示してくれます。
デフォルトの4つのノードは「コンテキストノード」です。
![](https://assets.st-note.com/img/1708309951505-1v62aux8tK.png)
上からいきましょう一番上はスポーンコンテキスト。
ノードを選択してFキーを押すと、見やすくアップに。
![](https://assets.st-note.com/img/1708310053108-siAEnzodL8.png)
Spaceキーでノードの追加を行い、Rateの変更を入力することもできる。
デフォルトでは、新しいVFX Graphは一定のスポーン率を使用しますが、煙のバーストエフェクトと同様に、変数、周期的、またはパーティクルのバーストを設定することができます。"Rate"プロパティを調整して、VFX Graph版のエフェクトが元のパーティクルシステムのエフェクトと一致するようにします。スポーン率を非常に高い値に増やしても、フレームレートにほとんど影響がありません。
言っている意味がよくわからないが、デフォルトでは一定の周期でスポーンするようになっている。とだけわかっていればいいだろうか
次はInitialize Particleのコンテキスト
Initialize Particle コンテキストは、パーティクルが最初に表示される場所と方法を制御します。これには、パーティクルの初期サイズ、形状、速度、寿命、最大容量など、パーティクル システムのメイン モジュールと同じプロパティの多くが含まれます。これには、パーティクルが生成されるボリュームを定義するShapeモジュールと同等の機能も含まれています。
![](https://assets.st-note.com/img/1708311069023-aF5d51OcWL.png)
Update Particleのコンテキスト
パーティクルが生成された瞬間から消滅(消滅)する瞬間までのパーティクルへの変更を制御します。これによりパーティクルが更新され、各フレームが実行されます。これには、パーティクル システムのカラー オーバー ライフタイム、サイズ オーバー ライフタイム、ノイズ (VFX グラフでは乱流と呼ばれます)、およびテクスチャ シート アニメーション (VFX グラフではフリップブック プレーヤーと呼ばれます) に似たプロパティが含まれます。
![](https://assets.st-note.com/img/1708311192869-PuaAabLjJK.png)
これらの動作はそれぞれ、コンテキスト内の新しいブロックとして追加できます。たとえば、上のスクリーンショットでは、Turbulence(乱気流のこと)はブロックです。
ブロックを追加してみましょう。フィールドで右クリックすると、ノードの作成。日本語化していても、こういった中身は英語のままなのだ。がんばれ!
![](https://assets.st-note.com/img/1708315602663-gHs6341Cmm.png)
![](https://assets.st-note.com/img/1708315673098-XhyN4jsyXb.png)
![](https://assets.st-note.com/img/1708315714399-QSbMUJnep7.png)
attribute 属性
Collision 衝突
FlipBook パラパラ漫画
Force 力
Implicit 暗黙
Kill 殺す
Orientation オリエンテーション
Empty Subgraph Block (空のサブブロック)
中身も多すぎて手に負えないですね。困ったな。がんばって読みましょう。
Output Particle コンテキスト
出力パーティクルの設定。
レンダラーモジュールとよく似た、各パーティクルの外観を制御します。
ここで、マテリアルを割り当てるなど行います。
![](https://assets.st-note.com/img/1708311347822-k8hRJkxusC.png)
パーティクルシステムで実現したものと同等、あるいはそれよりリッチな天候ができたことでしょう。
と、CreativeCoreは言いますが、どうでしょうか。
最初からVFXグラフを作りましょう
プロジェクトウィンドウで右クリック
![](https://assets.st-note.com/img/1708316354501-n1Z5ZNH6YE.png?width=1200)
![](https://assets.st-note.com/img/1708316402436-XeGgaCqApj.png)
![](https://assets.st-note.com/img/1708316493365-MRTifWzDxW.png)
ダブルクリックして、デフォルトのVFXGraphを開き、いろいろと触ってみましょう。
と、CreativeCoreは言うが、velocityの項目だけでも頭をかかえますね。
別の参考資料が必要そうです。こんなの簡単だ?あなたは天才です。
SetAngularVelocityを入れてみましょう
とりあえずこれだけでも使えれば。
![](https://assets.st-note.com/img/1708317917096-RMAjtYD0OQ.png?width=1200)
パーティクルシステムのフワフワではこれは確かにできなかったかもしれない。
上級者のテクニックを学ぶ
パッケージマネージャから
Visual Effect Graphの[サンプル]を[インポート]することができるようです
![](https://assets.st-note.com/img/1708319262364-FeN1xbvzxD.png?width=1200)
![](https://assets.st-note.com/img/1708319318278-Wf39p4KlQq.png)
BonFireのVFXGraphを開きましょう
![](https://assets.st-note.com/img/1708319913010-ulM6fPr1MZ.png)
これらは、炎、煙、火花、という3つのサブグラフで構成されています
![](https://assets.st-note.com/img/1708319966836-iWOljM9PWz.png)
また、これらの VFX グラフが、メイン コンテキストに接続された小さなノードであるOperatorを利用していることもわかります。
![](https://assets.st-note.com/img/1708320192317-UXVbQHSDHf.png)
そういったかたちで、多くのサンプルを見ていきましょう。
Spaceshipのデモを見るのも良いようです。
サンプルリポジトリも有用です。
こういったかたちで、VFX Graphを、できるだけ、積極的に、使うと良いですよね。
次回もがんばりましょう。