MODO

Diary

modoでパーティクルの位置をブレンドする方法

modoでパーティクルの位置をブレンドする方法について書いてみます。
901で追加された Particle Constraint と Matrix Blend ノードを使用すると、アイテムの形状にパーティクルが集まるような表現を手軽に作ることができます。

 

単純なパーティクル位置のブレンドの画像です。

Particle Operator に「ID」「位置」を追加。IDを Particle Constraint の Particle ID にリンクします。これでパーティクルのIDが近いもの通しをコンストレイントしたことになります。

Particle Constraint の「出力」を Matrix Blend ノードでブレンドします。 Matrix Blend はその名の通り入力されたマトリクスをブレンドするノードです。「ブレンド」が0%だと「マトリクスA」、100%だと「マトリクスB」のマトリクスを出力します。50%だとマトリクスABの中間地点を出力します。ブレンド チャンネルにキーを設定することで、パーティクルの位置をアニメーションしてます。
Matrix Blend はいろんなリグに使える便利なノードだと思います。

Matrix Blend の「マトリクス出力」を Matrix Vector でXYZの移動に分解して、Particle Operator の「位置」にリンクします。これでパーティクルの位置をブレンドすることができます。画像ではMatrix Blendを2個つかって3アイテムの頂点位置とブレンドしてますが、最初はMatrix Blendを1個で2アイテムから試すとわかりやすいと思います。

 

パーティクル位置のブレンドはポリゴンだけでなく、別のパーティクルシミュレーションとブレンドすることもできます。

スケマティックでParticle Simulation_2にCSV Point Cash ノード使用してますが、なくても大丈夫です。

 

単純なブレンドだと機械的に補完され過ぎて感じるかも知れません。このチュートリアルのように、ベクトル減算と Vector:Multiply By Scalar ノードでパーティクルの速度を変化させるとリニアなブレンド感が緩和されると思います。

Randomize ID は速度にランダムさを設定してます。

 

パーティクル位置をブレンドすると、ロゴに集まるパーティクルなんかを作ることができます。

パーティクルの波うつ軌道は Curve Force です。GLの画像で青色のパーティクルが変な動きしてるのは、 CSV Point Cache のオフセットを使ってタイミング調節してるためです。CSV Point Cache のオフセットにキーを設定するとステップ補間になってしまうので、演算ノードをリンクして、演算ノードのチャンネルにキーを設定してます。

ここで問題になったのが、12.1でCSV Point Cache を Particle Constraint にリンクしてシミュレーション実行するとmodoがフリーズします。いちどParticle Simulationを繋いで計算した直後に、CSV Point Cache を繋いでシミュレーション実行するとフリーズせずに動作するというハックに気がついたので何とかなりました。

何となく Particle Constraint はバグってる気がします。シミュレーションを繰り返すと計算速度が徐々に遅くなるような気がするのと、パーティクル数が少なくてもシミュレーションに時間がかかりすぎる印象があります。

Particle Constraint と同じようなことは、 Matrix Compose と ジオメトリ コンストレイントノードを使って再現することもできます。こちらのノード処理の方が Particle Constraint より速く動作するのでお勧めです ( CSV Point Cache とブレンドしたい場合は Particle Constraint を使う必要がある気がします)

 

参考

emFlock2 みたいなの簡単に作れるようにならないかなー。
http://www.mootzoid.com/plugin/emflock2#lightbox[demoAssets]/0/

Tips

modoとAEでアニメ風爆発の作り方

modoとAfter Effectsを使ってアニメ風の爆発の作り方について書いてみます。特に新しい内容ではありませんが、だれかの参考になれば嬉しいです。

最近のアニメでは3DCGが使われることが当たり前になってます。爆発のようなエフェクトも作画ではなく、CGが使用されてるのを多く見かけるようになっています。
CGで爆発を作る場合は大きく分けて2つの方法があります。1つめは球体にトゥーンシェーダを設定して、球体をアニメーションする方法です。2つめはFumeFXのようなフルードダイナミクスや、ボリュームレンダリングを使用する方法です。

今回はmodoのパーティクルとボリュームを使用して爆発の素材を作って、After Effectsでセルっぽい質感にしてみます。

 

ボリュームのレンダリング

modoでボリュームをレンダリングします。色はAfter Effectsで設定するので、無彩色のままレンダリングします。パーティクルやボリュームの設定を解説するのは大変なので、詳細はサンプルファイルをみてください。

■ サンプルファイル

以前の爆発と同じく、今回もゲームっぽく爆発して消えるまでのアニメーションにしてみました。

ボリュームの質感は、爆発の中心を明るくするためにグラディエントレイヤーを「ボリューメトリックルミナンス量」で重ねています。グラディエントの「入力パラメータ」は以下の通りです。

 

