Modo

Tips

modoでアニメ風の顔をモデリングする方法

modoを使用してアニメやフィギュアのようなキャラクターの顔をモデリングする方法を紹介したいと思います。大まかに顔の形状を作る手順をキャプチャしてみました。
ビデオは一発録り等倍再生(わずかにスローにしてる)で、操作にはマウスを使用してます。10分程度で顔の大まかな形状を作ることができるので、興味があればぜひチャレンジしてみてください。

 

1. 背景画像を読み込む

モデリングのアタリにする顔のラフ画像を読み込みます。Windowsエクスプローラーからビューポートに画像をドラッグアンドドロップして、「透明度」「輝度」を見やすく調節します。

 

2. 面を貼る

顔のモデリングはボックスや球から作り始めたり様々な方法があります。私の場合は円から作ります。

  1. 円柱ツールを使って、口と目の位置に16頂点の円を作成します。
  2. トポロジペンを使って円のエッジを引き延ばすようにして顔のトポロジーを作ります。
  3. 最後にスカルプト移動ツールのスムーズを使用してメッシュをなめらかにします。

トポロジペンを使うと頂点が離れていたり、余計な頂点ができてしまうことがあります。最後にメッシュクリーンアップを実行して、メッシュを綺麗にするとよいです。

ビデオではポリゴンが少なすぎました。目のあいだ、鼻の部分を縦に分割するの忘れたのでエッジループを追加したほうがよいです。
サブディビジョンサーフェースは少ないポリゴンで滑らかな曲面を作成できるのがメリットですが、ポリゴンが少なすぎると形状が作りにくくなるため適度に分割するのが望ましいです。

 

3.顔の奥行きを作る

基本的にスカルプト移動ツールを使用して顔の起伏を整えます。頂点編集はエレメント移動ツールでもできるのですが、スカルプトツールはShiftキーを押したときにスムーズツールに切り替わるのが便利です。

  1. エッジ拡張で顔に厚みを持たせ、サブディビジョンをONにします。
  2. 目と口の円を押し出して凹ませ、エッジウェイトツールで輪郭を強調します(好みの問題)。
  3. スカルプト移動ツールを使用して顔の形状を整えます。角張った所はスムーズで滑らかにします。

これで顔の大まかな形が出来上がりました。顔のような複雑な形状は少ないポリゴン数で全体の形を整えて、後からメッシュを分割して細部を作り込むとよいと思います。

 

4. 完成

メッシュを細かくしたり、イメージの形になるまで頂点を編集してキャラクターの顔を作り上げます。

 

まつげは目の周辺のポリゴンをコピーして形を整えて厚みを付けて作りました。髪はプラグインのPolyStrips From Curvesを使って大まかな形状を配置したものを、細かく調節して形にしました (プラグインを使ってますが、一発で欲しい形状にはならないため手動で調節する必要があります)。

バナナの房のような髪は頭のポリゴンをコピーしたり手動で地道に作るのが定番ですが、modo13.1以降であればCurve Sweepを使うとPolyStrips From Curvesに近いことが出来るので便利かもしれません。

 

ざっくりとした紹介ですが、モデリングの参考になったら嬉しいです。

Tips

modoのリジッドボディで壁が崩壊する表現

modoのリジッドボディダイナミクスで崩壊する表現をテストしてみたのでファイルを公開しておきます。単純なファイルであまり綺麗なデータではありませんが、何かの参考になればと思います。

 

壁が壊れる表現

球体で壁が崩れるサンプルです。複雑なデータではないのでシミュレーション速度は早め。ボリュームのレンダリングが遅いのでレンダリングするのはお勧めしません。

サンプルファイル

 

煙のない画像。

 

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

壁のオブジェクトは形状メニューの「メッシュシャッター」の均一を使用して分割してます。分割したアイテムは「複合ダイナミクス」を使用して、まとめてダイナミクスを設定してます。

Collision Emitterを使用してリジッドボディの衝突を使用してパーティクルを発生させ、そのパーティクルを利用して壁の大小の破片と、煙用のボリュームとスプライト用のパーティクルを発生させています。

今回は破片から煙用のパーティクルを発生させているため、衝突した頂点付近からパーティクルが発生していますが、本来はSurface Particle Generator等を使用して面からパーティクルを発生させた方が自然に見えると思います。Surface Particle Generatorは動作が重くなるので今回は使いませんでした。

