CG 日記

Tips

modoのパーティクルをサーフェースに沿って動かす方法

今回はメッシュの表面に沿ってパーティクルを動かす方法について書いてみたいと思います。

■サンプルファイル

アイテムのスナップ移動」でも軽く書いてますが、modoのパーティクルシステムは他のソフトと違い、アイテムのリギングで使用するノードをそのままパーティクルシステムで使用することができます。
汎用性が高くて面白い特長ですが、どうすれば欲しい表現を実現できるかわかり難いと感じることもあると思います。そこで「パーティクルをサーフェースに沿って動かす表現」を作る場合の考え方、どんな感じでノードを使えばいいか手順を書いてみます。

 

1.サーフェースに沿わせたい →「交差サーフェース」コンストレイント

パーティクルをサーフェースに沿わせたい場合、まずサーフェースと交差判定できるノードが必要そうだと思いつきます。modoのアニメーション機能でサーフェースと交差判定できる機能といえば、「交差サーフェース」コンストレイントです。

「交差サーフェース」コンストレイントは、サーフェース表面にロケーターをくっつけてくれる機能です。操作の基準となるアイテム、メッシュアイテムの順番で選択してモディファイヤタブの「交差サーフェース」ボタンを押すと、サーフェース表面に沿って移動するロケーターを生成してくれます。

スケマティックでノードの繋がりを見るとこんな感じになってます。

Toroidアイテムと、操作の基準となるアイテム(Locator)がIntersect ノードにつながって、交差位置用のアイテム(Locator_2)に位置が出力されていることがわかります。

このノードの処理をパーティクルで組めば同じようにサーフェースに沿ったパーティクルの移動が作れそうです。

 

2.「交差サーフェース」コンストレイントと同じ処理をパーティクルで組む

スケマティックはこんな感じです。Intersectの流れを見比べると「交差サーフェース」で作られたノード構成と同じようにリンクされてるのがわかると思います。

Particle Operatorの特性で「位置(Read Only)」「位置」の2チャンネル追加して、「交差サーフェース」と同様にノードをリンクします。Intersect の「位置出力」のチャンネルタイプマトリクスなので、Matrix Vectorを使用して「位置」チャンネルにリンクできるようXYZ軸に変換します。

 

「位置(Read Only)」「位置」について

パーティクルは「位置(Read Only)」「位置」の2つのチャンネルを使用することで、他のノードで計算した結果を戻すことができるようです。
modoは1つのノードであれば依存ループにならずに計算出来るのですが、パーティクルの場合は1つだけでは複雑な計算ができないため、このような動作になってるのかもしれません。

 

VDB Voxelを使用してメッシュを作成すると、サーフェース表面を水が流れるような表現にも使えそう。

パーティクルをサーフェースに沿って動かすのは Particle Snap Modifierを使用しても同じような表現は可能ですが、Particle Snap Modifierはパーティクルそのものの位置には影響がありません。
例えばサーフェースに沿って動いてるパーティクルから、さらにパーティクルを発生させたい場合には今回紹介した方法が便利だと思います。

Tips

modoのプロシージャルモデリングでソフトクリーム作ってみた

暑いのでmodoのプロシージャルモデリングでソフトクリーム作ってみた。プロシージャルにこだわって作ったので、モデルの形状は雰囲気です。

■サンプルファイル(13.1)

 

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

 

クリーム

クリームの螺旋はSpiral Curveアセンブリを使用してます。Transform Effectorを使ってカーブをアニメーションしてます。そのカーブをmodo13.1で追加されたCurve Sweepを使用してクリームのメッシュを生成してます。クリームのシルエットやカップコーンに入る部分の調節にはラティスデフォーマを使用してます。

Curve Sweepは複数のパスを使用して押し出したり、ミニグラフを使用してカーブの太さを制御できるので便利です。

 

スプリンクル

クリームのふりかけ(スプリンクル)は、ReplicatorとLinear Falloffのイージングを使用してアニメーションしてます。カラフルな色のレンダリングにはVariation Textureを使用してます。

変形するメッシュにSurface Particle Generatorを使用するとフレーム単位でポイントの位置が変わってしまうことがあるので、中央のソフトクリームはアニメーション終了時のメッシュを別アイテムとしてコピーしてSurface Particle Generatorのソースとして使用しています。

プロシージャルモデリング用のメッシュにダイレクトモデリングしようとすると警告が表示されますが、ポリゴン選択してコピーすることはできるので便利です。

 

コーンカップ

コーンカップはコーン断面のパスを作成し、Radial Sweepを使用してコーンがあらわれるアニメーションにしてます。Radial Sweepには始点と終端のキャップを生成するオプションがあるのですが、あまり形状が綺麗にならなかったのでOFFにしました。

 

 

modoのプロシージャルモデリングはアニメーションでは使うには遅いのが気になります。クリームが落ちてくる速度と形状がいまいちなのですが、動作が遅いのでタイミング詰めるのあきらめました。今回はプロシージャルにこだわって作りましたが、クリームのらせん形状はデフォーマを使ってアニメーションしたほうが軽く作れるかも知れません。

プロシージャルモデリングはモデリングするときに便利ですが、アニメーションで使用するにはもう少し速度が改善されると嬉しいですね。今後のバージョンアップで快適に動くようになるのを期待してます。

Tips

modoのプロシージャルモデリングでクラシックなメッシュ粉砕

modoのプロシージャルモデリングを使用して、クラシックなメッシュ粉砕表現について書いてみます。プロシージャルモデリングはアニメーションを想定した機能が弱く、あまりいい表現にはなりませんでした。

■サンプルファイル

現在のように「シャッター&グルー」のようなボロノイ分割があたりまえの表現になる前は、ポリゴンが分かれて縮小するような表現を「粉砕」と呼んでいました。そんなゲームっぽいクラシックな表現ができたらいいなと思ってプロシージャルモデリングでどこまでできるかチャレンジしてみました。下の画像はC4Dの粉砕機能。

 

