MODO

CG 日記

modoで自転車のチェーンを作るデフォーマ版

前回と同様に自転車のチェーンの作り方について書いてみます。今回はスプラインデフォーマを使用した方法です。

デフォーマを使用したチェーン作成 1

まずはメッシュ全体を変形する古典的なチェーンの作り方です。他の3Dソフトでも定番的に使用される方法です。

作成手順です。

  1. チェーンとカーブを用意する。
    カーブはスプラインデフォーマのターゲットカーブとして使用するので、ポイントが少ないと変形が破綻するので注意が必要です。
  2. チェーンをコンポーネントモードで「ラディアル配列」で円環状に複製します。
    プロシージャルモデリングの「Radial Array」を使ってもいいけど、次の工程のセンターをメッシュ中心に移動するのが面倒なので直接ポリゴンを複製しました。
  3. チェーンアイテムのセンターをメッシュの中心に移動します。
  4. スプラインデフォーマのソースカーブを作ります。
    真円のカーブが必要なので、プロシージャルモデリングの「Cycle」を追加してチェーンに沿うようにあわせます。
    スプラインデフォーマはプロシージャルモデリングのカーブを参照できないっぽいので、アイテムツリーから「メッシュメッシュオペレーションをフリーズ」します。
  5. チェーンアイテムに「スプラインデフォーマ」を適用します。
    スプラインエフェクタのプロパティで「ソースカーブ」と「ターゲットカーブ」を設定します。
    ソースカーブとターゲットカーブの長さの違いによってチェーンが崩れてるので、「伸縮」でメッシュの変形を調節します。
  6. チェーンアイテムを回転すると、チェーンがスプラインに沿って回転します。

これでデフォーマを使用したチェーンを作ることができました。デフォーマを設定したメッシュのトランスフォームを使用してアニメーションするのは「modoでアニメ風の眼球制御」と同じですね。

はじめはチェーンを直線状に並べようかと思いましたが、modoのスプラインデフォーマは残念なことに閉じたスプラインとして変形することができません。綺麗に回転させるには真円のソースカーブを使用するのが最適なようです。
このアイデアはWilliam Vaughanさんのビデオによる物です↓。

 

デフォーマを使用したチェーン作成 2

デフォーマとリプリケータを使用したチェーンの作り方も紹介してみます。全メッシュをデフォーマで変形する方法に比べて動作が軽く、手続き的にチェーン数を変更することができます。

作成手順です。

  1. チェーンとカーブを用意する。
    今回は真円のカーブをあらかじめ作りました。
  2. シリンダーを作成する。
    プロシージャルモデリングの「Cylinder」を追加して上下のキャップを消して、シリンダーの直径をカーブに合わせます。
  3. リプリケータを作成します。
    「原型となるアイテム」にチェーン、「ポイントソース」にシリンダー、「ソースモード」を「ポリゴンを使用」に設定します。これでポリゴンの中心にチェーンが複製されます。
    プロシージャルモデリングの「Cylinder」を使うことで、後から「サイド」の分割数を変更できるのが便利です。
  4. シリンダーメッシュに「スプラインデフォーマ」を適用します。
    スプラインエフェクタのプロパティで「ソースカーブ」と「ターゲットカーブ」を設定し、「伸縮」でメッシュの変形を調節します。
  5. シリンダーアイテムを回転するとチェーンがスプラインに沿って回転します。

 

カーブの長さに応じてチェーンの数を増やす

ついでにターゲットカーブにスプラインデフォーマを適用して、カーブの長さに応じて自動的にチェーンの数を増やすリグの作り方を紹介します。カーブの長さに応じて、シリンダーの分割数を変えるだけなので手軽に作れます。

作成手順

  1. ターゲットカーブにスプラインデフォーマを適用する。
    ロケータを移動してカーブを変形するとチェーンにすき間ができてしまいます。パスの長さが変わっているので当然ですね。
    すき間を自動的に埋めるために 「パスの長さ ÷ チェーンの長さ = サイドの数」という計算をスケマティックで構築していきます。
  2. ターゲットカーブの「メッシュ」チャンネルをスケマティックに追加します。
    メッシュオペレータ Cylinder の「サイド」をスケマティックに追加します。
  3. 「パスコンストレイント」を追加し、カーブの「メッシュ」を「長さ」チャンネルにリンクします。
    パスコンストレイントはパスの長さを出力するために使用することができます。
  4. 「乗算」「除算」ノードを追加します。
  5. パスコンストレイントの「長さ」を乗算ノードで100倍にします。
    「長さ」はメートルを出力するので100倍して値をセンチにします。単位を統一したほうが感覚的にわかりやすい気がするので100倍しましたが、無くても問題ないです。
  6. 「乗算」の出力をチェーンの長さで割ります。
    チェーンの長さを定規ツールで計って「除算」に入力します。今度はミリメートルで表示されたので、センチに直した値を入力しています。
  7. 「除算」の出力を「サイド」にリンクします。

