今回のテーマは、「Fusionで作る桜吹雪パーティクル」です。
我が推し「さくらみこ」へのファン動画でいつか使うかなと思って作成してみたので記事にすることにしました。
NsFarmさんのチュートリアル動画を参考に、学生時代のノート感覚で記事にしていますので、チュートリアル動画と併せて確認してみて下さい。
軽い気持ちで初めたら中々大変だったのですが、すごい勉強になりました。ぜひ一緒にチャレンジしてみましょう!
今回作成したサンプル
文字を少し増やしただけですが、それでも少し大変でした。
前準備と参考にさせて頂いた動画
NsFarmさんの動画を参考にさせて頂きました。
参考動画
前準備
セッティングファイルのダウンロード
NsFarmさんのサイトから、テンプレート化されたFusion settingファイルをダウンロードします。
ダウンロードしたSettingファイルをDaVinci Resolveに読み込ませます。
DaVinci ResolveのFusionページでEffectsをオンにした状態で、「Templates」に対して、右クリック→「Show Folder」をクリックします。
ここのFusionフォルダや、自前で作ったフォルダにダウンロードしたsettingファイルを置いておくと、簡単に利用できるようになります。
利用する画像
桜の花びら画像を自前で用意しましたので、右クリックから保存で良ければご利用下さい。
これをメディアプールにドラッグアンドドロップで読み込みます。
テンプレートを利用して桜吹雪パーティクルを再生する
まず、Fusionノードを追加してFusionページに移動します。
先程ビンに追加したSakuraFubukiをFusionに追加して、Render3DとMdeiaOutを接続します。
メディアプールにドラッグアンドドロップで読み込んでおいた桜を左上のFusionに追加されたSAKURAにドラッグアンドドロップします。
追加しようとすると、「Replace SAKURA?」とでてくるので、OKで置き換えます。
これで再生できます。
各ノードの解説
3Dテキストノード
3Dテキストは、ツールバーのText3Dから追加することができます。
3Dテキストのインスペクターの説明
3Dテキストの設定
まず表現を確認しやすくするために、「3D Options」から「Lightning」と「Shadows」にチェックを入れます。これで立体感の確認がしやすくなります。
※確認ついでにテキストを「SAKURA MIKO」に変更しました。
Extrusion>Extrusion Depth の項目で文字の立体感の厚みを調整できます。
また、「Bevel Depth」と「Bevel Width」を調整することで、より立体感の調整ができます。触って確認してみましょう。
トランスフォームの設定
Z軸のトランスフォームにキーフレームが打たれており、徐々に近くなるようなアニメーションになっています。
3Dテキストのシェーディング関連の説明
Deplicateノードによる複製
Deplicateノードは複製するためのノードです。
Copiesが5でCenterとPivot(旋回軸)を少しずらして設定されています。
そして、SizeとAngleにキーフレームが打たれており、コピーしながら少しずつ回転・拡大していくようなアニメーションになっています。
Backgroundノード
Backgroundノードは、Alphaを0に設定しただけのもので、それがMergeノードと繋がれています。
BumpMapノード
BumpMapノードは、画像に凹凸をつけることができます。
立体の高さを、インスペクターの「Hight Scale」で変更することができます。
Phongノード
Phongノードは面に対して、表面反射をつけることができる。
BumpMapとの接続を切って、Phongノードを確認すると以下のような見た目になります。
似たような効果に「Blinn」ノードが存在する。「Phong」ノードの方が金属っぽい表現になる。
BumpMapとの接続をもとに戻すと以下のように凹凸が表現された状態になります。
SphereMapノードとReflectノード
SphereMapノードは、画像から球状のテクスチャマップを作成することができます。
Reflectノードは、内側に映り込みを表現できます。
ReplaceMaterial3Dノードで3Dテキストをマテリアルに変換
Text3Dに作成したマテリアルでシェーディングを行うためには、マテリアルに変換する必要があるため、「ReplaceMaterial3D」を用いてText3Dをマテリアルに変換し、マテリアルとして桜画像から作成したマテリアルを適用します。
適応すると以下の画像のようなText3Dの表現になります。
パーティクル関連のノード説明
pBounceノードの使い方(サンプル)
ツールバーから「pEmitter」ノードと「pRender」ノードを追加して、「ctrl+space」から「pBounce」ノード追加しています。
上記のpBounceと同じ考え方で以下のツールが利用できる。
■3D空間で用いることのできるパーティクルのツール
- pAvoid…避ける効果
- pBounce…弾ませる効果
- pFollow…追従される効果
- pKill…消滅させる効果
Emitterの説明
pEmitterのインスペクターを以下に修正
- Costom>Emitter>Number…50
- Costom>Velocity>Velocity…0.2
- Costom>Velocity>Angle…-90
- Style>Style…Blob
- Style>Size Controls>Size…0.02
球体をYベクトルを持って少し上へ移動
この時点で再生するとこんな感じになります。
pBounceの説明
pBounceノードのインスペクターRegionページで設定をします。
Regionで設定したエリア内でパーティクルが弾む設定を行うことができます。
試しに、RegionをRectangleにして、SizeとRotationを調整して、パーティクルとぶつかるような面を作成してやると以下のような表現になります。
次にpBounceのControlsからElasticityを調整します。
値を下げることによって弾む強さを弱めることができます。
次にpBounceのConditionsページから、Conditions>Probabilityを設定することで、跳ね返す確率を変更することができます。
次に、pBounceノードを1つ追加して、RegionをSphereにしてみます。
すごい散らばるので、Elasticityを調整して弾力性を小さくします。
これを使って、3Dテキストと桜吹雪のバウンスを表現しているようです。
桜吹雪のパーティクルの説明
桜吹雪のパーティクルを見ていきます。
pEmitterの設定
以下の設定になっています。
■Contorls
- Emitter>Number … 35
- Emitter>Lifespan…300
- Velosity>Velosity…0.15
- Velosity>Velosity Variance…0.1
- Velosity>Angle…-90
■Region
- Region>Line
- Region>Start
- Region>End …ExpressionをStartに対して設定して対象になるように設定している。
RegionをLineにすると以下の画像のように線を設定してそこが発生源になります。
pBounceの設定
1つ目の文字の上に球体のBounceを作って、そのインスタンスを文字数分作成している。
今回文字を増やしたのでここを増やしておきます。
インスタンスは生成したノードを右クリックしてペーストする時に、Paste Instanceを指定することでインスタンスを生成できます。インスタンスは親のノードと同じ設定になりますが、インスペクターの変更したいステータスに対して右クリックからDeinstanceを押すことで、設定を継承した状態のまま子のインスタンスの一部の設定だけを変更することができます。
今回は、Region>TranslationのX OffsetをDistanceで分離して設定しています。
Z軸は3DTextのZ軸移動にExpressionで連携しています。
pRenderノードとReplicate3Dノード
pRenderノードでレンダリングを行い、Replicate3Dノードで、花びらのノードと接続していきます。
Shape3DノードとBender3Dノード
Shape3Dノードを利用することで、画像を3D空間に持ってくることができます。
Bender3Dノードを利用することで、花びらに曲げをつけることができます。
Blender3DのAmountを調整することで、曲げ度合いを調整することができます。
これで設定できたBender3DをReplicate3Dに接続していきます。
接続すると、Emitterで設定した内容に桜が反映されて以下のような見た目になります。
Merge3Dノードでテキストと花びらを結合
作成した花びらをMerge3Dノードを使ってText3Dと結合していきます。
ライティング関連の説明
以下ノードをMerge3Dノード繋いでいます。
- Camera3D
- PointLight☓4
- SpotLigt☓1
以下のような感じでライトが動いています。
■3D空間での便利な機能
例えば、Perspectiveを右クリックして、「Copy PoV to」>Other>SpotLight1を選択します。
すると、画面状で、見ている位置と角度にそのSpotLightを移動させることができます。
これはカメラにも適応させることができます。
キーフレームを用いてカメラを設定したい時などに便利な機能なので覚えて置きましょう。
Render3D
Render3DはReporting>Render Type を「OpenGL Render」に変更しています。
完成
ライティングを修正しなかったせいか少しガビガビしちゃいましたが、良しとしましょう。
まとめ
今回、「Fusionで作る桜吹雪パーティクル」を紹介しました。
かなり難しかったですね!想像以上のボリュームでした。しかし、その分勉強になる部分が非常に多かったです。
私も理解しきれていない部分が多いのですが、一つ一つのノードは難しくないので、それらの組み合わせをうまく使えるように技術アップしていきたいなと思います。