煙のパーティクルの制御は他の記事に書いてるので、そちらを参考にしてください。

 

地面が崩れる表現

地面が崩れるサンプルです。シミュレーション結果をキャッシュするとファイルサイズが1GBくらいになりますが、大規模なデータではないので、テストシーンとしては軽い方だと思います。

サンプルファイル

スケマティックはこんな感じです。基本的には上の壁が壊れるシーンと同じです。

地面が崩れるタイミングの調整にはウェイクオンの「衝突フォース」を使用しています。パーティクルに質量を設定して、パーティクルと衝突したアイテムからリジッドボディが動き出します。衝突は近くのアイテムに伝播してしまうので、細かく制御するのに向かない場合があるかも知れません。

 

modoのダイナミクスはシミュレーション速度や精度に難点があるため、ビルが崩壊するような大規模シミュレーションをじっくり見せるために使用するのは大変そうですが、アクションシーケンスの短いカットで使用するには十分使えると思います。

 

参考

Tips

modoのプロシージャル頂点マップ

Foundryのフォーラムで面白いスレッドを見かけたので紹介します。

「Vertexmaps In The Mix」はmodo 14で追加されたプロシージャル頂点マップ活用法を共有しようというスレッドで、アニメーションからレンダリングまで幅広い活用方法が紹介されてます。
https://community.foundry.com/discuss/topic/151806/vertexmaps-in-the-mix?mode=Post&postID=1196476#1196476

スレッドでは様々なサンプルファイルが公開されてます。ファイルが公開されてないものから面白そうな物をまねしてみました。サンプルファイルを公開しておくので参考にどうぞ。

 

徐々に消えるウェイト

現状はウェイトマップを徐々に消えるような機能がありません。そこでパーティクルを使用して、メッシュとパーティクルが離れるにつれてウェイトが消えるようにするハック技です。

サンプルファイル

パーティクルの距離とウェイトの強さはテクスチャリプリケーターを使用しています。Constantはレイヤーを反転、または値を-100%に設定しないとウェイトが意図したように反映されないようです。理由は不明。

14.0ではウェイトをブラーする機能が搭載されてないため、全体的にウェイトが荒い印象になってしまいます。現在はTracerXにウェイトマップをブラーする機能があります。

 

メッシュのパートによるアニメーション

メッシュのパート(連結されたメッシュ)単位でウェイトを設定してアニメーションする方法です。

サンプルファイル

Falloff Operatorのポイントパートを使用して、Boxごとに0~100%のウェイトを適用します。ウェイト位置のアニメーションはmodo 13.2で追加されたグラディエントノードを使用して、Falloff OperatorのグラデーションをGradient Offsetを使用してアニメーションしてます。

 

プッシュデフォーマを使ったバージョン。上の内容と同じです。

サンプルファイル

Falloff Operatorが思いのほか便利だと気がつきました。最初のサンプルではトランスフォームデフォーマを使用しましたが、モーフマップを使用しておなじような表現を作ることもできます。

Falloff Operatorはジオメトリ情報を元にウェイト値を生成できるので、「ポリゴン面積」「ポリゴン平面率」などを使用した標準機能では作れない質感を作れる気がします。

 

 

以下は自分でテストしたものです。

 

広がるウェイト

選択した頂点からウェイトが広がる基本的な使用法です。

サンプルファイル

ソフトボディには「ゴールマップ」という、シミュレーションをおこなわない部分をウェイトで指定する機能があるのですが、残念ながらウェイトのアニメーションには対応してないようです。


クロスシミュレーションする範囲が広がったり、逆にクロスシミュレーションからシミュレーション前の形状に変化させるアニメーションを作りたいときもあるので、将来的にウェイトのアニメーションに対応してくれると嬉しい。

 

波紋

パーティクルでメッシュを変形する使用方法です。基本的には以前紹介したカーブフォールオフでメッシュ変形する方法と同じです。

サンプルファイル

「徐々に消えるウェイト」のようにテクスチャリプリケーターを使用しても同じことができますが、変形する時間を制御するのは、カーブを使用した方が扱いやすいと思います。

 

足跡

雪に足跡が残るような表現です。メッシュが細かいので重い。

サンプルファイル

足跡用のメッシュをアニメーションさせて、Select By Volume を使って足跡メッシュ内に含まれるポリゴンにウェイトを設定してます。

 