modoのスケマティックはこんな感じ。アセンブリとして再利用できるように作ってみた。

  1. Merge Meshesで粉砕したいメッシュを統合します。
  2. Polygon Bevelの「グループ化」をOFFにしてベベルをかけます。
  3. DeleteとSelect by Previous Operationを使用してベベルの「側面」を削除します。
  4. Push Influenceを使ってメッシュが波うつように変形します。
  5. Deleteを使ってメッシュを削除します。

アニメーションはLinear Falloffを使用してタイミングを調節しています。レンダリングにはCel Edges Materialを使ってみた。

 

単純な形状なのでそれっぽく見えるかも知れませんが、ベベルを使用するとポリゴンが小さくなる表現がうまくいかないです。
ベベルの「インセット」は長さ指定なので、大きな値を設定するとベベルが反転します。本来やりたかったポリゴンが小さくなって消える表現をするにはベベルが反転しないオプションか、「インセット」をポリゴンの大きさに合わせて%で指定するようなオプションが欲しくなります。
もしくはTransform Deformerにアクションセンターのローカルようなことができる機能が追加されるといいですね。何かいい方法あるのかな。

あと複雑なモデルを使用したとき、フォールオフが効かなくなったり怪しい動作に遭遇しました。サンプルファイル開くとわかりますがSelect by Previous Operationが原因のような気がします。

ロゴのスライスアニメーションを作ったときにも思いましたが、modoのプロシージャルモデリングはもっとアニメーションを考慮したオプションが増えて欲しいですね。アニメーションの場合は滑らかにモデリング処理を適用したいんですよね。
あとEdge SplitにTool Pipeがあればベベルを使用しなくて済むのでノード数が減らせるはずなので、Tool Pipeのような基本機能は全てのモデリングノードで統一して使えるように整備して欲しいな。

 

似たようなメッシュを粉砕する表現にはソフトボディーを使う方法もあるので、色々試してみると面白いと思います。

 

参考

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

Tips

modoでネットワークレンダリングする方法

今回はmodoの標準機能を使用してネットワークレンダリングする方法について書いてみます。modoのネットワークレンダリングは静止画と動画の両方に対応してます。Bonjourを使用すると設定も簡単でお勧めです。

 

ネットワークレンダリングとは

ネットワークレンダリングはレンダリング時間を短縮するために、複数のPCを使用して計算を分散してレンダリングする機能です。
3DCGのレンダリングは一般的に絵の品質を高めれば高めるほど時間がかかります。映画だと1秒間におよそ24コマ(フレーム)の絵を必要としますが、1フレームあたりのレンダリング時間は速いものだと1~5分間。遅い物だと1時間以上かかることも普通にあります。動画を作る場合は1台のPCで全てレンダリングするのは大変なので、複数のPCを使用してネットワークレンダリング(分散レンダリング)を行うのが一般的です。

 

ネットワークレンダリングの注意点

ネットワークレンダリングにはPCの使い方や、ネットワークに関する最低限の知識が必要です。ネットワークレンダリングでつまずきやすい点をまとめてみました。
modoではシーンファイルを読み込んでレンダリングを実行するPCを「マスター」、マスターからシーンファイルを受信して分散レンダリングするPCを「スレーブ」と呼びます。スレーブPCはmodoのライセンスがなくてもレンダリングに使用することができます。

  • マスターPCとスレーブPCに同じバージョン(ビルドナンバー)のmodoをインストールする
  • マスターPCからスレーブPCにファイルアクセスできることを確認する
  • レンダリング画像の保存先はネットワークパスを使用する
  • ファイアウオールの設定を適切に設定する
  • 必要に応じてBonjour をインストールする

 

同じバージョン(ビルドナンバー)のmodoをインストールする

あたりまえの話ですがmodoはバージョンアップごとに機能が追加されるため、同じバージョンのmodoを使用しないとレンダリング結果が異なることがあります。そのようなミスを防ぐためmodoは同じバージョンのスレーブとだけ通信します。これはmodoに限らず他の3Dソフトでも同じですね。

 

マスターPCからスレーブPCにファイルアクセスできることを確認する

マスターPCとスレーブとして使用するPCが同じネットワーク内に存在していて、お互いのPCが通信可能か確認しましょう。ネットワーク共有したフォルダにアクセスできれば問題ありません。たまにネットワークにPCが見えていてもアクセス出来ないことがあります。

 

レンダリング画像の保存先はネットワークパスを使用する

レンダリング画像の保存先はネットワークパスを使用します。これもあたりまえの話ですがマスターPCで「C:\RenderImage」のようなローカルパスを出力先に指定しても、スレーブPCからは画像を保存することができません。ネットワークにフォルダを共有して「\\MyPC\Share\RenderImage」のようなネットワーク経由のファイルパスを使用しましょう。

 

ファイアウオールの設定を適切に設定する

Windowsには「Windows Defenderファイアウオール」が標準で入ってます。modoがネットワークと通信を行う場合、ファイアウオールが通信を遮断してしまうことがあります。その場合はmodoが通信を行えるように適切に設定する必要があります。
追加でセキュリティーソフトを使用している場合も同様に、通信が遮断されないように通信の許可ルールを設定する必要があります。

もしも通信がうまく行かない場合は、PCのファイアウオールを一時的に無効にして通信が成功するか確認し、どこに問題があるかしぼり込むといいです。ネットワークの通信設定は少し面倒くさいので、わからないことは検索して頑張ってください。

 

必要に応じて Apple Bonjour をインストールする

Windows版のmodoをインストールする時、modo11.0まではmodoと同時にApple社のBonjourというソフトがインストールされていました。modo 11.1以降はBonjourがインストールされなくなったため、Bonjourを使用したい場合には別途インストールする必要があります。