デフォルト

わかりやすいように「ボリューメトリックルミナンス量」を使用していない状態の画像です。Multi-Fractal で煙っぽいでこぼこを設定しています。

 

テクスチャ値

入力パラメータに「テクスチャ値」を設定した画像です。Multi-Fractal レイヤーでへこんでいる部分を明るくすることで、煙の中心が高温になってる感じをだすために使ってます。

 

ロケータまでの距離(オブジェクト空間)

入力パラメータに「ロケータまでの距離(オブジェクト空間)」を設定した画像です。個々のパーティクルからの距離でボリュームを明るくしています。「 ロケータまでの距離(オブジェクト空間)」を使う場合は、ボリュームの「自動テクスチャオフセット」や「テクスチャエフェクト」をONにしていると影響を受けてしまうので、使う場合はOFFにする必要があります。

 

ロケータまでの距離

入力パラメータに「ロケータまでの距離」を設定した画像です。爆発の中心からの距離でボリュームを明るくしています。パーティクルを発射直後のボリュームを明るくするために使ってます。

 

最終レンダリング

全てのレイヤーを適用した画像です。

 

After Effects で色付け

modoで無彩色でレンダリングしたボリュームにAEで色をつけます。エフェクトは下の画像の通りです。

トーンカーブでボリュームのコントラストを調節してから、CelMXのGradientMapで爆発の色を設定しています。AE標準のコロラマ エフェクトでも同じことができます。最後にチョークでボリュームの輪郭をシャープにしています。
CelMXはCelFX同様にアニメ撮影処理向けのエフェクト集ですが、MXには3DCGでも便利なエフェクトが入っているので使ってます。

 

このままだと煙がパッキリし過ぎてるので影をぼかします。

レイヤーを複製して、煙の影をBlurCelを追加してぼかします。レイヤーの不透明度を65%くらいにして重ねます。ぼかし方は色々あるので、好きな方法を使うといいと思います。

 

最後に調整レイヤー追加してGlowを適用します。このGlowはお気に入りなので多用しちゃう。

 

作った爆発を Trapcode Particular で適当に発生させるとこんな感じになります。追加で火花や破片、画面ブレをつければ、もっと派手でそれっぽい感じになるんじゃないかと思います。

アニメ撮影に関するメイキングはあまり見かけることがありませんが、最終的なアニメのルックを決める重要なポジションのように感じます。フルCGや実写もそうですがコンポジットって重要ですね。

 

参考

「宇宙戦艦ヤマト 2202 愛の戦士たち」

爆発をLightWaveのハイパーボクセルで作ってるようです。modoでも参考になると思います。
http://www.dstorm.co.jp/dsproducts/lw3d/interview/profile19.html

「劇場版 ソードアート・オンライン –オーディナル・スケール–」

作画の煙の撮影処理前と後の画像が見ることができます。撮影処理で作画の煙のボリューム感がでてます。TurbulenceFDはセルっぽく加工せずに、ボリュームのシェーディングそのまま使ってるようです。こういう合成方法もいいですよね。
https://www.maxonjapan.jp/archives/work/sword_art_online_os

『Fate/kaleid liner プリズマ☆イリヤ』シリーズが実践する、新世代のアニメ撮影ワークフロー

アニメ撮影に関する貴重な記事です。今ではキャラの目や髪にグラデがかかってる作品はあたりまえですね。
https://cgworld.jp/feature/201512-prisma-illya-cgw208t2.html

ufotableのvimeoアカウント

アニメ撮影でとても見応えのある画面をつくるアニメスタジオさん。いくつかメイキング映像が公開されています。
https://vimeo.com/ufotable

Tips

modoのフォールオフ アイテムのイージング

modo 12.0でフォールオフアイテムにイージング機能が追加されました。この機能追加によってカーブを使用した細かなフォールオフ制御ができるようになりました。

例えばリプリケータの「スケール」を制御して結晶化するような表現を作るとき、リニアに大きくなるだけではなく、大きくなったあと少し小さくなる。というようなニュアンスを加えることができます。

 

スケマティックはこんな感じです。

Surface Particle Generatorで球体にパーティクルを発生させます。Particle Modifierは「スケール」を0%に設定し、フォールオフアイテムをリンクしています。フォールオフ アイテムをアニメーションすると、リプリケータのスケールが変化します。