エッジウェイトのアニメーション

何に使えばいいのかわからないけど、とりあえずアニメーションしてみた。

サンプルファイル

 

ウェイトマップはデフォーマの変形以外にも、ウェイトマップテクスチャと組み合わせてレンダリングに使用できるのも便利です。UV展開しなくても頂点ペイント感覚でモデルに質感設定することができます。

ウェイトのブラーのようにまだ足りない機能もありますが、プロシージャルでウェイトを設定できるのはアニメーションで大いに役立ちそうです。

 

参考

Tips

modoで唇リグ

modoの機能紹介ビデオをまねて唇リグを作ってみた。
modo 13.2で追加されたグラディエントチャンネルとCurve Falloffを組み合わせて使うと、単純なノード構成でも柔軟なアニメーションができます。

サンプルファイル(13.2)

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


唇の閉じた位置にカーブがあり、そのカーブを使ってトランスフォームデフォーマの影響範囲を制御してい ます。影響範囲の制御はユーザーチャンネルに追加したグラディエントと、Curve Falloffの「長さに沿ってフォールオフ」を使用します。

Gradient ScaleやGradient Offsetを使うとカーブをアニメーションすることができるので、唇の開き具合や位置の制御に使ってみました。

 

Curve Falloff使った単純なサンプルも公開しておきます。 Curve SweepとCurve Falloffの相性が悪いのかレンダリングするとmodoが落ちます。

サンプルファイル(13.2)

Gradient BlendやGradient Mathを使えば、もっと複雑なアニメーションを作ることができそうですね。

 

参考

Tips

modoの虹色マテリアル

modoの虹色マテリアルについて書いてみます。

modoには光の干渉による虹色(スペクトル)を表現するためのマテリアルが搭載されています。このマテリアルを使用するとCD、真珠、シャボン玉、金属の油膜や焼き色のような質感を手軽に作ることができます。

 

Iridescence Material と ThinFilm Material

modoにはIridescence(虹色)ThinFilm(薄膜)という2種類のマテリアルがあり、どちらも虹色の効果をシミュレートすることができます。
2つのマテリアル違いはパラメータの設定方法が異なるくらいで、「スペキュラ」「反射」に限定すれば、ほぼ同じようなレンダリング結果になります。ThinFilmはフレネル反射が強いようで少し明るく見えます。

マテリアルの特長は以下の通りです。

Iridescence Material

  • 虹色の繰り返し回数を「波長」カーブと「nanometers」で制御
  • 虹色は「ディフューズ」「スペキュラ」「反射」「透過」「ルミナンス」で個別に設定可能

ThinFilm Material

  • 虹色の繰り返し回数を「厚み」で制御
  • 虹色は「スペキュラ」「反射」に限定した動作

基本的には細かく制御できるIridescence Materialがおすすめです。Gradientを使用しても手動でグラデーションを設定することもできますが、光のスペクトルを表現したい場合はIridescence Materialが手軽で便利です。

Iridescence Material にはThinFilm Materialにある「厚み」が無いように見えますが、チャンネルビューポートのnanometersで設定することができます。レイヤーエフェクトの「虹色」は「nanometers」チャンネルに影響してます。「厚さ」による色の変化はArnoldのマニュアルなど他のソフトのサンプルが参考になります。

 

Iridescence Material と ThinFilm Materialは「グループマスク」「レイヤーマスク」が使用出来ないので、マテリアルをマスクする場合はチャンネルごとレイヤーエフェクトを設定する必要があります。

マスクしたい箇所はウェイトマップを使用すると便利です。

 

ThinFilm Material を使用する場合は「屈折率」を1.0に設定するとレンダリングエラー(黒いピクセル)が発生するので、テクスチャを使用する場合は1.0にならないように注意する必要があります。

Iridescence Materialを使用すると金属の質感がリアルになるのでおすすめです。レザー素材にもいいらしいですよ。

 

テンパーカラー

 

油膜

 

亜鉛メッキ

 

ステンレス

 

追記

modo 14.1からIridescenceなどカスタムマテリアルをグループマスクすることが出来るようになりました。

 

 

参考

CG News

Modo 14.0リリース