これでパスの長さに応じて自動的にチェーンの数が変わるようになりました。微妙なすき間や、閉じたパス変形ができないため一部がフリップしてしまうところは微調整が必要です。
プロシージャルモデリングはこういった使い方ができるので便利ですね。

 

まとめ

パスコンストレイントを使用した方法は実際のチェーンのように一つ一つ別アイテムでした。自由度の高いリグを構築できますが、実用上不便なところもあります。
例えばパスの長さを変えるとアイテムにすき間ができたり重なったりします。後からチェーンの数を変更しようとすると、パスコンストレイントからやり直しになり面倒です。
効率化のためスクリプトを書けば気にならないかも知れませんが、私のようにスクリプトが書けない人はお手上げです (´Д`υ)

今回のスプラインデフォーマを使用した方法はチェーンが変形してしまいますが、パスの長さが変わってもチェーンにすき間ができるようなことはありません。極端にターゲットパスを変形しなければ、ある程度フリップを抑えることができますしチェーンの数も比較的簡単に変更できます。欠点はmodoのデフォーム処理が重いことですね。他のソフトでは気にならない変形でもmodoではストレスに感じます。

スプラインデフォーマとリプリケータを使用した方法は、変形も軽くてチェーンの数も手続き的に増やせるので調整が楽かも知れません。

チェーンという同じような表現でもアプローチが複数あり、それぞれメリットとデメリットがあります。作りたい物によってどの方法が適しているかも変わるので、色々試して好みの法を選択するのがいいと思います。

CG 日記

modoで自転車のチェーンを作る

前回のコンストレイントの補正オプションの実用的な使用方法として、自転車のチェーンや戦車の履帯に使えそうなリグの作り方について書いてみます。

modoは複数のアイテムにいちどにコンストレイントを適用できるので、補正オプションと組み合わせると効率的にリグを組むことができて便利です。

チェーンリグ作成手順の解説です。

  1. チェーン用のアイテムとカーブアイテムを用意します。 上の画像では説明を簡略化するためチェーンの赤と青の部分を1アイテムにしてますが、分けた方がよいです。
  2. 「カーブでインスタンス」を使用して、チェーンアイテムをカーブ上に複製します。デフォルトではアイテムの位置にかたよりがあるので、「長さ優先」をONにして均等にします。
  3. 複製したアイテムを全て選択した後に、ようnアイテムを選択しまにして移動がループするようす。modoのコンストレイントのルールとして、最後に選択したアイテムがターゲットになります。
  4. Ctrl キーを押しながらパスコンストレイントを適用します。
    このときコンストレイントの「補正オプション」をONにしておきます。
  5. シーンアイテム(カチンコ)の + ボタンをクリックして、シーン内のパスコンストレイント モディファイヤを全て選択します。
  6. プロパティで「パスパーセンテージ」を編集するとアイテムがパスに沿って移動します。チェーンがループするように「繰り返し」をONに設定します。このままでもアニメーションに使用できますが、毎回モディファイヤを全選択するのは面倒です。そこで全ての「パスパーセンテージ」を1つのチャンネルで操作するためのリグを組みます。
  7. 「パスパーセンテージ」をスケマティックビューにドラッグアンドドロップします。
  8. チェーンを全選択して、Ctrl+G を押して「グループ ロケータ」にまとめます。
  9. グループ ロケータに「ユーザーチャンネル」を追加します。
    「ユーザー名称」には適当にチャンネル名を設定します。ここでは「offset」にしました。チャンネルのタイプは「パーセンテージ」にします。ユーザーチャンネルはユーザーが自由に追加することができるチャンネルです。チャンネルを追加しただけでは意味のあるパラメータではありませんが、他のノードとリンクすることで複数のノードをまとめて制御することができるようになります。Mayaのカスタムアトリビュートと同じような機能ですね。ユーザーチャンネルはどのアイテムにでも自由に追加することができますが、ある程度アイテムと関連性があるほうがよいためグループ ロケータに追加しました。
  10. 「offset」をスケマティックビューにドラッグアンドドロップします。
  11. パスコンストレイント モディファイヤを全選択した後に、プロパティで「パスパーセンテージ」のラベルをクリックしてチャンネルを選択します。スケマティックの「パスパーセンテージ」チェンネルをShiftドラッグします。すると全てのチャンネルから線を引っ張ることができます。
  12. グループ ロケータの「offset」にリンクします。

これで「offset」を1つ編集するだけで、全てのチェーンの位置を制御することができるようになりました。ですがこれだけでは設定が不十分です。

このチェーンアイテムは上下が対称の形状をしているので気がつきにくいですが、カーブの上下でアイテムがフリップしています。一般的にパスコンストレイントのような機能はアイテムの方向を一定に保つことが難しいようです。フリップを回避するために「アップベクトル」を設定します。

アップベクトル設定手順の解説です。

  1. ロケータを追加し「ワールド位置」をスケマティックビューにドラッグアンドドロップします。このロケータがアップベクトル制御用のアイテムになります。
  2. パスコンストレイント モディファイヤを全選択した後にチャンネル ビューポート タブを右クリックして「ビューポート設定 → 結合表示」をONにし、「up」チャンネルをスケマティックビューにドラッグアンドドロップします。「結合表示」は同じタイプのノードが複数選択されたときに、チャンネルをまとめて表示するオプションです。選択中の全ノードの「up」チャンネルを選択するために「結合表示」を使用しています。
  3. 「up」チャンネルをShiftドラッグして、ロケータの「ワールド位置」にリンクします。
  4. フリップしているアイテムのパス コンストレイント モディファイヤを選択して、「ロール」を180°に設定します。
    上の画像ではフリップしているモディファイヤを特定するため、フリップの始点と終点のアイテムを選択してモディファイヤの番号を確認しています。アイテムツリーで F キーを押すこと、選択しているアイテムにリストをスクロールできるので便利です。

これでアニメーションしてもフリップの発生しないチェーンリグの完成です。標準機能だけで手軽にリグが作れるのが便利ですね。

ちなみに静止画用途ならプロシージャルモデリングの「Curve Clone」を使うのが手軽でお勧めです。少し重いですが、カーブの編集や複製する数をいつでも調節できて便利です。
本当は「Curve Clone」でアニメーション用のリグを作れればいいのですが、modo 11.2ではアップベクトルを設定できないのでフリップを回避する手段がないように思います。もっと軽くてフリップしにくい動作してくれたらもっと便利なんですけどね。そのあたりは今後のバージョンアップに期待したいですね。

他の手段としてパスジェネレータで生成した頂点にリプリケータを使う方法も考えましたが、パスに沿わせる部分が上手く行かなかったのであきらめました。

カーブにスプラインデフォーマを適用すると、こんな↓感じの履帯リグも作れるかもしれません。

この戦車のリグを作った Richard Hurrey 氏はPixarで活躍されてるキャラクターモデラー&リガーの方ですが、Foundryからトレーニングビデオをリリースしているmodoのヘビーユーザーでもあります。
この戦車のデータは公開されているので必見です。履帯を複雑な変形に対応するため、履板1つ1つに異なるアップベクトルが設定されてます。他にも細かな制御ができて凄いです。modoはどの程度のリグを構築できるか興味ある方にも参考になるのではないでしょうか。

今回は王道的な方法でチェーンを作ってみました。次はせっかくなのでスプラインデフォーマを使用したチェーンの作り方を書いてみたいと思います。

CG 日記

modoでアニメ風の眼球制御

Twitterでアニメ系キャラで使用する平たい眼球について話題になっていました。方向コンストレイントを使用して眼球を制御したいときは、トランスフォームデフォーマを使用する方法もあるのでご紹介します。
手順は簡単です。球にトランスフォームデフォーマを適用してスケールします。次ぎに球に方向コンストレイントを適用します。

3Dソフトは同じような表現でも複数のアプローチがあります。正解は状況によって変わるので、色々試して好みの方法方を使うのがいいと思います。

 

参考

ちなみに、この眼球の変形はトランスフォーム計算で発生するシアーを利用したものです。シアーについて正確な説明はできないので、詳細を知りたい方は他のサイトを検索してみてください(^^;
ざっくりと説明すると、親子関係にある親アイテムを不均等にスケールした場合、子のアイテムを回転すると斜めにゆがむことをシアーと言います(均等にスケールされている場合はシアーは発生しません)。上の例では回転トランスフォームの順番を変更することで、親子関係を設定せずにシアー変形させています。

シアーは3DCGのトランスフォーム計算で一般的に発生する現象なので、親子関係を設定してスケールと回転できるソフトであれば、どのソフトで同じような目の表現ができます。
この目のような場合は上手く機能しているケースですが、シアーはキャラクターリグのような場合は問題になることが多いので注意が必要です。シアーが問題になるケースとして手にオブジェクトを持たせた状態で、手をスケールした場合はシアーが発生しがちかもしれません。

この現象をはじめて経験したのがLWで、しばらくのあいだLWのバグか何かだと思ってました。

CG 日記

modoのコンストレイント補正オプション

modoの補正オプションについて書いてみます。
補正オプションはコンストレイントを適用するときに、アイテムの見た目の位置や角度を維持してくれる機能です。リギングでコンストレイントを使用するときに知ってると便利です。

補正オプションはセットアップ タブの上のUIメニューに配置されていて、ボタンをONにすると関連するボタンアイコンが切り替わります。

 

補正オプション OFF

コンストレイント先のトランスフォーム(位置、回転、スケール)にそろいます。

 

補正オプション ON

現在のトランスフォームの見た目を維持した状態でコンストレイントすることができます。

動作としてはコンストレイントノードのオフセットに値を入れることで見た目を維持しています。


modo使い始めたときは補正オプション知らなくて不便だーと思ってましたが、補正オプションに気がついてからはコンストレイントが便利に使えてます。初心者トラップな気がするのでデフォルトONにして欲しいですね。
次回は補正オプションを使ってチェーンやキャタピラのようなリグの作り方を書いてみます。

CG 日記

modoのセットアップモード

今回はセットアップモードについて書いてみます。セットアップモードはメッシュ変形(デフォーマ)に欠かせない特殊なシーン状態です。
セットアップモードの概念自体は珍しいものではなく、3Dソフトには何かしら同じような仕組みがあります。他の3Dソフトでは機能が分かれてたりしますが、modoはセットアップモードとしてまとめられてるのが便利です。

 

セットアップモードとは?

セットアップモードはデフォーマやIK計算の基準となるアイテムの「初期位置」を格納する特殊なシーン状態です。

3Dソフトではスケルトン(ボーン)を配置して、スケルトンを移動や回転させることでポリゴンメッシュを変形してアニメーションするのが一般的です。例えばスケルトンを90°回転してメッシュを変形したとき、どの位置からスケルトンが回転したのか基準となる情報が必要になります。この「どの位置?」を格納しているのがセットアップモードです。

セットアップ ボタンを押すとビューポートに黄色の枠が表示されセットアップモードに切り替わります。セットアップモードではデフォーマに関連したアイテムが初期位置に移動します。デフォーマによるメッシュの変形は全て無効になりますが、コンストレイントやIKなどのチャンネルモディファイヤは動作します。

 

セットアップモードのメリット

セットアップモードで便利なのがスケルトンの位置調整です。キャラクターリグを作成してポーズをつけてみたものの、動かしてみたら間接の位置に違和感があることがあります。セットアップ段階ではこの調整が頻繁に発生しますが、modoはセットアップボタンでアニメーションとセットアップモードを行き来しながらスケルトン位置を調整できるので便利です。

3ds MaxだとBipedの「フィギュア モード」や CATの「設定/アニメーションモード切替」と、 スキンモディファイヤの「常に変形」と同じ感じです。LWだと「ボーン編集モード」、MayaのHumanIKだとReference用のスケルトンを「スキンされたジョイントの移動」する感じかな?

 

セットアップモードのアイテム位置

セットアップモードに切り替えたときアイテムの位置や角度が変わります。これはチャンネルに複数の値を格納する仕組みを利用しています。チャンネルに「セットアップ/静止値」を設定すると、セットアップモードで値が切り替わります。

少し複雑そうですが General Influence の「エフェクタ」に接続されているアイテムは、トランスフォーム(移動、回転、スケール)を編集すると自動的に「セットアップ/静止値」が設定されます。この仕様によりデフォーマを使う場合は「セットアップ/静止値」を意識することなくセットアップモードを使用することができます。
バインドしたスケルトン、トランスフォームデフォーマ、スプラインデフォーマ等のロケータはこの仕組みで初期位置が設定されます。

自作のリグを作成する場合は「セットアップ/静止値」の仕組みを理解しておくと便利です。「セットアップ/静止値」は全てのチャンネルに設定できるので、セットアップモードでチャンネルモディファイヤを無効にしたり、「セットアップ/静止値」が設定されているトランスフォームにリグを構築することができるようになります。

セットアップモードの仕組みがわかると、デフォーマを多用するキャラクターリグも構築しやすくなるのではないでしょうか。

CG News

MOOTZOID プラグインがフリー化

Softimage用のプラグインメーカーとして有名だった MOOTZ OID が、プラグインを全てフリー公開してサポートを終了したようです。emReader、emPolygonizer5はmodo用のプラグインもあります。
http://www.mootzoid.com/plugin

ダウンロードしたファイルは、フォルダごと以下のディレクトリにコピーすると使えるようになります。

  • C:\Users\(ユーザー名)\AppData\Roaming\Luxology\Kits
emPolygonizer5

emPolygonizerは「メッシャー」プラグインです。Realflow で計算されたパーティクルをメッシュ化するために使用します。最近ではOpenVDBにメッシュ化する機能がありますが、emPolygonizerは色々設定があるので細かな調整ができるかもしれません。

 

emReader

emReaderはキャッシュされたジオメトリシーケンスを読み込むプラグインです。
メッシュ入りの Realflow フォーマットやobjシーケンスをロードすることができます。modo標準の Realflow Particle ノードではメッシュに対応していないので、Realflowユーザーには朗報かもしれません。といっても最近はAlembicが使えるのかな。

CG 日記

modoのトランスフォームアイテム

引き続きチャンネルの基本について書いてみます。
modoの設計思想にはレイヤーという概念が深く根づいています。メッシュレイヤー、シェーダーツリー、アクションレイヤー。今回紹介するトランスフォームアイテムもレイヤーとして動作します。

 

トランスフォームアイテムとは?

トランスフォームアイテムとは「移動」「回転」「スケール」チャンネルのことです。アニメーションやリギングで欠かせないチャンネルですが、modoはこのトランスフォームアイテムを好きな数だけレイヤーのように追加することができます。これはリギングする上でとても便利な仕組みです。
3ds Maxだと「リスト コントローラ」が同じような機能だった気がします。

 

トランスフォームアイテムのメリット

トランスフォームを加算(オフセット)のように使用できます。具体的な例としてはコンストレイントやエクスプレッションで計算された値と、ユーザー操作のトランスフォームを組み合わせることができます。これはリギングでとても便利な機能です。

例えば以下の画像では位置トランスフォームを追加し、 Channel Noise を使用してランダムな動きを加えていますが、アイテムの移動は通常通り移動ツールで操作することができます。

アイテムをロケータにペアレントしても同じ事ができますが、トランスフォームアイテムを使用することでアイテムリストの階層構造が深くならずに済みます。
また modoは ロケータの表示数が多いとビューポートのパフォーマンスが低下するため、ロケータを使用しなくていい場合はトランスフォームアイテムかグループロケータを使用するのがお勧めです。(11.0 からは「アイテム表示 キャッシュ」がおこなわれロケータのアニメーション再生が高速化されているらしい)

 

トランスフォームアイテムの追加方法

チャンネルビューポートで「位置の追加」「回転の追加」「スケールの追加」をクリックするとトランスフォームが追加されます。太字で表示されるのがプライマリのトランスフォームで、トランスフォームツールで動かすために使用されます。

これら複数のトランスフォームアイテムはリストの下から上へ順番に計算されます。詳細は「modoのマトリクス計算順」参照のこと。

modoはアイテム追加時はトランスフォームアイテムがありません。トランスフォームツールで編集したとき自動で追加されます。これは何千ものアイテムが存在するシーンで余計なチャンネルデータを扱わずに済むための仕様で、ファイルのサイズや処理時間を大幅に節約できるようです。この仕様が気にくわない場合は初期設定で変更するこができます。

  • ファイルメニュー / システム / 初期設定 / デフォルト / メッシュアイテム / アイテムトランスフォームの自動作成

 

トランスフォームアイテムの種類

トランスフォームアイテムは「移動」「回転」「スケール」の他にもいくつか種類があります。ピボットを移動や回転したときに追加される「ピボット位置補正」「ピボット回転補正」、XYZの一軸だけスケールした状態で「同位置でペアレント」した場合に追加される「シアー」の全6種類です。

「transform.add」コマンドを使うと好きなトランスフォームアイテムを追加できます。

 

トランスフォームの結合

右クリックメニューの「結合」を使用して、複数のトランスフォームの値を1つのトランスフォームにまとめることができます。

 

トランスフォーム ゼロ

トランスフォームアイテムの仕組みを使用した機能が「ゼロ」です。プロパティのトランスフォームに「ゼロ」というプルダウンがありますが、実はこれはトランスフォームアイテムを追加して「結合」までを自動で処理してくれる便利機能です。

「ゼロ」は LightWave の機能だと「中心点回転記録」と同じです。Mayaだと回転に「トランスフォームのフリーズ」をすると「ジョイント方向」に値が入るようなやつだと思います。たぶん。

例えばキャラクターリグを作る場合、TスタンスやAスタンスでスケルトンを作成して初期姿勢にすると思います。このとき移動や回転に値が入ってると、初期姿勢に戻したい場合はアイテム毎に異なる値を入力しないと初期姿勢に戻すことができません。
ゼロはトランスフォームアイテムに値を格納することで、プライマリのトランスフォーム値を全て 0 にすることができます。

初期姿勢のトランスフォームを全て 0 にしておくと、「リセット」の「全て」をクリックするだけでアイテムを初期姿勢に戻すことができるので便利です。

回転したスケルトンがジンバルロックしている場合も「ゼロ」を実行することで、ジンバルロックしていない状態を初期姿勢にすることができます。FKで操作するアイテムは、スケルトンの位置調節が終わってポーズやアニメーション作成をはじめる前に「ゼロ」を実行しておくと色々便利です。

modoはスケマティックが使いやすく、トランスフォーム関連もリグが組みやすいのがいいですね。

CG News

GeoFromCurves 1.5 リリース

ゲーム用のヘアーモデリングプラグインGeo From Curvesがアップデートされました。このバージョンから映像にも使用できるよう改良がおこなわれたようです。
https://community.foundry.com/discuss/post/1109789

名前を「polystrips」 から「Geo From Curves」に変更しました。(ただし、互換性のためにいくつかのリンクを維持する必要がある)

オリジナルのPolystripsFromCurvesはアニメーションを念頭に置いてリリースされていませんでした。このバージョンではTRacerXと組み合わせて使用​​するような、時間の経過とともにトポロジーが変化するアニメーションカーブの安定性が大幅に向上します。以前のリリースで問題があった場合は、すべてのosXユーザーにこのバージョンに更新することをお勧めします。

また、リアルタイムヘアとは異なるワークフローにGeo From Curvesを使用している人向けに新しい追加があります。

  • 新しいセグメントをカーブのコントロールポイント、またはカーブのそれぞれのポイントで生成できるようになりました。これによりハードサーフェス目的でカーブ押し出しを必要とするすべての人に、より優れたコントロールが可能になります。
  • Profile extrusion。「CV by Segments」と組み合わせることでプラグインで生成できるシェイプの種類を大幅に強化します。
  • UV設定パネルのUVTagをコピー/ペーストします。
CG 日記

modoのアクションレイヤー

前回に引き続きチャンネルについて書いてみたいと思います。

modoのチャンネルは複数の値を格納することができます。SDKのページを見ると「アクションレイヤー」という仕組みのようです。このアクションレイヤーを使用している代表的な機能が「アクション」「レンダーパス」「セットアップモード」です。
3dsMaxでは「ステートセット」、Mayaでは「アニメーションレイヤ」「レンダーレイヤ」に該当する仕組みです。modo 11.2 では格納された値をブレンドするノンリニアアニメーションエディタのような機能が提供されていないため、シンプルなレイヤーのON/OFFスイッチとしてのみ利用可能です。

「アクション」「レンダーパス」「セットアップモード」と専用に名前がついていると「アクション」はアニメーション専用のように感じるかもしれませんが、仕組みとしては使用するチャンネルは制限されていません。
例えばアクションやセットアップモードでマテリアルの色を変更したり、レンダーパスでアニメーションを切り替えるようなこともできます。セットアップモードでアイテムの表示を切り替えるような使い方は、リギングで便利に使えると思います。

 

アクションレイヤーの階層構造

modoには「アクション」「パス」「セットアップモード」の他にも、いくつかアクションレイヤーが存在します。以下の図はレイヤーの階層構造です。この図はUIから見た動作をまとめたもので、実際の動作とは異なる可能性があります。
マニュアルでは「セットアップアクションステート」「セットアップレベル」「シーンレベル」など断片的に用語や図が出てきますが、残念ながら全体をまとめた解説がありません。

全てのチャンネルのベースとして「初期状態」が存在していて、その上に初期値から変更された値を格納する「Setup」レイヤー、デフォルトでキーを格納する「Scene」レイヤー、一番上にアクション / レンダーパスを格納するレイヤーという構造になっています。アクション / レンダーパスは数を自由に増やすことができます。
チャンネルのレイヤー情報はチャンネルビューポートの「ソース」から確認することができます。


レイヤーの動作は Action / Render Pass レイヤーの値を編集すると、下にある Scene、Setup 、初期状態の値を上書きします。レイヤーで値を変更しないチャンネルは下のレイヤーの値が使用されます。
Scene でキーが作成されているチャンネルを、Action で編集したときは Scene のキーが Action に追加されます。

特殊なレイヤーとして「Edit」があります。「Edit」はテンポラリのようなレイヤーで、ユーザーが編集した値を一時的に格納します。タイムラインの移動、レイヤーの切り替え、キーの作成、「適用」ボタンを押したときなど編集が確定したタイミングで本来のレイヤーに値を反映します。ソースが Edit のときは「破棄」ボタンで編集をキャンセルすることができます。この動作はmodoのダイレクトモデリングツールがアクティブのときは編集や設定の変更をくりかえしテストできるのと同じ仕組みだと思います。

 

アクションレイヤーの種類

各レイヤーについ少し詳しく解説してみたいと思います。

初期状態

アイテムの初期状態です。チャンネルの○アイコンが灰色の状態です。
メッシュ、カメラ、ライト、マテリアルなどアイテムを新規に作成したとき、全てのチャンネルは 初期状態 に置かれます。

 

Setup

パラメータを初期値から変更した場合に値を格納するレイヤーです。

 

セットアップモード

セットアップモードはリギング用の特殊な空間です。セットアップタブのセットアップボタンを押すとビューポートに黄色の枠が表示されセットアップモードに切り替わります。

セットアップモードは他のレイヤーと異なりチャンネルにキーを作成してアニメーションすることはできませんが、チャンネルに「セットアップ/静止値」を設定することができます。
「セットアップ/静止値」はmodoの標準機能だとバインドしたスケルトン、トランスフォームデフォーマ、スプラインデフォーマなどメッシュを変形するために使用するアイテムの初期位置を格納するために使用されています。

「セットアップ/静止値」はセットアップモードでチャンネル右クリックメニューにある「セットアップ/静止値を設定」から設定することができます。「セットアップ/静止値」を設定したチャンネルはセットアップモードのとき○アイコンがライトグレーで表示され、セットアップモード OFF のときはパス同様にライトグリーンのアイコンが表示されます。チャンネルを編集した場合はソースが Scene になります。

 

Scene

デフォルトでキーを格納するレイヤーです。アクター や レンダーパス を使用していいない場合は Scene に値が格納されます。「セットアップ/静止値」が設定されているチャンネルを編集したときも  Scene が使用されます。

 

Action / Render Pass

アクター や レンダーパス で使用されるレイヤーです。パスやアクションに追加されているチャンネルの○アイコンはライトグリーンが表示されます。
アクター や レンダーパス は「グループ」として機能が提供されています。グループの順番や、グループ内のアクター / レンダーパスの順番はグループビューポートのリストで変更することができます。

 

アクションレイヤーの仕組みはこんな感じです。こんなチャンネルの仕組みが modo 601の時点で完成していたなんて驚きですね。

どうしてチャンネルの話を書いてるかと言うと、この仕組みが理解できていないとデフォーマを使用したリグを構築できなからです。特に「セットアップ/静止値」は重要です。
よくある失敗として「セットアップ/静止値」が設定されているチャンネルを、別のチャンネルとリンクするという操作があります。「セットアップ/静止値」をリンクで上書きしてしまうため、セットアップモードでもアイテムの位置が変わってしまいます。
そんなときはリンクするアイテムの位置に「セットアップ/静止値」を設定することで問題を解決する事ができます。チャンネルのリンクだけでなくコンストレイントを使用した場合も同じなので、覚えておくとリギングがはかどるかと思います。

 

参考資料

https://help.thefoundry.co.uk/modo/content/help/pages/rendering/render_passes.html
https://help.thefoundry.co.uk/modo/content/help/pages/animation/channels.html
https://community.foundry.com/discuss/topic/80813/what-exactly-does-apply-to-setup-do?mode=Post&postID=757873
http://modo.sdk.thefoundry.co.uk/wiki/File_Formats#ACTN

CG News

TRacerX 1.2 リリース

アップデートが早いですね。
https://community.foundry.com/discuss/post/1109015

3つの新しいオペレータが追加
– Particle Tracer
– Select By Vertex Map
– Vertex Map Blender

Particle Tracer

このmeshOpはパーティクルシミュレーションアイテム(メッシュも同じ)のトレースを有効にします。「トレース」「ジョイントパーティクル」「ポイントに接続」 の3つのオプションがあります。

Select By Vertex Map

標準のメッシュオペレータが、ウェイトマップに基づいてコンポーネントを選択できるようにする選択オペレータです。

Vertex Map Blender

キットの中で最も強力なノードの1つです。これは基本的に評価のよいVertex Map Mathオペレータで、2つの頂点マップ(または色)をブレンドしたり、結果を 明る/コントラスト したり、位置や法線のようなメッシュデータの値を使用して面白いウェイトマスクを作成することができます。

CG 日記

modoのチャンネル

チャンネルについて基本的なことを書いてみます。チャンネルはアニメーションやリグを作る場合はもちろんですが、静止画用途でも知ってると便利なことが多いです。

チャンネルとは?

チャンネルとはマニュアルによると「簡単に言えばアイテムのアニメーション可能なアトリビュートのことです」と書かれています。チャンネルビューポートに表示される項目は全てチャンネルなのですが、パラメータ(アトリビュート)の右に○アイコンがついてるものはキーを設定してアニメーション可能なチャンネルです。○アイコンは色でチャンネルの状態をあらわしています。

初期状態

チャンネルは初期値のとき、背景色と同じ灰色で表示されています。

変更状態

値を変更した場合はライトグレーになります。
WEBでプロパティの画像が公開されていた場合や昔のシーンファイルを開いたとき、どのパラメータを変更したのかアイコンを見れば一発でわかるデザインになっています。凄く便利でお気に入りの機能です。

アニメーション

チャンネルは○アイコンをクリックすることでキーを作成することができ、パラメータの値をタイムラインに沿ってアニメーションさせることができます。カレントフレームにキーがある場合は赤色になります。カレント以外のフレームでは緑色になります。

ちなみにキー作成のショートカットはトランスフォームツール起動中、またはチャンネル選択状態で S キーです。チャンネル選択してCtrl+C、Ctrl+Vでキーフレームをコピーペーストすることができて便利です。
作成したキーを全て削除したい場合や初期値に戻したい場合は、パラメータラベル右クリックして「全て除去」を実行します。「キーの除去」はカレントフレームのキーを削除し、キーが1個だけの状態のときは値を残したままキーを削除します。

ドリブン

他のチャンネルから入力されている場合は青色のギア アイコンになります。チャンネルの入力と出力には矢印が表示されます。

アクション/ パス

アクション、レンダーパス機能によってチャンネルに複数の値が格納されているとき、パラメータが初期値から変更がない場合はライトグリーンのアイコンになります。値を編集した場合はライトグレーになります。アニメーションの緑色と少しまぎらわしいですね。

modoで使用頻度の高いチャンネルは以上です。次の記事では1つのチャンネルに複数の値を格納するしくみ「アクション/ パス」について書いてみたいと思います。

CG 日記

Particle Snap Modifier と Particle UVT Modifier

modo11.2からParticle Snap ModifierとParticle UVT Modifierが追加になっているようです。モディファイヤ作成コマンドは以下の通りです。

  • item.create pMod.uvt
  • item.create pMod.snap
Particle Snap Modifier

Particle Snap Modifierは指定した範囲のパーティクルをメッシュにスナップさせることができます。

Particle UVT Modifier

Particle UVT Modifier はメッシュのUV上をパーティクルが移動するモディファイヤのようです。チャンネルビューポートで使用するUVマップ名を入力する必要があります。

CG News

Tropism for Modo

木や稲妻をリアルタイムで生成するプラグインが開発中のようです。アニメーションやシーンのライティングによって木の成長具合が変わるシミュレーションのような機能も開発予定のようです。modo11になってからプロシージャルモデリング関連のプラグイン開発が活発になってて面白いですね。
https://community.foundry.com/discuss/topic/136719/tropism-for-modo



TropismはModoのカスタムMeshOps上に構築された完全な手続き型 “トロピズムシミュレーション”ベースのシステムです。アトラクターポイントとしてメッシュレイヤーの頂点を使用して分岐するメッシュを手続き的に作成します。

特徴
  • 木、潅木、植物、静脈、稲妻をリアルタイムで伸ばす
  • 組み込みポイントジェネレータを使用して、メッシュ境界内、メッシュサーフェス上またはポイントクラウド内に伸ばす
  • メッシュサーフェスに頂点ペイントし、ペイントした場所でブドウの木が成長するのをリアルタイムで確認
  • 1つまたは複数のロケータ(ルート)を使用して成長の開始位置を定義
  • いくつかのルートがあれば、すべてのエンティティの分岐は衝突なしにコリジョンします
  • デフォーマ、エフェクタを使用して、成長の変形やアニメーション化
  • メッシュのUVは自動生成
  • 成長のためのガイドとしてカーブを使用
  • リーフシステム(開発中)
コントロール
  • 長さを成長
  •  細分化(分枝分割)
  •  ブランチ曲線
  • 半径(グラディエントを使用)
  • ねじれ
  • 重力
  •  メッシュタイプ(Quads、Subsurface、Catmull)
  • ポリゴンディテール(ゲームに最適)
  • コントロールを使用して「設定されたスタイル」内でランダム化
  •   向日性、シーンのライトが成長に影響を与える(開発中)
  • 風力システム(将来の研究開発)

リリース日は未定だけどQ1にクローズドベータ版がリリース予定です。