複数のフォールオフアイテムを使用している場合に注意が必要なのは、イージングのカーブが0~1の範囲を超えないように設定する必要があるかもしれません。
上の画像ではリニアフォールオフとテクスチャフォールオフを使用していますが、イージングのカーブが0以下に設定したとき、テクスチャフォールオフの領域に小さな円柱が発生しているのが確認できます。
テクスチャフォールオフの場合は、テクスチャの「上限値」を100以上の大きな値に設定すれば大丈夫なのですが、他のフォールオフ同士の組み合わせでどうなるかは調べてません。

modo11以前のバージョンでもFXアイテムの「パーティクルサイズ」を使用すると、同じようにリプリケータのスケールをアニメーションすることができました。下の画像はGradientのテクスチャロケータをアニメーションさせたものです。

FXアイテムはシェーダーツリーに統合されているので、レイヤーのブレンドやマスクなど制御しやすいのですが、フォールオフアイテムに比べると処理が遅いような気がします。

 

Particle Random Modifier を使うと位置や回転のランダムをフォールオフで制御できるようになります。ちょっとしたモーショングラフィックっぽいアニメーションが簡単に作ることができます。やはり同じような制御をFXアイテムでもできましたが、スケマティックで関係性が見やすいぶんフォールオフアイテムが使いやすい気がします。

 

ちなみに、この結晶化のアニメーションはレンダリングに5時間かかりました。初めのフレームは30秒くらいなのですが、最後のリプリケータのアニメーションが終わったあたりは1枚4分かかります。アイテムのランダムさはリプリケータの「ランダムスケール」を設定してます。

 

マテリアルのシェーディングモデルは「従来」を使用して、レンダリングの設定では「反射深度」2、「屈折深度」1と速度重視に設定してますが、反射と屈折が組み合わさるとレンダリング時間が長くなります。もっとリアルに磨かれていないような質感にしようとすると、反射と屈折にブラーを加えることになるので、もっとレンダリング時間がかかりそうです。

今回はレンダリング時間を短くする工夫として反射用のオブジェクトやライトの変わりに MatCap を使用してみました。輪郭が浮き上がっていい感じに反射してるように見えます。GLでは問題なかったのですが、レンダリングでは使用したマップの上下左右が少し切れてるのが原因で、チラツキが発生してしまいました。

さらにIridescence Material で表面を虹色っぽく設定してます。MatCapもそうですが、modoはマテリアルを加算でブレンドできるのが面白いですね。

屈折のレンダリングは時間がかかるので、MatCapと反射のみで屈折したような質感を再現できないかと実験してみました。これだけ見るとそういうものかと思うかもしれませんが、屈折したものと比較すると透明には見えないですね。やっぱりカメラが動くとわかちゃいます。この反射だけの質感だとレンダリング時間は35分でした。

modoではMatCapをミックスしたりマスクしたりできるので、他のソフトに比べて便利に使える気がします。そのうちトゥーンマテリアルを作ってみようかな。

Tips

modoのパーティクルの質量

パーティクルの質量について書いてみます。
パーティクルは点の情報で実体がありませんが、Particle Operator を使用して「質量」を設定すると、パーティクルがメッシュをはじくようになります。

画像はパーティクルとメッシュが衝突するように、あらかじめ設定したシーンを使用しています。Particle Operator の特性は、チャンネルに直接値を入力してもシミュレーションに反映されません。そこでユーザーチャンネルを作成して、その値を「質量」チャンネルにリンクしています。

下の画像はmodoのサンプルモデルを「シャッター & グルー」で粉砕したものです。

モデルは「複合リジッドボディ」を適用し、スリープのウェイクオンを「衝突フォース」に変更、「ウェイクオン値」を1に設定してパーティクルが当たったらリジッドボディが動き出すように設定しています。

ちなみに「ウェイクオン値」が0だと、連鎖的にリジッドボディ全体が動き出します。

 

Dynamic Replicator を使えば同じようなことができますが、パーティクルに質量設定した方がシミュレーションの計算量が少ないと思います。
modoのダイナミクス機能はオープンソースライブラリの Bullet Physics を使用していますが、リジッドボディとパーティクルが相互に影響し合うようなシミュレーションができるのが面白いですね。

 

参考

 

CG News

Needle Kit for Modo

簡単にステッチを作成するキットがリリースされました。価格は€99。現在は早期割引コード「StitchAhead」を入力すると25%OFF(2018年7月1日終了)。

 

概要

このキットはMODOでステッチの作成と管理をより簡単かつ迅速に行います。シンプルでパワフルなプリセットシステムと組み合わせることで、作品のクリエイティブな部分に集中できます。
キットはシーン内のステッチを作成、表示、編集するのに必要なすべてのツールを備えた小さなツールパレットを提供します。さらに、ユーザーはカスタムプリセットを素早く作成し、使用することができます。

このキットはMODO 11.2v2以降のバージョン用に作成されています。

CG News

Modo 12.1 リリース

