【Notch】AE＆C4Dユーザーが作るリアルタイムモーショングラフィックス #03 パーティクル編

#前回までのあらすじ
前回 https://qiita.com/Shuhei_Maeta/items/0eb447812a405d313aaf
初級編的な感じでインターフェイスと基本的なワークフローの流れをざっくり説明しました。
ノードの探し方と繋げ方、ポストFX、タイムライン制御、出力の概念が理解いただけたかと思います。

今回はグラフィッカーとしてはこれがないと始まらない**「パーティクル」**を解説します。

#Particularとの違い

Stardust派の人もいるかもしれませんがとりあえずParticularと比較してみます。
![PT6.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/243114/82557fda-7678-269a-dc8d-88359414feef.jpeg)

####結論からいうと一緒です！
若干要素のカテゴライズが違うけど一緒！
Particularでできる機能はほぼある上に**Notchでしかできない機能**がたくさんあります。
ついでにParticularだけでなくPlexusとNodesの表現もだいたい再現できます。

#NotchのPerticleの使い方

## ①最初にカメラの設定

まず「Null」ノードと「Camera」ノードを配置し、「Null」ノードへRootから繋ぎます。
次に「Null」から「Camera」へつなぎます。
この場合のNullはカメラコントロールの役割になります。

カメラの視点切り替えには３つ方法があります。
・キーボードの「1」～「0」で切り替え
・ビューポートの上にある数字のボタンで切り替え
・何もないところをクリックしRootそのものの設定を表示した後、「Current Camera」で任意のビューへ変更

まだ何も出してないので真っ黒ですがとりあえず**「Current Playing Camera」（キーボード&ボタンだと「0」）**にしておきます。
![PT3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/243114/8e79412e-6b0e-47d9-9dab-14320dd855c5.png)

## ②各種Particle構成ノードの配置

まず**「Particle Root」ノード**（Particleの親分的なもの）をRootから繋ぎます。配置すると爆弾みたいな丸い形になります。

次に「Particle Root」から各構成要素である**Emitter、Renderer、Affector、Shading**ノードを繋ぎます。
今回の例では「Primitive Emitter」、「Point Renderer」、「Velocity Affector」、「Life Colour Shading」を繋ぎます。

![PT1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/243114/283f7ab4-c6e4-402e-022e-433c516e7d57.png)

![PT2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/243114/297a30a8-c465-7742-d892-463fe61c31b2.png)

「Primitive Emitter」・・・プリミティブオブジェクトをエミッターにする（そのままですね）
「Point Renderer」・・・ポイント単位で描画する。最も一般的な表現。任意の画像や動画を飛ばすことも可能
「Velocity Affector」・・・一定方向へ速度を追加する。風のような表現で使う。
「Life Colour Shading」・・・パーティクルが出てから消えるまでの色変化を追加。

手前から奥へと流れていく四角いパーティクルが表示されたと思います。

繋ぎ方は基本こういう感じです。**「Particle Root」から伸びる各種ノードが一つのパーティクル群**になります。
## ③Particle Rootについて　（Particleの大元の基幹的なもの）
**Particle Rootで押さえておくべき項目**

「Num Particles」・・・パーティクルの総数。数百万まで増やせるけど当然GPUパワーとの闘い。
「Bake Now」・・・使ったことないけどベイクできるっぽい。
「Master Size Scale」・・・全体のパーティクルを一括サイズ変更。

![PT11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/243114/4f08500c-d7a9-a77e-3e39-cd23642fd20d.png)


## ④Emitterについて　（発生源の制御）
**Primitive Emitterで押さえておくべき項目**
「Emitter Type」・・・プリミティブの形状が変えられます。
「Repeating Random」・・・✔を外すと同じようなところからずっと発生するのを回避できます。
「Life」・・・パーティクルの寿命
![PT4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/243114/8e43995a-4be9-f199-2ed9-eae9dcad3eb4.png)

他にもいろんなEmitterノードがあるので試してみてください。名前でなんとなく機能はわかりますよね。
自分がよく使うのは**「Image Emitter」**と**「Mesh Emitter」**。
「Image Emitter」・・・画像や動画、カメラ映像なんかをエミッターにする。
「Mesh Emitter」・・・3Dのメッシュを持ったオブジェクトをエミッターにする。外部から読み込んだOBJとかFBXとかにも適用できる。
![PT5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/243114/1aa89ad0-b23d-59dc-6506-0602d2f49dbc.png)