Bonjourとは

BonjourはApple社が開発しているソフトです。「何の設定も行わず機器を使用可能にする」という目的のソフトで、面倒な設定を必要とせずLAN内でソフト間の通信を可能にします。Appleのメディアプレイヤー「iTunes」をインストールすると「Bonjour」もインストールされます。

 

ネットワークレンダリングの手順

ネットワークレンダリングはスレーブPCでmodoスレーブモードを起動、次にマスターPCのmodoにシーンファイルを読み込んで、レンダリングを実行するという手順で行います。
ネットワークレンダリングで使用されるシーンファイルは1度テンポラリに保存され、各スレーブPCに転送されます。

スレーブPC

スレーブPCはマスターPCからシーンファイルを受信してレンダリングする役割のPCです。マスターPCからレンダリングを実行する前に、modoをスレーブモードで起動する必要があります。

1. PCにmodoをインストールして起動します。

「Modo13.1v1j_Windows.msi」を使用して通常通りmodoをインストールします。modoは複数台のPCにインストールするこが許可されているので、好きな数だけPCにインストールします。

 

2. スレーブモードに設定します。

スレーブモードを設定するにはmodoをライセンスが無い状態で起動します。すると「ライセンス」ダイアログが表示されます。

ライセンス ダイアログの「高度」ボタンを押すと、いくつかのオプションが表示されるので「スレーブとして起動」を押します。

「レンダースレーブ」ダイアログが開き、modoが待機中になります。

Windowsのセキュリティ警告が表示された場合は「アクセスを許可する」を押してください。キャンセルするとファイアウオールに通信がブロックされレンダリングに参加出来なくなります。

 

ライセンスインストール済みのmodoをスレーブモードにしたい場合はレンダーメニューから「スレーブモードに設定」を使用します。

以上でスレーブPCの準備完了です。もしサードパーティのプラグインを使用している場合は、スレーブPCにもプラグインをインストールする必要があります。

 

modo_cl.exeのスレーブモード

modoを起動してスレーブモードにすると、フルスクリーンで起動してGUIのサイズが変えられないので邪魔です。コマンドライン用のmodo (modo_cl.exe)に起動オプション -slave を使用すると、modo_clをスレーブモードにすることができます。ショートカットを作成しておくと便利に使えるのでお勧めです。

 

マスターPC

マスターPCからネットワークレンダリングを実行する手順です。
modoにはスレーブPCと通信を行う方法が2種類あります。「Bonjour」を使用する方法と「ホストリスト」を使用する方法です。両方の方法を紹介しますが「Bonjour」を使用する方法がお手軽だと思います。

 

Bonjourを使用したネットワークレンダリング

Bonjourを使用するメリットは手軽に通信が行えることです。

1. modoを起動してシーンファイルを読み込む

2. ネットワークビューでスレーブPCを確認する

「ネットワークビュー」を開いて、スレーブPCがリストされていることを確認します。スレーブPCが表示されない場合は、ファイアウオールの設定など注意点を確認してください。

スレーブPCの状態は●の色で表示されます。

  • 緑色 : 互換性がありレンダリングが可能です。
  • 灰色 :互換性がありますが、レンダリングの準備ができていません。
  • 赤色 : 通信できません。または互換性がありません。

灰色でもレンダリングすると動くことが多いので、とりあえずレンダリング実行してみるといいです。

 

3. ネットワークレンダリングを設定する

「初期設定」ウィンドウを表示し「最終レンダリング」の項目で「ネットワークレンダーノードを使用」「ボンジュール経由でレンダーノードを検出」をONにします。

好みに応じて「ネットワークノードでのみレンダリング」「ネットワークレンダーノードへフレーム全体を送信」を設定します。

ネットワークノードでのみレンダリング

マスターPCをレンダリングに参加するかどうかの設定です。このオプションがONの場合、レンダリングはスレーブPCのみで実行されます。マスターPCで他の作業がしたい場合はONがいいと思います。

ネットワークレンダーノードへフレーム全体を送信

フレーム単位で分散するかどうかの設定です。このオプションがONの場合、1フレーム単位でスレーブPCに分散します。アニメーションをレンダリングする場合はONがいいです。

オプションがOFFの場合、1フレーム(1枚の画像)をバケット単位で分散します。静止画をレンダリングする場合はOFFがいいと思います。レンダリングウィンドウでは、スレーブのバケットが青枠で表示されます。

 

4. レンダリングを実行する

「アニメーションをレンダー」 または「F9」を押します。ファイルの出力先にはネットワークパスを指定します。

レンダリングウィンドウが表示され、レンダリングの進行状況やスレーブPCの数が表示されます。レンダリングウィンドウは下のバーをドラッグしてネットワークビューを表示することもできます。

 

ホストリストを使用したネットワークレンダリング

ホストリストを使用するメリットはレンダリングするPCを指定できることです。例えば10台のスレーブPCうち、5台でレンダリングするというようなグルーピングが可能になります。

1. modoを起動してシーンファイルを読み込む
2. ネットワークレンダリングを設定する

「初期設定」ウィンドウを表示し、「最終レンダリング」の項目で「ネットワークレンダーノードを使用」をON、「ホストリスト経由でレンダーノードを検出」をONにします。

好みに応じて「ネットワークレンダリングでのみ」「ネットワークレンダーノードへフレーム全体を送信」を設定します。

 

3. ホストを追加する

初期設定ウィンドウの「ホストリスト」の項目でホストを追加します。「ホストを追加」ボタンを押して「新規ホストエントリ」ダイアログを表示し、PC名 または IPを入力します。

リストでホストを選択して、右上の「ホストをテスト」を押してスレーブPCと通信可能かテストします。
次に「選択の接続」を押すと、ネットワークビューにPCがリストされネットワークレンダリングで使用可能になります。

 

4. レンダリングを実行する