Modo 14.0がリリースされました。モデリング機能を中心に少し小粒なバージョンアップになってます。個人的にはプロシージャルウェイトマップがようやく追加されたのが嬉しいです。
https://community.foundry.com/discuss/topic/151687/modo-14-0-is-now-available
https://learn.foundry.com/modo/content/help/pages/welcome_modo/whats_new_summary_modo14_0.html

 

マークアップ

マークアップツールを使用すると、選択したカメラビューに直接描画できるため、アニメーションや静止画に注釈、メモ、コメントを追加できます。

 

ベベルの機能強化

面取りを解除すると、選択した2つのエッジループ間の面取り面が折り畳まれます。Edge Relaxのポイントオプションを使用すると、選択したエッジに沿って新しいポイントを挿入したり、既存のポイントを削除したりできます。

 

エッジの面取りの機能強化

 

フェイススライド

スライドツールには新しいフェースモードがあり、接続されたフェースの頂点をスライドできます。

 

MeshFusion サーフェースストリップエンボス加工

シンプルなベジェ曲線、Bスプライン曲線、またはテキストを使用して、Fusionアイテムにエンボスサーフェスストリップを作成できる新しいワークフロー。

 

プロシージャル頂点マップ

頂点マップを作成し、ウェイト値、シーム、およびRGBA値を手続き的に設定できるようになりました。

 

mPathの改善

ライトパスエクスプレッション名が簡素化され、シェーダーツリーで簡単に操作できるようになりました。AxFマテリアルのレンダリングをサポートするようになりました。

 

シェーダーツリーのスケールグループ

シェーダーツリーの個々のテクスチャレイヤーを手動でスケーリングするのは難しい場合があります。このパラメーターを使用するとシェーダーツリーでマテリアル内のすべてのレイヤーを相互に相対的にスケーリングできます。

 

Xレイとゴースト表示

作業しているトポロジを理解しやすいように、3Dビューポートの透明度モードは背景と前景のワイヤーフレームを区別する助けに追加されました。このオプションはウェイトのあるワイヤフレームモデルを整理するのに特に便利です。

 

アンラップ & リラックス

Unwrap&Relaxツールは、Unwrap ToolとUV Relaxを1つのツールに結合し、UVに対して2つの操作を1ステップで実行してUVペルトを作成できます。

[ 選択エッジを無視 ]オプションがUVリラックスツールに追加されました。このオプションを有効にすると、UVリラックス操作は現在選択されているエッジを無視します。

 

ワークフローとUIの改善

  • なげなわ選択の部分選択
    なげなわ部分選択モード(キーボードショートカット: 8)を使用すると、エッジまたはポリゴンの一部のみを選択して、エッジまたはポリゴン全体を選択できます。
  • エレメントのレイキャストオプション
    このオプションを使用すると、ワイヤフレームビューポートモードでポリゴンを操作できます。無効にするとワイヤフレームモードで編集できるのは頂点とエッジのみです。
  • フォールオフにワールド変換オプションを使用
    このオプションを使用すると、フォールオフを選択したすべてのメッシュサーフェスに1つのサーフェスとして作用させ、それらを1つのサーフェスとして変形させることができます。
  • Vortex Deformerの名前をTwistに変更
    Vortex Deformerの名前はTwist Deformerに変更されました。
  • デフォルトでトラックボールの回転なし
    すべてのビューポートでトラックボールの回転がデフォルトで無効になりました。
  • キー割り当てに関する数値コマンドクエリ
    入力リマッピングシステムに数値引数のサポートが追加されました。


MODO 14 Developer Chatでは、技術的負債を解消するため一般的な機能追加やアップデートで問題になる点に取り組んでることを話してます。
14シリーズではコンパイラの更新、QtライブラリをQT5.xに更新、Python3への以降を予定していているようですが、 14シリーズとしてリリース出来るかは未定。この作業は18ヶ月間行われてるとのことです。

また、AMDと協力してProRender V2の作業を進めており、V2は大幅なコード変更を行ってるとのこと。マークアップ機能は日本のアニメ会社からのリクエストで追加したことなどが語られています。

Tips

modoで鎖帷子のような表現

modoのUV Transformを使って、鎖帷子(チェーンメール)のような表現をテストしてみた。

サンプルファイル

作り方は単純です。ソフトボディを使って布のようなシミュレーションを行います。