## ⑤Rendererについて　（表現の種類を制御）
**Point Renddererで押さえておくべき項目**

「Texture」・・・任意の画像などを指定できます。もしくはノードグラフで繋いで指定。（例ではバナナの画像をノードで指定）
「Particle Size」・・・パーティクルの大きさ
「Size Randomness」・・・パーティクルの大きさのランダム具合
「Rotation」・・・パーティクルの回転
「Rotation Randomness」・・・パーティクルの回転のランダム具合
![PT8.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/243114/6f3f61d2-772e-384a-9c2f-0aefe8be0f39.jpeg)

他にもいろんなEmitterノードがあります。
おすすめは**「Geometry Connection Renderer」、「Line Connection Renderer」、「Trail Renderer」**

「Geometry Connection Renderer」・・・パーティクル同士の距離に応じてメッシュを形成　（Plexusの面みたいな感じ）
「Line Connection Renderer」・・・パーティクル同士の距離に応じてラインを形成　（Plexusの線みたいな感じ）
「Trail Renderer」・・・パーティクルの動いた軌跡をラインにする。光の軌跡みたいなの作るのに便利。
![PT7.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/243114/b7edbd83-3198-056b-a5f9-ebe10c32576c.jpeg)

## ⑥Affectorについて　（動きの制御）
**Velocity Afectorで押さえておくべき項目**

「Rotation　〇〇」・・・力の方向を変える
「Velocity Amount」・・・速度の調整
「Spread Angle」・・・方向のバラツキを調整
「Randomness」・・・影響する力のバラツキを調整

![PT8.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/243114/57dc02cc-2582-cd3f-5358-dfbfd06895a5.gif)


その他Affectorノード
おすすめは**「Turbulance Affector」、「Vortex Affector」**

「Turbulance Affector」・・・ゆらゆらうねうねとランダムに動く。
「Vortex Affector」・・・回転する動き。
![PT9-2.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/243114/fa1e0fed-469e-e7fe-4157-45e9031aa1d9.jpeg)

## ⑦Shadingについて　（見た目や色の制御）
**Life Colour Shadingで押さえておくべき項目**
「Life Colour」・・・色を選択することで好きな色に変化させることができます。
「Blend Mode」・・・加算とか乗算とか選べます。
![PT10.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/243114/2eee5947-3be2-b2f5-8b3d-d5361784fc6b.jpeg)
その他Shadingノード。おすすめは**「Distance Shading」、「Noise Shading」**
「Distance Shading」・・・パーティクルの距離に応じて色変化。
「Noise Shading」・・・ランダムなカラーノイズ。点滅等でよく使う。
![PT13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/243114/1b308d9e-cabf-87c0-6dbc-834d3e55b946.png)

# 作例
解説した手順をもとにいろいろテキトーにつないでみると

![PT12.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/243114/dcdc25b2-1f69-ccdf-a8c0-f49f391a368b.gif)

＜使用した主なノード＞
「Primitive Emitter」・・・エミッターをSphereにしてます。
「Point Renderer」・・・四角、バナナのパーティクル
「Trail Renderer」・・・水色のライン
「Velocity Affector」・・・上昇する動き
「Vortex Affctor」・・・回転する動き
「Life Colour Shading」・・・カラフルな色とか
「Noise Shading」・・・カラーが消えたりついたり。四角いパーティクルにのみ適用。

プロジェクトファイル DL https://my.pcloud.com/publink/show?code=XZmlO4kZEe4SVUNLVV8oLF7aCH0opRzm9SvX

こんな感じです。

#次回
Clonerについて解説しますたぶん。
**[追記]書きました！**
**https://qiita.com/Shuhei_Maeta/items/12c8cfa52ea5458c7cd5**

自主制作したリアルタイムMV作品の**Notchプロジェクトファイル1曲分フル**で公開してます!
**https://neort.io/product/bmke4ik3p9f7m1g01qo0**

情報共有はこちらのグループで行っているのでぜひ参加してみてください。
**Facebookグループ : https://www.facebook.com/groups/notchusergroupjapan/**
**Line オープンチャット : https://line.me/ti/g2/kJYmLLsvS2zNfR9PEiknMg**

質問等あればお答えしますのでお気軽に
**Twitter : https://twitter.com/shu1053**
**FB : https://www.facebook.com/profile.php?id=100009103327410**