「アニメーションをレンダー」または「F9」を押します。ファイルの出力先にはネットワークパスを指定します。

レンダリングウィンドウが表示され、レンダリングの進行状況やスレーブPCの数が表示されます。

 

ネットワークレンダリングはBonjourを使用すれば比較的手軽におこなうことができて便利です。
今回modo標準機能を使用したネットワークレンダリングの記事を書いてみましたが、modo標準のレンダリングマネージャーは安定性や信頼性が高くないようです。大規模なシーンのレンダリングではDeadlineのようなレンダリングマネージャー(ディスパッチャー)を使用した方が、PCの性能を考慮して賢く分散処理してくれる気がします。

 

参考

ネットワークレンダリングの手順
https://learn.foundry.com/modo/content/help/pages/rendering/network_rendering.html

ネットワークレンダリングのトラブルシューティング
https://learn.foundry.com/modo/content/help/pages/rendering/nr_troubleshoot.html

Tips

modoでモーショントレイル表現

modoでモーショントレイル、アイテムが移動したときの軌跡の作り方について書いてみたいと思います。モーショングラフィックでよく見かける表現です。

■サンプルファイル

 

スケマティックはこんな感じです。modo 13で追加されParticle ArrayとCreate Polygonsを使用します。

Arrayとは

Arrayはポイント、カーブ、アイテムの位置、文字列など様々な値から、頂点番号のような配列データを生成するノードです。Create Polygonsは配列データ使用してポリゴン、ライン、カーブを生成するノードです。
ArrayとCreate Polygonsを使用すると、modo 12以前ではできなかったアニメーション可能で自由度の高いポリゴン生成ができるようになります。

 

今回のモーショントレイルのような表現では、Meshの頂点をParticles to Arrayの「複数フレームモード」を使用してアニメーション全体の配列データを生成しています。
カーブの長さをアニメーションさせるためFilter ArrayとInt Range From Patternを使用して、カーブの始点と終点の位置をアニメーションしてます。最後にCreate Polygonsでカーブを生成します。

Curves to Arrayを使用すると、Create Polygonsで生成したカーブ間にポリゴンを貼ることができます。NURBSサーフェースのような制御ができて面白いですね。

静止したカーブをレンダリングする場合は、アイテムのプロパティで「カーブをレンダリング」をONにします。

アニメーションをレンダリングするとこんな感じになります。カーブごとに色を変えるのは、Variation Textureを使用しています。

 

ホーミングレーザーっぽい表現にも使えそう。

 

サンプルファイルではカーブ生成用に専用のメッシュを使用していまが、本当はSurface Particle Generatorを使用してランダムな位置からカーブを生成しようと思ってました。ですがSurface Particle Generatorを使用すると動作が遅くなるのでやめました。

ほかにもCreate Polygonsが原因なかわかりませんが、2つほど問題に遭遇しました。

  • モーションブラーを使用するとレンダリング時にカーブが消える。
  • GLよりカーブが短くレンダリングされる。

Arrayの使い方に失敗してるのかも知れませんが、安定した動作でより高度な表現をしたい場合には「TracerX」を使用するのがよさそうです。

 

参考

Arrayのステキな使い方が紹介されてるスレッドで、とても参考になります。https://community.foundry.com/discuss/topic/146466/arrays-in-the-mix

Tips

modoでアイテムが粉砕されて別のアイテムに変わる表現

modoでアイテムが粉砕されて、別のアイテムに組変わる表現について書いてみたいと思います。基本的には以前書いた記事の組み合わせでできる表現です。

 

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

 

最初にアイテム2個(球とトーラス)を Shatter を使用して粉砕します。粉砕タイプはUniformを使用します。破片の個数は球とトーラスで同じ数を設定します。
粉砕したアイテムは Locators to Array とCreate Polygonsを使用して、アイテムのセンターの位置に頂点を作成します。この頂点からSource Emitterを使用してパーティクルを発生させます。今回はWind ForceとCurve Forceを使用してパーティクルを制御しました。

 

球とトーラスのParticle Simulationのうち、どちらか一方を CSV Point Cacheを使用してキャッシュします。またCSV Point Cacheの「オフセット」を使用してシミュレーションを逆再生にします。

 

Particle Simulation_3では「パーティクルの位置をブレンドする方法」と同じく Matrix Blendを使用してパーティクルをブレンドします。こうすることで球から発生したパーティクルが、トーラスの位置に移動するパーティクルを制御できます。

 

Particle Simulation_3をMerge Meshesし、Create Polygons_3でラインを生成します。このラインメッシュに粉砕したアイテムを「頂点の位置コンストレイント」することでアイテムをアニメーションしています。粉砕したアイテムを球からトーラスに変えるところは「アイテムインフルエンス」を使用します。リニアフォールオフを使用して球の破片はスケールが100%から0%になるように設定し、トーラスの破片はスケールが0%から100%に変わるように設定しています。

スケマティックでは粉砕したアイテムを循環して使用してますが循環させない方がいいです。循環させるとコンストレイントの影響でアイテムの位置からパーティクルが発生しなくなります。少し煩雑になりますが粉砕したアイテムは複製して、 Locators to Arrayで使用するアイテムと、コンストレイントするアイテムはわけた方がいいです。


「頂点の位置コンストレイント」は複数のアイテムを同時にコンストレイント設定できないので、「コンストレイント補正オプション」をONにして、手動で1つずつコンストレイントしました。ちょっと面倒くさいですね。

 

パーティクルをフォローするようにカメラ移動するとこんな感じになります。

Iridescence Materialとクリアコートを設定してレンダリングしてみまた。Iridescence Materialは虹色の反射を設定できるので、たまに使うと面白いですね。

CG 日記

上野さん作ってみた

漫画「上野さんは不器用」の上野さんを作ってみた。アニメ化されてるけど漫画ベース。画像をTwitterに投稿してたのが 2018年6月28日、けっこう古い。

 