シミュレーションしたメッシュをUV Transformのターゲットメッシュに設定してチェーンメッシュを変形します。
UV TransformはUVを使ってメッシュを変形する機能です。メッシュ表面にメッシュを沿わせるモデリングやアニメーションで便利に使えます。

チェーンはループして見えるように配置した輪を、Arrayを使って複製してます。

 

UV Transformを使うと鎖帷子のように、そのままシミュレーションするのが難しい複雑なメッシュをアニメーションさせることができて便利です。

UV Transformはポリゴン数の少ないメッシュではそれほど遅くないのですが、Arrayと組み合わせると驚くほど遅くなります。また、UV Transformはターゲットの形状によって、計算不能ということなのかメッシュが変な方向に伸びてしまうことがあるようです。

 

参考

Tips

modoのGLキャプチャ コマンド

modoのGLキャプチャ コマンドについて書いてみます。

3Dビューポートを記録するGLプレビューは、アニメーション作成には欠かせない機能です。重いシーンではアニメーションをリアルタイムに再生することができないため、GLプレビューを使用して動きやタイミングを確認します。
modoにはビューポートを記録する「GLプレビュー」と「プレイブラスト」機能が搭載されてます。

 

GLプレビュー

アクティブな3Dビューポートを記録する機能です。記録サイズはビューポートの表示領域をそのまま記録します。「GLプレビュー」は動画形式でビューポートを記録し、記録した動画を自動的に再生します。プレビューはTempフォルダに保存されます。

C:\Users\ ユーザー名) \AppData\Local\Temp

「GL録画」「GL画像シーケンス」はディレクトリを指定してファイルを保存する機能です。

 

プレイブラスト

カメラを指定してビューポートを記録する機能です。記録サイズはRenderアイテムのフレームサイズが使用されます。
プレイブラストは記録専用の3Dビューポートを生成するため、ビューポートの「シェーディングスタイル」や「グリッドを表示」を設定するオプションが用意されてます。

これらのGL記録機能は gl.capture コマンドを使用してます。

 

gl.capture コマンド

gl.capture コマンドには12個の引数があるので紹介してみます。「GLプレビュー」や「プレイブラスト」では使用することのできないオプションが用意されてるので、必要に応じて使用すると便利です。

 

record

「GL録画」と同じです。

gl.capture record:true

 

seq

「GL画像シーケンス」と同じです。

gl.capture seq:true

 

filename

ファイルパスと保存するファイル名の指定です。指定がない場合はファイル保存ダイアログが開きます。

gl.capture filename:"C:\Temp\GLPreview.mov"

 

frameS / frameE

記録の開始と終了フレームです。

gl.capture frameS:10 frameE:25

 

autoplay

動画記録の自動再生です。指定がない場合はautoplay:trueとして動作します。

gl.capture autoplay:false

 

preview

「GLプレビュー」と同じです。

gl.capture preview:true

 

scale

記録サイズを25%か50%に縮小して保存します。指定がない場合はscale:fullとして動作します。

gl.capture scale:quart
gl.capture scale:half

 

savealpha

背景をアルファチャンネルとして保存します。指定がない場合はsavealpha:falseとして動作します。

gl.capture seq:true savealpha:true

 

cleanGL

ビューポートコントロールと情報表示(アイコンや情報など)」を表示します。指定がない場合は cleanGL:trueとして動作します。

gl.capture cleanGL:false

 

useMonitor

GL記録のプログレスバーを表示する。指定がない場合は useMonitor:trueとして動作します。

gl.capture useMonitor:false

 

counter

フレームカウントを表示する。指定がない場合は counter:trueとして動作します。

gl.capture counter:false

 

使用例

複数の引数を使用する時の例です。「シーケンス保存+フレーム範囲指定+スケール50%+アルファ保存」

gl.capture seq:true filename:"C:\Temp\GLPreview.tga" frameS:10 frameE:25 scale:half savealpha:true

 

コマンドの引数は並び順で処理されるので、以下のように引数の値だけ省力して記述することもできます。

gl.capture true true "C:\Temp\GLPreview.tga" 10 25 false false half true

 

私の場合AfterEffectsを使用してフレーム単位で確認することが多いのでシーケンスを使用してます。
gl.captureのバグなのかわかりませんが、0フレームの画像として「ビューポートコントロール」が表示された状態のカレントフレームを出力します。繰り返しタイミングを見るとき邪魔なので、手動で削除するためにシーケンスを使ってるという事情もあります。

 