Modo 12.1 がリリースされました。今回も大きな目を引く機能追加より、地味ながらありがたい機能改善がおこなわれてます。

個人的には12.1の新しいBetaレイアウトいい感じ。ビューポートのアイコンが増えたのと、上下左右のビュー展開アイコンはもう少し何かいいUIデザインないかなと思いますが、タブ切り替えする必要が少なくなり全体的にスッキリしてて好印象です。
プロシージャルモデリング機能の充実も好印象、堅実に表現の幅が広がってます。カーブパーティクルジェネレータはようやく便利になってきました。modoはもともとカーブ関連の使い勝手が悪かったのですが、他のソフトに比べて同等かより便利になってきた気がします。エッジからカーブツールは短冊形のポリゴンからヘアーガイドに変換して便利に使えそうです。
ドリブンアクションはノンリニアアニメーション機能の基礎的なものに見えます。ドリブンアクションを追加するとセットアップモードで編集できなくなったり、アクションの編集がしづらくなるなどの問題がある気がします。ですがグラフ編集のボックススケーリングツールは便利なものですし、今後も継続的なアニメーション機能の改善に期待したいですね。

 

アニメーション


Modo 12.1ではキーフレーム処理を高速化し、キーフレームデータを再利用するようにアニメーションワークフローの拡張機能を導入しています。ドリブンアクションはシーン内のアクションクリップを再利用、リタイム、リギングする機能を追加し、アクションを完全に利用できるようにします。
新しいデフォルトのキースロープタイプではキー間のスムーズな補間が可能になり、アニメーション中に必要なキー調整の量が大幅に削減されます。
新しいボックストランスフォームツールを使用して、グラデーションエディタで複数のキーを操作する方がはるかに簡単です。
ミニグラディエント エディタでは、プリセットの保存と読み込みを可能にするメニューの追加など、さまざまな改良が施されています。
 

UI の改良


ModoのUIが調整されました。より高速にアクセスできるように、ツールパレットボタンはツールパレットをフォームに直接切り替えできます。背景メッシュの表示、アイテム描画、ウェイトマップ描画、それに UV 歪みの表示を3Dビューポートで直接切り替えることが、状態をひとめで確認することができます。
Modoモードのフォームには、セットアップモードボタン、レンダリングボタン、ネストされたセンターボタン・ピボットモードボタンがあり、レイアウト間の一貫性を保つことができます。
すべてのキットはUIの右上にあるキットボタンからアクセスできるキットポップオーバーフォームに存在します。
Modoには新しいベータ版のレイアウトが付属しており、単一のレイアウトで作業するための新しいUIコンセプトを多数紹介しています。
 

プロシージャルモデリング


Modoの手続きモデリングシステムは、新しくメッシュと選択オペレーションの範囲で改善を続けています。Surface Constraintは、シーンの他のジオメトリにジオメトリを手作業で拘束することを可能にする背景コンストレイントのプロシージャルバージョンです。
その他に、選択の変換、連結の選択、ループ選択といった選択オペレータ、エッジスライド、プッシュ、エッジの分割、ポリゴンの統合、ポリゴンの単一化などがあります。すべての新機能を完全に実行するための動画をご覧ください!
 

ダイレクトモデリング


Modo 12.1では頂点の法線の編集や定義が大幅に改善されています。頂点法線ツールキットは、終端や角度、ポリゴン境界、UV 境界、UV 島の境界などより多くのオプションを使用して、よりシンプルに更新されました。
新しいスムージンググループマネージャーがあります。ポリゴンが存在するグループを定義し可視化するためのUIです。モデルの頂点法線は別々の頂点マップではなく、Modoのネイティブなスムージングの一部として保存されるため、スムージングに悪影響を与えることなくモデルを自由に編集して変形できるようになりました。
サーフェスの法線を制御するための新しいオプションがマテリアル プロパティに追加されました。マテリアルごとにスムージンググループの効果を制御するオプションもあります。
 

UV ツールと MeshFusion


UV Packコマンドの更新により、より高速にパッキングする新しいアルゴリズムが実現しました。UVアイランドとUV境界の間の距離は、Gaps by Pixelオプションでより正確に制御できます。新しいUVマップにパックする新しいオプションがあります。さらにポリゴンタグに基づいてパックする機能が追加されました。この機能はUVをタグに基づいて別々のUDIMにパックする機能を提供します。
MeshFusion Surface Stripsが追加され、生成されたトポロジをより詳細に制御できます。
 

統合された VR ビューポート