CBOXでリグ入れ。脚のIK移動に合わせてスカートが動くようにしてみた。スカートのリグについてはこちらの記事に書いてます。

 

手描きの絵っぽく、カメラの位置で顔とツインテール補正するリグ作ってみた。カメラの位置を使うリグはこちらの記事と同じ方法で、リレーションシップを使ってスケルトンの位置を移動してます。

ビューポートのセルルックな質感はMatteCapシェーダーを使ってます。modoではMatteCapをレンダリングで使えるので、このままレンダリングできます。

 

髪と顔をアニメ版によせてみた。

CBOXのテストを兼ねて作ったモデルだったのですが、スプラインIKやスケールのアニメーションをサクサクいじれて楽しい。アニメっぽい誇張表現が手軽に作れます。

CBOXはいわゆるモジュラーリグ呼ばれるリグシステムで、あらかじめ用意されたリグを組み合わせてレゴブロックのようにオリジナルのキャラクターリグを簡単に構築できるプラグインです。ボタンクリックで高度なリグを構築できて便利です。

Tips

modoのダイナミックリプリケータ

今回はReplicator通しのコリジョン計算を行うダイナミックリプリケータについて書いてみます。ビンにあめ玉を入れたり、アイテムをばらまくときに便利です。

サンプルファイル

 

modoではパーティクルにメッシュを複製する場合はReplicatorを使用しますが、パーティクルとメッシュにコリジョン判定を設定してもReplicator通しのコリジョン計算はおこなわれません。

Replicator通しのコリジョンを設定したい場合には Dynamic Replicator を使用します。Dynamic Replicatorを設定するには、Replicatorを選択して「アクティブリジッドボディ」をクリックします。

 

Dynamic Replicatorは異なるReplicator通しでコリジョン計算することができます。

Dynamic Replicatorの「質量」を設定すると、衝突したときの動きに変化をつけることができて面白いです。

 

modo 10くらいからサンプルコンテンツがあまり増えなくなってしまったので、Dynamic Replicatorの基本的なファイルを公開しておこうと思って記事を書いてみました。

 

参考

CG 日記

Fast Bokeh 使ってみた

フリーで公開されている被写界深度プラグイン「Fast Bokeh」を使ってみました。定番のボケプラグイン「Lenscare」、AE標準の「ブラー(カメラレンズ)」を比較したので画像もアップしておきます。

Fast Bokehはフリーであること、処理速度の速さが素晴らしいですが「エッジを適切に処理して使いやすい」というFast Bokehの特長はそれほど効果は感じられず、細かな設定や調整を考えるとLenscareに変わるものではないと思いました。

フルサイズで画像アップしてるので、エフェクトの変更したパラメータの変更はタイムラインを参考にしてください。

 

ブラー(カメラレンズ)

昔からあるAfter Effects標準のボケエフェクト。GPU処理により高速化されてるものの、ブラー半径が300を超えるような大きな値の場合に処理速度が遅くなる。また深度マップを使用した場合に、深度差が大きいピクセルでの処理が美しくない。周辺にオブジェクトの色がはみだしてる。

 

3倍に拡大した画像。

 

Fast Bokeh

ブラーのサイズによる速度低下がないので高速。しかしガウスベースのブラーのため、色が明るいピクセルと暗いピクセルが一様にブラーされてしまう。細かな設定がないため、カメラの口径ボケのような表現はできません。

 

3倍に拡大した画像。Depth画像のアンチ無し。オブジェクトの輪郭が少し周辺ピクセルと混ざってエイリアスが目立たなくなっているが、期待したほど綺麗に処理されなかった。

 

3倍に拡大した画像。Depth画像のアンチあり。FastBokehはアンチなしを推奨してるが、念のためテストして見た。アンチ部分で斜め方向にブラーが伸びて見える。これはLenscareも同じような結果になる。

 

Lenscare

定番のカメラボケプラグイン。処理はかなり遅いですが、細かな調整ができるのでお気に入り。

 

3倍に拡大した画像。FastBokehに比べるとオブジェクト周辺のエイリアスがガッチリ出てる。

感想としては、半端にエッジを処理されるよりLenscareのシャープな状態にanti-aliasingなどのエフェクトを使ってエイリアスを滑らかにした方が美しい結果になると思う。

 

元素材

テストに使用した素材です。何か試すときに使ってみてね。

 

ちなみに、上の比較ではボケがかかりやすいようにDepthの範囲を調節してます。

CG 日記

modoの記事が160件超えた!

modoの情報って少ないよね。というやりとりがTwitterであったことが切っ掛けで書き始めたmodoのTips記事が160件超えました!(2019年5月29日の時点で計162件)

2017年から1年半くらいの期間、定期的に記事を公開してきましたが、とりあえず書けることは書ききったので一段落な感じです。今後は以前のペースに戻り気が向いたときに記事を書こうと思います。

modoはよくできたソフトなので、みんなmodo使おうぜ!

 

Tips

modoってどんなソフト?

modoってどんなソフト?という人向けに、modoの紹介記事を書いてみたいと思います。

目次

・modo とは?
・modo の特長
・modo の使用用途
・modoのお勧めポイント
・modo の歴史

modo とは

modoはFoundry (旧Luxology) によって開発されている統合型3DCGソフトウェアです。Windows、Mac OS、Linuxで動作します。モデリングUVスカルプト3Dペイントリギングアニメーションダイナミクスレンダリングなど3DCGに必要な機能を搭載しています。

価格とライセンス形態

modo 13.0の時点でライセンス形態は2種類です。買い切りの「永久ライセンス」と、レンタルの「サブスクリプション ライセンス」です。ソフトウェアは1年間に3回「13.0」「13.1」「13.2」のように分割方式で機能追加されます。
https://www.foundry.com/products/modo#editions

  • 永久ライセンス $1799
  • サブスクリプション ライセンス $ 59 /月、$ 599 /年