指定したサイズで3Dビューポートを開く

おまけとして、プレイブラストのように指定したサイズでビューポートを開くコマンドを紹介します。

プレイブラストでプレビューを作成する時にアドバンスドビューポートで記録したい時があります。プレイブラストには「ソース設定をコピー」するオプションがあるのですが対応状況が半端なため、見た目が変わってしまうことがあります(14.1で修正されたようです)。
そんなときは記録したいサイズのビューポートを作成して、手動で表示オプションを調整するといいです。

cmds.batch {Temp} {layout.create Camera width:1280 height:720 persistent:false style:palette layout:"BlankCamera Palette"} {view3d.shadingStyle gnzgl} {view3d.presetload AVPGoodQ}{view3d.sameAsActive true}

 

GLの記録とは異なりますが、プレビュービューポートにもアニメーションをレンダリングする機能があります。
プログレッシブレンダラーであるため1フレームのレンダリング時間を指定できるので、画像は粗くてもGLより最終レンダリングに近い画像でアニメーションを確認できて便利でした。

残念なことに11.1でUI変更されたタイミングで「最大時間」が動かなくなってしまい、短時間でレンダリングができなくなってしまいました。便利な機能だったので修正して欲しいです。

 

参考

https://community.foundry.com/discuss/topic/81912

 

Tips

modoのスタティックメッシュ

modoのスタティックメッシュについて書いてみます。

 

スタティックメッシュとは

スタティックメッシュはメッシュアイテムの種類の1つです。通常のメッシュアイテムと異なりコンポーネント(ポイント/エッジ/ポリゴン)を編集することができない代わりに、CADデータや樹木のような高密度のメッシュデータを開いたときのメモリ使用量を低く抑えることができます。レンダリング可能ですが、デフォーマ等で変形することはできなくなります。

スタティックメッシュは、ZBrushから出力した高密度なメッシュをmodoでリトポする場合に最適です。

 

メモリ使用量を比較

ZBrushのサンプルファイルでおなじみ、サムライスピリッツのアースクェイクをmodoに読み込んでメモリの使用量を比較してみます。ポリゴン数は 6,303,616(三角ポリ)です。

 

modo起動直後

modoを起動した直後のメモリ使用量は「0.45GB」くらい。

 

メッシュ

通常のメッシュとして読み込んだ場合のメモリ使用量は「6.7GB」くらい。

 

スタティックメッシュ

スタティックメッシュとして読み込んだ場合のメモリ使用量は「1.58GB」くらいで、およそ1/4程度になります。

 

スタティックメッシュの使用方法

スタティックメッシュを使用するには、アイテムリスト等で右クリックメニューから「タイプの変更 / Static Mesh」を実行します。

または、objファイル読み込みオプションで「スタティックメッシュとして読み込み」をONにします。

メッシュとスタティックメッシュは相互に変換することができますが、通常のメッシュをスタティックメッシュに変換すると全て3角ポリゴンになるので注意が必要です。

 

リトポ用の高密度なメッシュをmodoに読み込むと、メモリが足りなくなったりビューポートが遅く感じることがあります。そんな時はスタティックメッシュを使用するのがおすすめです。

マニュアルにはレンダリングにもおすすめと書かれてますが、レンダリング時のみ高密度メッシュを使用したいという用途ではレンダープロキシが向いてます。
モデリングが完全にFixしてる場合はディファードメッシュという機能もあるので、用途に応じて使い分けるといいと思います。

 

参考

参考資料

Modo Essentialsが無料化

William Vaughan氏のModo Essentialsが無料公開されました。https://learn.foundry.com/course/3128/view/modo-essentials

Modo EssentialsはModoのツールと機能の操作と操作を分かりやすく説明するために作成された初心者向けのガイド本です。Modoの基本や便利なホットキーなどが解説されてます。
コアコンテンツに加えて、26のビデオと23のModoシーンファイルで構成される470 MBのボーナスコンテンツも含まれています。

Tips

modoでメッシュを押しつぶす表現

modoでメッシュを使用して、別のメッシュを押しつぶす表現について書いてみます。

サンプルファイル

 

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

プロシージャルモデリング機能のSurface Constraintを使用してメッシュを押しつぶしてます。

