チュートリアル / 3ds Max:プラグイン活用で表現の幅を拡げよう!
第16回:tyFlow 破壊オブジェクトから炎上させよう!(後編)
- 3ds Max
- アニメーション
- エフェクト
- コラム
- チュートリアル
- 学生・初心者
- 映画・T
こんにちは!
株式会社DEFT、代表取締役の子安と申します。
今回は前回の前編に続いて後編に入ります!
tyFlowで木材を破壊するところまで作成したので、次は破壊した木材から発火させていく仕組みを作っていきましょう!
前回は下記のStep01~Step05まで進めて行きましたので、Step06の後編から説明を進めて参ります。
~前編~
Step01 木の壁を作成
Step02 球体のアニメーションを取り込む(キャラなどが壁を突破するなどに置き換え可能な為)
Step03 木の壁をtyFlow化し、破壊シミュレーションをセットアップする
Step04 木のマテリアルをtyFlow内でランダムに割り当てる
Step05 レンダリングを行う
~後編~
Step06 破壊した木から出火させる
Step07 シミュレーショングループを作成し、シーン内の別のtyFlowに受け渡す
Step08 砕けた木の一部から発火する
Step09 火がトルネードし、空に舞い上がる
Step10 火と同じような挙動で塵が舞い上がるtyFlowをセットアップ
Step11 塵のモデリングを行い、Step10のtyFlowを塵に差し替える
Step12 レンダリングを行う
使用ツールバージョンは下記の通りとなります。
3ds Max 2027.2 Update
V-Ray7 update 3 hotfix 1 DR2
tyFlow PRO v2.100(Step11まではFREE版でも可能)
それでは早速燃やして行きましょう!
Step06 破壊した木から出火させる
それでは前回の配布データを使用して進めて行きます。
データを開いたら、Scene Explorer - Layer Explorerを開きます。
Attack_Ball_Render(-1F)
というアニメーションオブジェクトが入っているので、そちらを削除しAttack_Ballを表示します。
※Attack_Ball_Render(-1F)オブジェクトはシミュレーションで使用していたAttack_Ballのアニメーションを1フレームずらしたオブジェクトとなります。
Attack_BallはSurface TestオペレーターのDistance設定(30cm)により、対象オブジェクトに近づく30cm手前から破壊の事象が発生する為、レンダリングする際はアニメーションやシミュレーションのタイミングを補正する事があり、Attack_Ball_Render(-1F)はそのためのオブジェクトとなります。
一度マテリアルを割り当てた為、tyFlowのDisplayオペレーターの各イベントの状態が認識しづらいので、UVWリムーブユーティリティを使用してマテリアルの表示をリセットします。
①Utilitiesをクリックします
②More…ボタンをクリックします
③UVW Removeを選択します
④OKボタンをクリックします
UVW Removeのパラメーターが表示されます。
①tyFlow_Collapseを選択します
②UVWパラメーターパネルのMaterialボタンをクリックします
これで表示がオブジェクトのカラーになりtyFlowの各イベントが視覚化されやすくなりました。
いよいよInfernoを使用して木材を燃やしてみたいと思います。
①Birth Infernoオペレーターを選択します
②Start frameを110に設定します
③Voxel sizeを0.65cmから5.0cmに変更します
※Voxelを大きくする事で、突然のPC負荷を回避しておきます
動画の流れで炎を出すオブジェクトを指定します。
動画の手順は以下の通りです。
①Inferno Emitterオペレーターを選択します
②ObjectsリストのPickボタンをクリックします
③Scene ExplorerのtyFlow_Collapseを選択します
④ObjectsリストにtyFlow_Collapseが登録されます
⑤タイムスライダを動かしてみると指定したオブジェクト、指定したフレーム(110フレーム)から炎が立ち上がるのが確認出来ます
このようなセットアップはtyFlow_Collapse全てに炎が出てしまいます。
広い範囲に吹き飛ぶ瓦礫などを作成した場合、広範囲に渡りシミュレーションのグリッドが消費されてしまう事になります。
以下の内容で範囲を限定する事も可能です。
Step07 シミュレーショングループを作成し、シーン内の別のtyFlowに受け渡す
続いて、発火箇所を限定する為にtyFlow_Collapseで作成した破壊シミュレーションの一部を、シーン内の別のtyFlowに引き継がせて、炎のエミッターとして切り分けて行く準備をしていきましょう!
作業がし易いように、下記の手順で炎のtyFlowをオフにします。
破壊後の木材を指定するトリガーとして、シーンにSphereをセットしていきます。
①Createタブをクリックします
②Geometryをクリックします
③Sphereボタンをクリックします
④シーンにドラッグ&ドロップをしてSphereを配置します
⑤Radiusは約24cmに設定しSegmentsはデフォルトの32とします
※大きさやポジションは任意で構いません
tyFlow_CollapseのtyFlow Editorを開きます。
①Surface TestオペレーターをEvent004のTime Testオペレーターの下②の位置にドラッグ&ドロップします
③Surface TestオペレーターのObjectsリストのPickボタンをクリックして、Fire_Trigger_Ballを選択します
①Surface Testオペレーターを選択したままにしておきます
②TimingロールアウトのドロップダウンリストをContinuousからFrameに変更します
③Rangeの 0 to 1000 を 85 to 1000 に変更します
①PhysX SwitchオペレーターをEditor内に②ドラッグ&ドロップします
③Surface TestオペレーターとPhysX Switchを接続します
Event007が作成され、Displayカラーは青となります。
これで破壊が行われた後のEvent004(Displayカラー白)の事象に対して、Fire_Trigger_BallのSurface Distance領域に近づいた木片がEvent007に継承される流れとなります。
続いてFire_Trigger_Ballのアニメーションを作成します。
動画のようにFire_Trigger_Ballに動きを付ける事で、Event007に移行する木片を時間経過で表現する事が出来ます。
動画の内容は下記の通りとなります。
①tyFlow_CollapseのEvent001をオフにします
②Fire_Trigger_Ballを選択します
③Auto Keyをクリックします
④Fire_Trigger_Ballをスケール0から徐々に大きく、加えて移動も行う事でアニメーションを作成します
※こちらの位置やスケールアニメーションは任意で構いません。
ポイントとしてはEvent004(Displayカラー白)のエリアにアニメーションする事です。
⑤Auto Keyを解除します
⑥tyFlow_CollapseのEvent001をオンにします
⑦StopオペレーターをEvent007のPhysX Switchの下に配置します
これで破壊した木材から発火させる木片を指定出来たので、tyFlow_CollapseのEvent007をシーン内の他のtyFlowに受け渡す準備をします。
①Particle Groupを選択した状態にします
②Particle GroupパネルのChangeにチェックが付いている状態(デフォルト)、Setにチェックが付いている状態(デフォルト)で16番をクリックします
※番号は後に紐づける番号と同じ番号になっていれば紐づくので任意で構いません。
①tyFlow_Collapse_PRT_Groupを選択します
②Birth Flowオペレーターを選択します
③Editorウィンドウにドラッグ&ドロップします(自動でEvent001が作成されます)
※Event001のDisplayカラーはエメラルドグリーン
④Birth Flowオペレーターを選択している状態で右のパネルのBirth Flowロールアウト内、Source flowのNoneボタンをクリックし、tyFlow_Collapseを選択します
※画像は選択後の表記です。選択前はNone表示となります。
⑤Simulation groups欄の16番を選択します
Step08 砕けた木の一部から発火する
Step08の項目通り、砕けた木の一部は抽出出来ました。
Step06で炎のセットアップ(tyFlow_Inferno)は一部完了しているので、このStepはとても簡単な内容となります。
tyPreviewのセットアップ画面です。
以前の回でも少し触れておりましたが、項目を少し説明させて頂きます。
①カメラを選択
②Frame Range
③解像度
④Displayのモードを設定します
ClayモードやWireモードなどDisplay Preferenceで設定するものは基本的に入っております
⑤フレームナンバーやカメラの名前などをオーバーレイで書き出したムービーに記載出来ます
⑥出力先やファイル名を設定します
⑦各種設定後、Create PreviewボタンをクリックするとViewportのキャプチャが開始されます
書き出されたtyPreviewムービーとなります。
しっかりと、tyFlow_Collapse_PRT_Groupで指定した木片から発火してますね!
Step08は以上で完了となります!
Step09 火がトルネードし、空に舞い上がる
それでは項目通り、燃えた炎をトルネードさせながら空に舞い上がらせましょう!
動画のようにシーン内にHelix Shapeを配置していきます。
①Inferno Spline Forceを選択します
②Event001 Inferno Boundsの下にドラッグ&ドロップします
③SplinesリストのPickボタンをクリックします
④Helix001を選択しリストに登録します
①Inferno Spline Forceオペレーターを選択します
②Pull forceロールアウトのPull forceを10cmから20cmに変更します
Pull forceはSpline上の最も近い点に向かって流体を内側に引き込む力の値となります。
①同じくInferno Spline Forceオペレーターを選択したままとなります
②Follow forceロールアウトのFollow forceを10cmから100cmに変更します
Follow forceはSplineに沿って追従する力の強さとなります
tyPreviewを書き出してみました。
しっかりトルネードしてますね!
ヒント
もっと火力を上げたい場合や、逆に火力を抑えたい場合はInferno Spline Forceの数値をコントロールしたり、Fire_Trigger_Ballのサイズを広範囲にする、或いは小規模にするなど様々な点からアプローチする事で目指したい表現が可能になるかと思います。
Step09に関してはこれで完了となります!
Step10 火と同じような挙動で塵が舞い上がるtyFlowをセットアップ
炎と一緒に舞い上がる塵を作成していきましょう!
①tyFlow EditorのtyFlow_Dust_Vortexタブを選択します
②Birthオペレーターを選択します
③ウィンドウにドラッグ&ドロップします(Event001は自動作成されます)
④BirthロールアウトのParticle Birth欄のStartを85 Endを250に設定します
①Position Objectオペレーターを選択します
②Event001のBirthオペレーターの下にドラッグ&ドロップします
③ObjectsリストのPickボタンをクリックします
④Scene ExplorerのFire_Trigger_Ballを選択します
⑤ObjectsリストにFire_Trigger_Ballが登録されます
①Path Followオペレーターを選択します
②Event001のPosition Objectオペレーターの下にドラッグ&ドロップします
③ObjectsリストのPickボタンをクリックします
④Scene ExplorerのHelix001を選択します
⑤ObjectsリストにHelix001が登録されます
続いてObjectsリスト(Path Followロールアウト)の下部にある、Forcesロールアウト内のSpin項目のVelocityを0.00cmにします。
Distanceロールアウト内のDistance to Shape欄のLockedにチェックを入れます。
①Shapeオペレーターを選択します
②Event001のPosition Objectオペレーターの下にドラッグ&ドロップします
③SizeのScaleにチェックを入れて、Scaleに600.0%の数値を入れてVariationは50.0%にします
④Meshロールアウト内のShape meshは3Dにチェックをし、Leaves(Ash)を選択します
①Path Followを選択します
②TimingをContinuousからParticle ageに変更します
③Rangeを20 to 1000に変更します
パーティクルが発生して20フレーム後からPath Followが行われる設定です。
①Spinオペレーターを選択します
②Event001のShapeオペレーターの下にドラッグ&ドロップします
③Spinロールアウト内、Spin rateを600.0に変更しVariationを50.0に変更します
以上で炎のトルネードに合わせて塵が渦を巻きながら上昇していくセットアップが出来ました。
一度tyPreviewで確認してみましょう!
炎に合わせて仮の塵が舞い上がりました!
このステップは以上で完了となります!
Step11 塵のモデリングを行い、Step10のtyFlowを塵に差し替える
塵のモデリングは動画でご紹介致します!
動画のようにPlaneから塵を作成しました。
PlaneはあらかじめUVが0から1の範囲で開かれているため、後々テクスチャを乗せるのに効果的です。
動画は下記の内容となります。
①塵をPlaneからEdit Polyの頂点編集でモデリングする
②デフォーマー系でニュアンスを付けて行く
③TurboSmoothをかける
④Step10で作成したtyFlow(tyFlow_Dust_Vortex)のShapeオペレーターを選択する
⑤Reference nodeのNoneをクリックする
⑥作成したPlane001を選択する
⑦ShapeオペレーターのSize項目にあるscaleを100.0%に変更する
仮の塵が作成したモデルに置き換えられました!
以上でこのStepは完了となります!
ここからはVDBの書き出しとPRO版が必要となりますので、データ配布はこの段階までのものを配布致します。
データバージョン
3ds Max 2027.2 Update
V-Ray7 update 3 hotfix 1 DR2
tyFlow v2.100
Step12 レンダリングを行う
前回一度レンダリングは行っていたのですが、後編の最初にマテリアルなどを外していたのでもう一度木材のマテリアルを適用します。
加えて、第14回の炎のレンダリングと同じような設定を行い、炎が光源となるような設定も行います。
①Inferno Exportを選択します
②Event001のInferno Recallオペレーターの下にドラッグ&ドロップします
③Solver VDB filenameと出力パスを設定します
④Frame Rangeを0 to 250に設定します
⑤Generate VDB filesをクリックして書き出します
Complete画面が出たら書き出し完了です!
tyFlow_Inferno内のEvent001をオフにします。
書き出したVDBの読み込み方法やレンダリング設定は、第14回のコラム内のStep05をお読み頂ければと思います。
最後にレンダリングした動画をご覧くださいませ。
動画をご覧いただければコラムで進めた内容の他に下記内容が含まれております。
・Attack_Ballからも炎が出ている
・木材に衝突した際に火の粉が舞っている
・Attack_Ballのアニメーションタイミングを1フレーム早くしている
主にこのような内容が含まれております。
説明はしていないのですが、これらは第14回のコラム内容にて足から出る炎や火の粉の内容と同じような内容となりますので割愛させて頂きました。
やはり動画にする上では、Attack_Ballに炎が纏っていて割れた木材に着火する方が成り行き上自然です。
またWood_WallにAttack_Ballが衝突した際に火の粉が出る方が自然です。
Attack_Ballのアニメーションを1フレームずらした理由に関しましては、本コラムのStep06の冒頭に記載させて頂いている内容と同じです。
是非、今までの内容をミックスして頂き、エフェクトシミュレーションを盛り上げて頂ければ幸いです!
次回はtyFlowを用いて車の制御などを行う手法をご紹介出来ればと思っております。


































