ちなみに2018年に新規で購入されたmodoの75%はサブスクリプションだったそうです。以前に比べ価格が上昇しているので、個人ユーザーより企業で導入されることが多くなってるようです。

 

Modo indie

機能が制限されたModo indieという製品もあります。価格はサブスクリプションベースで¥ 1480/1 ヶ月、¥ 3480/3ヶ月、¥ 6080/6ヶ月。ソフトウェアは1年間に1度だけ、前年の最終バージョンにアップデートされます。
https://store.steampowered.com/app/401090/MODO_indie/?l=japanese

  • OBJ、FBX、glTF 2.0のエクスポートが100kポリゴンに制限
  • ベイク処理とレンダリングの解像度が4kに制限
  • コマンド評価オプションは使用不可
  • コマンド、スクリプト、コマンドヒストリパネルは「元に戻す」と「ヒストリー」以外は使用不可
  • Pythonエディタ、サードパーティ製スクリプト、サードパーティ製プラグインは使用不可
  • すべてのファイル形式を読み込むことができますが、lxfフォーマットでのみ保存可
  • エクスポート形式はOBJ、FBX、glTF 2.0 に制限
  • 画像の保存形式はpng、jpg、tiff、tga、exr に制限
  • ネットワークレンダリングは無効
  • 個人使用に限定

 

modo の特長

modoはアーティストと共に開発・成長してきたソフトで、3DCGという複雑な作業をアーティストが使いやすいように開発されてきました。Maya、3dsMax、LightWaveなど他の3Dソフトユーザーが既存のパイプラインへの導入がしやすいよう、操作やUIのスタイルを模倣できるような、カスタマイズ性の高いアーキテクチャーが特長です。

modo単体でもパイプライン全体として機能し、リアルタイムでレンダリング画像を見ながらペイントしたり、ジオメトリから画像を生成して、あとで別のモデルのディテールを描くブラシに利用するような直感的なワークフローを提供します。

 

この説明はマニュアルからの引用ですが、開発者がmodoをどのように捉えているかわかる説明だと思います。そして実際に使ってみて便利に感じるところでもあります。
90年代に開発された3Dソフトは古い時代の作法やプログラム的な都合を引きずった動作が多かったり、データの互換を維持するために同じような機能が複数搭載されていたり、3DCGという複雑な作業をより複雑にしている面がありました。
modoはPhotoShopライクな操作性やUIでデザイナーに使いやすく、機能を継続的にメンテナンスする開発ポリシーを持っているため、機能をシンプルに維持しています。

開発者がmodoについて「使いやすさ、機能性、および価格によってツールをより使いやすくすることで、市場を拡大できると常に考えてきました」と語る通り、アーティストが使いやすいように開発するという方針がmodoの魅力だと思います。

modo の使用用途

modoの使用用途はWeb、映画、放送、CGI、印刷、写真、パッケージデザイン、ゲーム開発など様々です。modoの使用事例はFoundryで公開されてるポートフォリオや、MODO JAPAN Groupのユーザープロファイルで見ることができます。

誤解のないように書いておくと2019年現在、企業が使用するパイプラインの中心には3dsMaxMayaが採用されています。しかし近年は1つのソフトで全ての工程を完結することは減っていて、作業工程ごとに効率的なソフトを使用することが増えてます。
modoは主にモデリングの生産性を高めるために採用されることが多いようです。また標準レンダラーが優秀なことから建築系やプロダクト系の静止画作成に使用されることも多いです。

modoの使用事例でメジャーな物や面白い物をピックアップしてみました。

 

映像制作

ILM

modoを映画で使用している企業といえばILMのアート部門が有名です。PhotoShopの開発者で、現在はILMのビジュアルエフェクトスーパーバイザーのJohn Knoll氏はmodo 201からのユーザーで知られています。 Knoll氏へのインタビューではレンダラーを好んで使用してるとのコメントがあります。

ILMのアート部門では、modoの強力なビジュアライゼーションツールを使用して、速度、柔軟性、および効率を向上させています。modoで開発された3Dコンセプトアートは、Iron Man2を含む多くのプロジェクトで重要な役割を果たしています。Knoll氏はまたレンダラーの出力も気に入っています。「私はMission:Impossible、ShopaholicとAvatar、Rango (Pacific Rimの予告編) の最終的なイメージとしていくつかの番組でModoレンダラーを使っている」と説明しています。

Knoll氏のプライベートプロジェクトからスタートしたローグワンでもmodoを使用していました。初期のティーザームービーにも使用してるそうです。

 

Pixar

PixarはアニメーションにPresto、レンダラーにRenderManなどPixar社自身が開発したソフトを使用してることで有名ですが、モデリングにはMayaやmodoを採用しています。

 

POWER/RANGERS

 

ミスタービーン

 

JACK ET LA MECANIQUE DU COEUR

レンダリングにmodoを使用してるらしい。

 

アニメ

つくもがみ貸します

デジタル作画やレイアウト作業の効率化に使用しているというのが珍しいですね。
https://cgworld.jp/feature/201902-cgw247-tmscam.html

 

ひるね姫

https://cgworld.jp/interview/201804-modo.html

 

ヤマト2202

http://modogroup.jp/user-profile/sublimation_honma01.html

 

フィギュア原型

フィギュアの原型に使用されてるのは面白いですね。
http://modogroup.jp/user-profile/urakawa-takanori.html

http://shop.cgworld.jp/shopdetail/000000000270/

 

ゲーム

ゲームのアセット作成での使用は、よく見かけます。

ゲームモデリングのワークフロー

https://cgworld.jp/feature/201801-cgw233T2-UE4-2.html

 

Rage

id SoftwareではRageやDoom 4でmodoを使用しています。ゲームで使用されているモデルの大部分だけでなく、レベルデザインにも使用してるようです。

 