Surface Constraintをポリゴン数の多いアイテムに使用すると計算が遅くなりそうなので、単純な形状のメッシュを使用してメッシュ変形できるようにWrapデフォーマを使用しました。Wrapデフォーマはスケマティックを使用してメッシュを入れ替えると反応しなくなり、modoの再起動が必要になる気がするので注意が必要です。

最後に、押しつぶしたあと柔らかいメッシュが揺れるニュアンスが欲しかったのでSoft Lagを追加してます。

スケマティック下の方はSurface Constraintの軸を反転する処理です。Surface Constraintは元々がモデリング用ということもあり、コンストレイントする軸が「XYZ」と「反転」の組み合わせで使うようになってます。
モデリングでは問題ありませんが、アニメーション用途で使おうとするとアイテムの位置関係でオプションを切り替える必要があって少し手間が掛かりそうです。アイテムの位置が45°の範囲でXYZ軸の切り替えと自動的に反転するリグを組もうと思いましたが、少し面倒そうでした。

 

Surface Constraintを使うとソフトボディのシミュレーションよりも手軽に変形を確認できるのが便利です。

modoのアセットに含まれてるチキンを変形してみた。

 

参考

Tips

modoでサーフェースに沿ってアイテムを動かす方法

modoでサーフェース(メッシュ)に沿ってアイテムを動かす方法について書いてみます。

サンプルファイル

modoでサーフェースに沿ってアイテムを動かすときは「交差サーフェース」を使用します。作成手順は以下の通り。

制御用のアイテム、次にサーフェースを参照するアイテムの順番で選択して、「交差サーフェース」ボタンをクリックします。するとサーフェースに沿って移動するロケータが作成されます。
通常はこのロケータにアイテムをペアレントすれば、サーフェースに沿ってアイテムが移動して見えます。

しかし、リグで使用するコントローラそのものをサーフェースにコンストレイントしたい場合があります(Mayaのジオメトリ コンストレイントのように)。そんなときはスケマティックを使用して、Intersectノードの「位置出力」を、コンストレイントしたいアイテムの「ワールド位置」に接続します。すると直接操作するアイテムをサーフェースにコンストレイントすることができます。

スケマティックではConeの「ワールド位置」がIntersectに接続され、Intersectで起算した結果がConeの「ワールド位置」に接続されており処理がループしています。一般的にこのような循環したノード接続をおこなうと、無限ループ(エラー)が発生して計算することができませんが、modoでは1ノードであれば計算をループさせて使用することができます。

Tips

modoでPlexusっぽいライン表現

modoでAfterEffectsのプラグイン「Plexus」っぽいライン表現について書いてみます。

サンプルファイル

 

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

基本的にはパーティクルシミュレーションをParticles to Array使って配列を作成し、Create Polygonsでラインを生成してます。Create Polygonsは配列から一筆書きでラインを生成することしかできないので、Offset Arrayで少し配列をずらしたデータを作り、Merge Arraysを使用して1つの配列に統合します。Merge Arraysを繰り返すことで1つの頂点から複数のラインを生成してます。

パーティクルが一定の距離離れたらラインを消すためにSelect Edges by Lengthを使用します。

パーティクルをレンダリングするために、Replicatorを使用してキューブを複製してます。このときキューブはParticle Look At Modifierを使用して常にカメラを注視するように設定してます。

 

それっぽくレンダリングするとこんな感じ。ロゴの頂点番号を工夫すると、もう少し面白いテキストアニメーションにできそう。フォールオフSelect By Volumeを使って、ラインを生成する範囲を制御してみるのも面白いかも知れません。

 

参考

Tips

modoで線をアニメーションする表現

modoで線をアニメーションする表現について書いてみます。
ArrayとCreate Polygonsを使用すると簡単に線がアニメーションするような表現が可能です。

■ サンプルファイル

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

ロゴのメッシュデータをParticles to Arrayで配列にし、Offset Arrayを使用して配列データをオフセットアニメーションします。この配列を使用してCreate Polygonsで「ライン」を生成してます。

線が全てつながった状態だとアニメーションしてる感じがしないので、Select Randomを使ってラインをランダムに削除します。
Create Polygonsはロゴのメッシュ全体を一筆書きのようにラインを生成するため、長いラインが発生します。この長いラインを削除したかったので、Select Edges by Lengthを使用しました。

ロゴの形状を崩すところは Jitter を使用してます。

 

参考