新しく統合されたVRビューポートを使用すると、VRヘッドセットを接続しVR環境内でモデルを表示、調整することができます。このリリースではアイテム変換、シーンレイアウト、およびデザインレビューに焦点を当てています。
移動、回転、スケール、インスタンス、複製、変換のリセットなど、多くの主要なアイテム編集ツールが利用できます。また、スナップオプションやアクションセンターも用意されているため、VR環境内のオブジェクトを正確に移動できます。
 

レンダリングとリギング


アドバンストビューポートは大幅に改善され、より複雑なマテリアル設定をビューポートで直接レンダリングしたり、リアルタイムで変更を加えることができます。グループマスクを完全にサポートされ、複数のマテリアルレイヤーをマスクした複雑なマルチレイヤーマテリアルをレンダリングできます。また、グループブレンディングモードと不透明度の変更も完全にサポートされているため、AVPとModoのネイティブレンダラーでのマテリアル表現の違いはほとんどありません。
他のレンダリングの改良点には、フィルムロールチャンネルの追加があります。これにより2Dアニメーションパイプラインで便利な、カメラのフィルムオフセットチャンネルに対するカメラの2次元ロールをアニメートすることができます。
 

Modo 12.1 新機能一覧

http://modogroup.jp/modo/modo12s_120/modo121v1_newfeatures

Modo 12.1 新機能ムービー

https://community.foundry.com/discuss/post/1134072

Tips

modoのタイムノード

modoのタイムモディファイヤについて書いてみたいと思います。タイムモディファイヤはその名の通り時間に関係したチャンネルモディファイヤです。

下の画像は砲台が出てくるアニメーションを設定した後に、Time Offsetを使用してアニメーションの再生速度を制御したものです。メカの変形アニメーションの速度をカットごとに変えたい場合に、リグとして組んでおくと便利に使える気がします。キーフレームは等間隔になるよう設定しておくと、タイミング調節がしやすくなると思います。

 

Time

現在の時間またはフレーム数を出力するシンプルなノードです。何に使うのかイメージしにくいかもしれませんが、毎フレーム値をカウントアップしたい場合や、条件式と組み合わせてタイマー的にパーティクルを制御したりに使用できます。

 

Time Cycler

アニメーションの繰り返し再生を制御するノードです。グラフエディタの「動作」にも同じような設定がありますが、Time Cycler の場合は「完了」の値で繰り返し回数を制御できます。
「オフセット反復」は「入力マトリクス」に対応していなようで、「入力値」から「出力値」を使用した場合に動作するようです。

 

Time Offset

アイテムのアニメーションをオフセットするノードです。残像のようにアイテムが追従するアニメーションを作成することができます。タイプを「定数」にすると、アニメーションの再生速度を制御できます。

単純にアイテムを追従する場合はmodo10.2から追加されてた Simulation Follower の方が加速度がついていい感じになると思うので、アニメーションの再生速度を制御する使い方の方が便利な気がします。
Time Offset で少し残念なのが、マトリクスチャンネルが複数のリンクに対応していないことです。modoのスケマティックは1ノードまでは循環参照を許可しているのですが、位置、回転、スケールのそれぞれをTime Offsetしたい場合は、各チャンネルの数だけTime Offsetノードが必要になります。

循環参照しなくてよい場合は、Matrix Composeを使用して位置、回転、スケールを1つのマトリクスにするといいです。Matrix Compose の「マトリクス入力」はリンク順で計算するの、スケール、回転、位置の順番でリンクする必要があります。

 

Time Warp

カーブを使用してアニメーションを制御するノードです。Time Offset と同じような機能ですが、再生を反転したりカーブで細かな制御ができます。

 

Time Offsetで砲台のアニメーションを制御するのは、Project:Messiahのサンプルファイルを思い出したので作ってみました。modo 12.1からは Driven Actions というアクションの再生速度を制御する機能が搭載されているので、今となってはノードを使う機会は少ないかも知れません。

CG News

MODO – CharacterBox tutorials

CharacterBoxを使用したキャラクターのセットアップ方法を解説した動画が公開されています。フェイシャルのセットアップやアクションなどCharacterBoxの使用にかかわらず参考になる動画シリーズです。
作者の方は日本のCMも制作されてて、ナブテスコの企業CMでもmodoとCharacterBoxを使用していました。

 

 

Tips

modoで物理演算後にロゴが現れる

物理演算後にロゴが現れるような表現について書いてみます。

 

作り方は簡単で、物理計算後にUVを作成するだけです。

  1. 物理計算を設定したシーンを用意します。
  2. アニメーションが終了する決めのフレームでオブジェクトを選択して、UVマップを作成します。
  3. UVを展開します。UVツールの「ビューから投影」をアクティブにして、カメラビューをクリックします。
  4. テクスチャレイヤーでUVマップを設定します。
  5. UVビューを使用して、ロゴの大きさを調整します。