Heroes of the Storm

https://community.foundry.com/portfolio/15795/heroes-of-the-storm-character-assets

 

Naughty Dog

The Last of Usやアンチャーテッドを開発するNaughty Dogではコンセプトアーティストがmodoを使用していて、modoのチュートリアルを販売してたりします。

 

The Division

Ubisoftの環境アーティスト チームではかなりの数のモデラーがmodoを使用してるらしい。アセットモデリング、UV、Retopology、Vertex PaintingにMODOを使用しているとのことです。
https://community.foundry.com/discuss/topic/77955/the-division-and-modo

 

Borderlands 2

Borderlands 2の環境アセットの作成に使用してるそうです。
https://www.foundry.com/industries/gaming/borderlands-2

 

広告ビジュアル制作

JVCケンウッド・デザイン

http://modogroup.jp/user-profile/jvc.html
https://www.foundry.com/industries/design-software/jvc-design-visualization-modo

 

DMAX Imaging

 

Trident

 

フットウェア

modoとColorwayはフットウェア業界での採用が多いらしいです。デザインの検討やバリエーション確認に使用してるとのことです。

New Balance

 

Brooks Running Company

 

Keen Shoes

 

個人作家

modoは一通りの機能が搭載されいて、モデリングからレンダリングするまでの工程が早いこともあり、個人作家やコンセプトアーティスト、漫画家さんが使用するのを見かけます。
https://www.autodesk.co.jp/redshift/inio-asano/
https://cgworld.jp/interview/201804-imacprofilms.html
https://cgworld.jp/interview/201708-sawada-2.html

 

Foundryのフォーラムには他の3DソフトからModoに来た人達のスレッドがあります。どんな用途でModoを使用するようになったか見てみると面白いかも知れません。中にはC4DのベータテスターやC4Dのコミュニティーを運営されてた方が、モデリングツールを理由にmodoに切り替えていて興味深いです。
https://community.foundry.com/discuss/topic/126162/did-you-come-to-modo-from-maya-blender-c4d-etc-what-s-your-story

modoのお勧めポイント

modoユーザーとして、個人的に勧めできるところを簡単に紹介してみます。
modoはモデリングツールやレンダラーが特長としてよく上げられますが、使いやすいリギング機能や強力なパーティクルシステムもお勧めです。リギングで使用するコンストレイントや測定系のノードが、パーティクルシステムでも同じように利用できる柔軟な設計になっていることに驚かされました。

modoはLightWaveに似たソフトを期待して使い始めましたが、LightWaveに似ているのはモデリングツールとレンダリング関連機能くらいで、アニメーション機能やノードはMayaに近く、プロシージャルモデリングはMaxに似た独自のソフトウェアに成長してると思います。

modoを使ってて意外とよくできてるんじゃないか?と感じたところをTipsとして公開しているので参考に見てください。モーショングラフィック系の表現にも使えると思います。

 

オープンソースや業界標準フォーマットへの対応

オープンソースや業界標準フォーマットの対応が早い点も特長だと思います。目新しい話題の技術を追加するのではなく、実際に市場で使われている有望な機能を選別して機能追加がおこなわれています。

 

学習リソース

ソフトを学習するためのリソースの重要性を理解していたため、ユーザーが作成したチュートリアルを公式サイトで販売するという3Dソフトの中では珍しい販売戦略を行っていました。これらの有料チュートリアルは、現在modoユーザーは無料で利用できるようになっています。

modo 入門向けコンテンツをまとめた記事があるので、参考にしてみてくださいね。

 

レンダラープラグイン

modoは機能拡張のために様々なKits(プラグイン)や素材集が販売されてます。なかでもV-RayやOctaneRenderのように人気の高いレンダラーがサポートされているので、他の3Dソフトと連携して使用する場合にも同じ品質のレンダリングが得られるという安心感があります。

現在modoのプラグイン関連で弱いのは、FumeFXPhoenix FDのような流体シミュレーション系のプラグインがないことが残念です。OpenVDBを読み込んでレンダリングすることはできますが、現在のところシミュレーションは他のソフトを使用する必要があります。

 

modoの課題

いいところだけ書くのは公平ではないので問題点も書いておきます。
現在modoが抱える問題としてよく上げられるのがパフォーマンスの問題です。以下のような場合にビューポートやツールの応答速度が遅くなる場合があります。

  • 1アイテム内のポリゴン数が多い
  • シーンのアイテム数が多い
  • マテリアルの数が多い
  • キャラクターアニメーションの再生/編集速度

アイテムの数、マテリアルの数が多いと遅くなる問題は建築系やCADデータを扱うユーザーから多く聞かれる問題で、データをインポートした場合に遭遇することが多いようです。扱うデータ量が多くなると遅くなるのはどのソフトでも共通した問題ですが、modoの場合は少し耐性が弱いようです。
modo、blender、C4D、Houdiniを使用した比較では Houdini > modo > blender > C4Dの順で、modoのビューポート性能は決して悪くないのですが、アイテムとマテリアルの数の多さが組み合わさるとパフォーマンスが低下するようです。

個人的に一番残念なのが、キャラクターアニメーションを再生した場合やアニメを作成するときのレスポンスが悪いことです。この問題はフォーラムで多くの書き込みを見ることができます。Foundryもこの問題を把握しており改善に取り組んでいるとのことです。

パフォーマンスの問題が解決すればmodoはモデリング、アニメーション、レンダリングと全ての工程で魅力的なソフトになると思うので、今後の改善に大いに期待しています。あと参照機能が作りかけなので、Maya程度に参照機能を強化して欲しい。

 

modoのフォーラムでは次のバージョンでの改善要望を書き込むスレッドが毎年立てられます。どんな要望が多いか見ると、現在のmodoの課題がわかると思います。基本的に専用ソフトの最先端機能にはかなわないけど、モデリングやレンダリング、セットアップに関する評価が高いように思います。
https://community.foundry.com/discuss/topic/144117/modo-13-wishlist

modo の歴史

最後にmodoの歴史についてまとめて見ました。ソフトの成り立ちを知ると、どんなソフトか見えてくることがあります。

2002年 Luxology 創設

modoはLightWave 3Dのコアチームが創設したLuxologyという会社で開発されました。
Luxologyの創設者はLightWaveを開発した Allen Hastings氏、Stuart Ferguson氏、NewTekの3D副社長 Brad Peebler氏の3人、初期のスタッフはLightWave 6~7の代表的な機能を開発したエンジニア達です。

LightWaveは当時ワークフローやテクノロジーの面でアーティストの要求を満たすことが難しく、完全な書き換えが必要と判断されました。彼らはアーティストが使いやすい3Dソフトを目指し、様々な業界のエキスパートからフィードバックを受けながら modo を開発しました。

modoの名前の由来は諸説あるようですが、日本語の「どーも(domo)」からインスピレーションを得たとStuart Ferguson氏がフォーラムに書き込んでいます。

 

2004年 modo リリース

modo は最初のリリース時にモデラーとして販売されたため、モデラーが進化したソフトと思われることがあります。ですが、リリース前の段階からアニメーション、ダイナミクス、レンダリング機能を含む統合型3Dソフトを目指して開発していることが伝えられていました。

開発初期のスクリーンショットからも、スケマティックやノード、タイムライン、レンダリングに関するアイテムが存在していたことがわかります。スクリーンショットにあるNexusは、2Dと3D両方のアプリケーションを開発するためのクロスプラットフォーム アーキテクチャの名称です。Nexusを使用することでmodoのコードの98%はプラットフォームに依存しないとのことです。

modo のレンダラーは当初、LightWaveと同じアプローチに基づくレンダラーを開発予定でした。しかし映画を制作するにあたり、マイクロポリゴンディスプレイスメントマッピング、アンチエイリアシングやモーションブラーの品質、大きなシーン処理に問題があったため、RenderManを参考にした新しいレンダラーを開発することを決めました。
※LightWave 2018ではレンダラーが旧来のものから刷新されました。

その後、modoは段階的に機能追加を行い統合型の3Dソフトに成長して行くことになります。

  • modo 201 ペイントとレンダラー追加。
  • modo 301 スカルプトツール、簡易的なアニメーション、ネットワークレンダリング追加。
  • modo 601 キャラクタアニメーション機能やリジッドボディー&ソフトボディダイナミクスの追加。
  • modo 701 パーティクルシステムやLinux版追加。
  • modo 10.1 プロシージャルモデリング追加。
  • modo 13.0 アニメーションレイヤー、ProRender追加。

 

2012年 Foundryと合併

Luxology と Foundry の合併が発表されました。Foundry は元々AfterEffects用のエフェクトプラグイン「Tinderbox」を開発していた会社です。その後Digital Domainによって開発されていたNUKE、Weta Digitalによって開発されたMari、Sony Pictures Imageworksによって開発されたKatanaなど、ハリウッド映画制作で使用されていた社内製ソフトウェアの開発を引き継ぎ一般に販売することで知名度が上がりました。現在Foundry のソフトはハイエンドな映画制作に欠かせない物になっています。

Foundry との合併にはJohn Knollの影響があったされています。合併によってmodoの開発はCOLORWAY、MARI、NUKE、KATANAの各チームの間様々なやり取りや技術的な恩恵を受けることになります。

Nukeとmodoレンダラーとの連携

 

2016年 アップデート方式の変更

modo 901までは年に1回のメジャーアップデートする方式でした。modo 10以降は年に3回の分割アップデートする方式に変更されました。またバージョン表記が「901」のような番号表記から、Foundryが使用する「10.0 V1」のような表記に変更されました。

アップデート方式の変更は、1回のリリースで広範囲に変更が行われるとソフトの安定性がそのなわれるリスクがあるため、分割アップデートすることによってソフトの安定性を維持するのが目的です。さらにmodo 10以降はパブリックベータを開始し、ソフトの安定性強化に力を入れるようになりました。

modoはバージョンアップごとに多くの機能追加が行われましたが、ツールが機能しない場合があるなど比較的不安定なソフトでした。Foundry合併後は品質管理に力を入れるようになり、modo 10シリーズを通してソフトの安定性の向上に注力したため、最新バージョンのmodo 13では比較的安定性が改善しているように思います。

 

2019年 modo 13シリーズ

modoは11シリーズ以降、継続してアニメーション機能の強化とパフォーマンスの改善が継続的に行われてきました。アニメーション機能の強化に関してはmodo 13シーリーズ後半で、かねてより計画されていたNLA(ノンリニアアニメーション機能)が開発中であることが語られています。

パフォーマンスの改善に関しては、現在問題点をプロファイリングする作業に取り組んでいるとのことです。modo 13シリーズの説明には「MODO 13 はシリーズが進むにつれてこれまで期待されていた機能を実現させ、さらにはマルチスレッディングと巨大なシーンのパフォーマンスを大幅に改善することを目指しています」との記載があり、modoが不得意とする大規模なデータやアニメーションのパフォーマンス改善が期待されます。

 

ちなみに2019年現在、Luxology初期メンバーだった Stuart Ferguson氏Matthew Craig氏Gregory Duquesne氏Arnie Cachelin氏はAppleに所属しているようです。AppleはARやVR関連で「3D UI Frameworks Engineer」を募集していたので、今後のApple製品にmodoっぽさを感じる時が来るかもしれませんね。
Stuart氏と言えばNexusの開発担当でしたが、現在はプロシージャルモデリングの開発を担当していたMatt Cox氏に引き継がれているようです。今後もNexusを基盤として開発が継続されるようです。

 

 

modoがどんな3Dソフトか、なんとなく役だったなら嬉しいです。