かなり単純ですね。物理演算の設定を変えるとオブジェクトの位置が変わってしまうので、プロシージャルモデリングの Create UV Map ノードを使ってみるのもいいかもしれません。
ロゴは少し崩れた方がいいかなと思って最後少しずれるタイミングにしてみましたが、レンダリングしたらピッタリ決まる感じの方がよかったかも。

物理演算関連の設定も書いておきます。

物理演算は「複合リジッドボディ」を使用しています。アイテムの形状は 球、カプセル、トーラスの3種類。中央の大きな球体は「キネマティックリジッドボディ」を設定しています。

Vortex Force の「強さ」に0~200~0%でキーを設定して、ぐるぐる回るようにしています。
Radial Force の「強さ」は Vortex Force とクロスフェードするように 0~200%でキーを設定して、球体に小さいアイテムが集まるようにしています。リレーションシップを使ってRadial Force の「強さ」が200%のとき、solver の「重力 Y」を 0 になるようにしています。
これだけだとアイテムが動き回るので「複合リジッドボディ」の「粘性」と「リニア減衰」にキーを設定して、アイテムの動きを遅くします。

 

「シャッター & グルー」を使って粉々になった破片でロゴができるとか、フォースかえたり色々面白い映像を作ることもできるんじゃないかと思います。

Tips

modoでバラバラに散らす表現

modoのソフトボディを使用して、オブジェクトをバラバラに散らす方法について書いてみたいと思います。

作り方は簡単です。オブジェクトをShatterで分割して、フォースで散らすだけです。徐々に動き出すところはフォースのフォールオフを使用します。

  1. ティーポットを作成。
  2. 「シャッター & グルー」を実行する。このとき「法線マップを生成」をONにする。
  3. 不要な Constraint Modifier を削除。
  4. 「シャッター & グルー」が作成したグループロケータをダブルクリックして子のアイテムを全選択し、「メッシュの統合」を実行して1アイテムにする。
  5. リストタブで shatterInterior マテリアルを選択して Delete する。
  6. ティーポットに「ソフトボディ」を適用して、「ローカル密度」を 0.05 に設定します。
  7. solver の「重力 Y」を 0 に設定します。
  8. Turbulence Force を作成して「強さ」を 0.2%、トランスフォームのスケールを 40% に設定します。つぎにTurbulence Force の移動にキーを設定して、適当に移動しつづけるように設定します。
  9. Wind Force を作成して「強さ」を 0.5% に設定して、45°回転します。
  10. Turbulence Force と Wind Force に Linear Falloff を追加します。
  11. Linear Falloff の「長さ」を適当に設定して、移動するアニメーションを設定します。シミュレーションを実行すると、フォールオフの範囲に入ったメッシュがフォースを受けて飛び散ります。

上の画面キャプチャでは忘れてましたが、ソフトボディを適用するメッシュは4角形以上のポリゴンを選択して「三角分割」か「四角形」にしたほうがよいです。多角形のポリゴンをソフトボディ計算するとエラーが発生して、頂点が極端に飛び出したりします。

あと上の画像はサブディビ切り忘れて隙間できてた。ソフトボディはメッシュが細かければ細かいほど布っぽい動きになるのですが、細かくするとトライアンドエラーに時間がかかるのが悩み所です。

 

modoのサンプルモデルを使うとこんな感じになります。

分割したメッシュだけだと少し寂しいので、メッシュが動き出すタイミングでパーティクルを発生させています。パーティクルの発生位置はFXアイテムに Gradient を追加して制御します。入力パラメータを「ロケータまでのY軸距離」、レイヤーエフェクトを「パーティクル密度」に設定しています。
パーティクルは RelationShip を使って回転と、小さくなって消えるようにスケールをアニメーションしています。

 

ベベルを使って面を切り離すと、昔のCGっぽくポリゴン単位でバラバラにすることも出来ます。切り離しただけだとスムージングがかからないので、Merge Meshes と Vertex Merge を使うとスムージングを掛けた感じにできます。ちょっと重くなりますけど。

 

モーショングラフィック作品でよく見かけるような表現がmodoでも手軽にできたりします。Constraint Modifierが同一メッシュ内のソフトボディで使用できるようになれば布が裂ける感じがだせそうなので、もっと進化して欲しいですね。

Tips

modoで紙吹雪を作る方法

modoのソフトボディを使用した紙吹雪の作り方について書いてみます。
紙吹雪や花びらが降る表現はよく見かけます。作り方としてよくあるのは板ポリに回転するアニメーションを設定して、その板ポリをパーティクルに割り当てる方法です。modoでもパーティクルとリプリケータを使えば同じことができますし、After EffectsのParticularが使われてるのもよく見かけます。

パーティクルを使用した方法は手軽ですが、ソフトボディを使用すると落下方向とポリゴンの面の傾きで動きに変化がでて、パーティクルにはないリアルな動きを表現できます。

紙吹雪のモデリング

板ポリをランダムに配置するだけです。方法はいろいろあると思いますが、modo 12で改良されてたジッターツールのリジッドモードが便利なので使ってみました。

  1. 平面ポリゴンを作成します。
  2. 平面分割(Shift+D)を4回実行。
  3. ポリゴンを選択して、ベベルを「グループ化」OFFで実行。面ごとにベベルします。
  4. 選択中のポリゴンを非表示(H)。
  5. ベベルで生成されたポリゴンを削除。
  6. ポリゴンを表示(U)。
  7. 移動ツール(W)をアクティブにして、ポリゴンを複製(Ctrl+Shift+ドラッグ)。
  8. ジッターツールの「リジッド回転」「リジッド移動」をそれぞれ実行してポリゴンをバラバラに配置します。

花びらや葉っぱのようにテクスチャを使う場合は、平面を配列ルールで複製した方がUVを維持できていいと思います。

 

ソフトボディの設定

紙吹雪のソフトボディはローカル密度を0.005と小さな値を設定して、紙のような軽さが出るように設定してます。「リニア減衰」に大きな値を設定しているのはゆっくり落ちるようにするためです。このあたりの設定はシーンの大きさやフォースの設定なんかで適当に設定してます。

  1. 平面ポリゴンを作成します(地面用)。
  2. 平面ポリゴンに「スタティックリジッドボディ」を適用。
  3. 紙吹雪用のメッシュに「ソフトボディ」を適用。
  4. ダイナミクスのプロパティで「密度」を0.005、「リニア減衰」を10%に設定します。
  5. Turbulence Force を追加し「強さ」を0.03%に設定します。トランスフォームの「スケール」を40%に設定し、位置にキーを追加してテクスチャロケータが移動し続けるように設定します。
  6. Vortex Force を追加し「強さ」を0.01%に設定します。このあたりのフォースの設定は好みにいじった方がいいと思います。
  7. Turbulence Force と Vortex Force にLinear Falloffを追加し、「長さ」を2mに設定します。
  8. シミュレーションを実行すると紙吹雪っぽい動きになると思います。平面に落ちたときプルプル動くのは止められなかった。

これだけでも簡単に紙吹雪っぽい動きになりましたが、パーティクルを使用したときとあまり変わらない感じがするかもしれません。そこでLiftのパラメータを設定します。Lift は空気抵抗で紙が上昇するような動きが加わって、ヒラヒラ舞う感じになります。
このパラメータはチャンネルビューポートにのみ表示されるパラメータです。余談ですがダイナミクス系のパラメータの頭に付く re は Recoil の略称かな?

 

Lift

Liftの値を変えて変化を見てみました。フォースはなしで重力のみの設定です。「密度」「リニア減衰」の値によっても動きが変わるので、ザックリとした参考だと思ってください。

Lift 0

 

Lift 0.01

 

Lift 0.1

 

Lift 1.0

 

最終的に「reLift」を 1 にして、Liftの効果が出やすくするために「リニア減衰」をデフォルトの4%に変更しました。

 

紙の裏側は、折り紙のように白色になるように設定してます。

質感は Variation Texture と Gradientを使用しています。Variation Texture の変化ソースを「メッシュパート」にすると、連続ポリゴン単位で色を変えることができます。ポリゴン背面の色はグラディエントの入力パラメータを「背面」に設定し、ブレンドモードを「スクリーン」にして白くなるようにしています。


ソフトボディでもパーティクルと同じくらい簡単に紙吹雪が作れるんじゃないかと思います。

ちなみにソフトボディを使用する場合は、solverの「シーンスケール」の値は変えない方がよいです。仕様なのかどうかわかりませんが「圧力」が反応しなくなったり、パラメータの動きが変になるような気がします。実物のサイズでソフトボディが上手く動作しないときは、シーン全体を大きくしてから計算する上手くいくかも知れません。

 

ソフトボディを使用した紙吹雪の表現は、LightWaveのプラグインMotionDesignerが別売だったときのチュートリアルに書かれてました。今でもドキュメントに載ってたりするのかな?

CG News

modoのプラグイン集「Dara」がオープンソース化

modoのプラグイン集「Dara」がオープンソース化されたようです。$399で販売されていた物ですが、アップデートが滞った状態だったみたいです。
https://gumroad.com/mechanicalcolor

リポジトリ
https://github.com/9bstudios

 

Ignition

10個のカースタータープリセットモデル。

 

Tagger

CADインポートなどの大規模なデータで、マテリアル、パーツ、選択セットの管理に役立つプラグイン。

 

Zen

ワークフローをより速く、よりすばらしいものにするためのツールバーとレイアウトのコレクション。

 

Passify

パス管理を簡単にします。QuickFloor、Ultralight、Toggler、Managerといった複数のプラグイン。

 

Cropper

クロップレンダリングツール。

 

Kelvin

スタジオレンダリングのためのリグとプリセットのコレクション。

 

Neat Freak

アイテムリストとシェーダツリーをクリーンアップするユーティリティ。

 

Render Monkey 2

簡単なレンダリング管理ツール。プログレッシブレンダリング、バッチレンダリング、任意のフレームレンジのレンダリング、パスグループに対応。

 

Metermade

ワンクリックでライブアップデートする寸法ツール。

 

Snap

バックアップを簡単に保存するシンプルなプラグイン。

 

Flipper

簡単な多軸シンメトリープラグイン。

 

Wheely

簡単に放射状シンメトリーをモデリングするためのプラグイン。

 

Bling

ワンクリックメニューで「matcap」シェーダを追加/削除するためのプラグインです。

 

Life Saver

Configsのバックアップ。

CG News

MODO用パーティクルオペレータアセンブリ「グリッド キット」

グリッド状にパーティクルを移動させるアセンブリが発売されたようです。価格は€8。https://gumroad.com/l/TheGrid

恐らくmodo標準機能で構築されたアセンブリだと思います。X-Particlesのデモ見て作ってみようとしてたので頑張れば作れると思いますが、買った方が手軽かも知れません。

 

概要

グリッドキットは、modoパーティクルを使用してグリッド/迷路のような構造を作成するためのツールであり、パーティクルの動きから作成されたカーブで簡単に作業できます。「どうやって作るのか」を考え技術的に闘うよりも、創造する時間を費やして楽しく過ごすことができます。
 

 

 


 

 

 

Tips

modoのパーティクル速度を使用して回転する方法

パーティクルの速度に応じて回転する方法について書いてみます。パーティクルオペレータの使い方の応用的な内容で、「速度」に応じて回転する風車のような表現ができるようになります。

Vortex Force を使用した単純な構成の画像です。移動速度に応じて回転数が上がります。
スケマティックはこんな感じ。

パーティクルオペレーターに「速度」と「回転」を追加します。「速度」を「回転」にリンクしたいところですが、「速度」と「回転」はチャンネルタイプが異なるので、Matrix From Euler を使用して「速度」をマトリクスチャンネルにしてから「回転」にリンクします。「速度」そのままだと回転の値が小さいので乗算ノードで30倍にします。

 

Wind ForceにLinear Falloffを設定して回転を制御してみた。

速度をそのまま回転に使用しているので、フォールオフの影響範囲に入った円柱の角度がジャンプしてしまいました。こういう使い方の場合は他の特性と組み合わせた方がいいかもしれません。

Wind Forceでは「強さ」を 1 、「速度」を 20 にしてパーティクルが移動しないように設定しています。Linear Falloffの影響範囲にあるぉパーティクルに速度が追加されることで回転させています。

サーフェースエミッターは1フレームで欲しいだけのパーティクルを発生できないので「放射レート」にキーを設定して、必要なパーティクル数になったら「放射レート」を0にしています。また「初期速度」「速度の広がり」を0にしてパーティクルが移動しないように設定しています。

 

矢印をパーティクルの進行方向を向け、速度に応じてスピンするような回転を設定してみた。

進行方向に回転する処理は、パーティクルオペレータの「前の位置」「位置」を Matrix Construct ノードを使用してベクトルチャンネルを位置のマトリクスに変換します。次ぎに Matrix Construct の出力を Direction Constraint の「起点」と「終点」にリンクします。これで「回転出力」を「回転」にリンクすればパーティクルの進行方向に合わせて Replicator が回転するのですが、今回は「速度」を回転に加えたいので、Direction Constraint の「回転出力」をMatrix To Euler の「ワールド回転」にリンクします。

パーティクルオペレータの「速度」を乗算ノードで適当に50倍にして、 Matrix To Euler の値と加算した値を Matrix From Euler でマトリクスに変換。Matrix From Euler の「ワールド回転」をパーティクルオペレータの「回転」にリンクすれば完成です。今回はZ軸方向に回転したかったので速度Zしか使用していませんが、XYZの3軸で好きに回転できると思います。

 

紙吹雪や花びらを回転する場合でも速度を使用すると移動量に合わせた回転になるので、「寿命」を使って回転するより少しリアルな感じが出せるようになる気がします。