2018年1月

Tips

modoで親アイテムの回転をキャンセルする方法

今回はアイテムが親子関係にありながらも、観覧車のゴンドラのように子アイテムが親アイテムの回転をキャンセルする方法をいくつか紹介します。

親アイテムの回転キャンセルはキャラクターリグやメカニカルな物のアニメーションで便利に使えます。
たとえばキャラクターリグでは、3dsMaxのBipedは胸を回転しても頭や腕に回転が影響しないようなリグになってます。modoのACSもデフォルト設定では胸の回転から頭が独立しています。メカニカルな物だと観覧車のゴンドラや自転車のペダル、ジャイロスコープのような表現に使えると思います。

 

トランスフォームの継承

modoは位置、回転、スケールごとに継承するトランスフォームをキャンセルすることができます。ソフトによって動作は異なりますが、MaxやMayaも同じようにトランスフォームの継承に関する設定があります。歴史的に古くからある方法の1つだと思います。
「回転コンストレイント」を使用した場合と違い、ゴンドラを直接回転して編集することができます。

作成手順です。

  1. 円盤にゴンドラが4機ペアレントされているシーンを準備します。
  2. グループロケータを4つ作成します。
    グループロケータを1つ追加したら、残りはCtrl+Dで複製します。
  3. グループロケータを円盤にペアレントします。
  4. グループロケータをゴンドラの位置に配置します。
    ドロップアクションから「一致」を選択し、グループロケータをゴンドラにドラッグアンドドロップします。ドロップアクションはアイテムをドラッグアンドドロップしたときの動作を指定する機能です。ポリゴンやセンターにアイテムを配置するときは、スナップ機能よりもドロップアクションが便利です。
  5. ゴンドラをグループロケータの子にします。
    アイテムツリーでゴンドラをグループロケータにドラッグアンドドロップします。modoのトランスフォーム継承は、親が継承するトランスフォームを子のアイテムがキャンセルするような動作になっています。このためゴンドラと回転する円盤の間にロケータをはさむ必要があります。
  6. ゴンドラアイテムを全て選択して「回転継承」を 「False」 に設定します。
    チャンネルビューポートで「回転継承」を探して、「True」をクリックして「False」に変更します。modoにはプロパティに表示されないチャンネルビューポート専用のパラメータがいくつか存在します。このトランスフォームの継承はそんな隠れた機能の1つです。

円盤を回転すると、ゴンドラが円盤の回転の影響を受けていないのを確認することができると思います。
位置継承や回転継承は、スケルトン変形とアイテムのトランスフォームが2重に掛かってしまう場合にも便利に使えます。たとえばスケルトンとバインドしたメッシュが同じ親に属してるとき、親アイテムを移動するとメッシュが2倍移動します。そんなときは位置継承を「False」にすると解決します。

 

回転コンストレイント

ゴンドラを別のアイテムの回転にコンストレイントする方法です。3Dソフトでよく使用されるのがこの方法だと思います。1つのアイテムで複数のアイテムの回転を制御したい場合にも使えます。「出力オプション」で回転のブレンド量を設定できるのも便利です。

コンストレイントを使用するとアイテムの「ワールド回転」が上書きされるため、トランスフォームの回転は無視されます。ゴンドラに個別の動きをつけたい場合は、「トランスフォームの継承」と同じくロケーターにゴンドラをペアレントして、ロケーターに対して回転コンストレイントを設定するのが一般的な使い方だと思います。

作成手順です。

  1. 円盤にゴンドラが4機ペアレントされているシーンを準備します。
  2. ゴンドラを全て選択します。最後に回転コンストレイントの参照元になるアイテムを選択します。
  3. 回転コンストレイントを適用します。
    Ctrlキーを押しながら回転コンストレイント(複数)を実行します。

手順が簡単ですね。

 

リプリケータ

リプリケータを使用して、頂点にゴンドラを複製する方法です。キャラクターリグなんかには活用できませんが、おまけです。
ゴンドラのように同じアイテムを複製するには手軽で便利ですが、ゴンドラを個別に制御したい場合には向いてません。

作成手順です。

  1. 円盤にゴンドラが4機ペアレントされているシーンを準備します。
  2. 円盤からリプリケータが参照するための頂点をコピー(Ctrl+C)します。
  3. 新しいメッシュを作成(Nキー)し、円盤アイテムにペアレントします。
    新しいメッシュが原点に作成されるので、ペアレント後にアイテム位置を0に変更して円盤と重なるようにします。アイテムの作成位置はアイテムの選択状態によって変わるので適当に合わせてください。
  4. 新しいメッシュに頂点をペースト(Ctrl+V)します。
  5. リプリケータを追加します。
    「原型となるアイテム」にゴンドラ、「ポイントソース」に頂点をペーストしたアイテム、「ソースモード」を「パーティクルデータ」に設定します。またリプリケータの位置がずれていたため、円盤と重なるように位置を0に変更しました。

この他にもスケマティックで親の回転値に-1かけたものをゴンドラの回転にリンクする方法や、ゴンドラの「ワールド回転」チャンネルに0を設定する方法もあります。例によってどれが一番いい方法かは場合によるので、好みの方法を試してみるといいかと思います。

CG 日記

Windows 10で.batアイコンを変更する方法

Maya使ってるとバッチファイルでいっぱいになります。例えば読み込むプラグイン変えたいとか、環境変数を変えたいとか、UIを英語と日本語それぞれ起動したいとか、レンダリング実行とかとか、何かとバッチファイルが必要になります。
他の3DソフトやAE使ってても、バッチファイルを使用する機会は少なくないと思います。

本来はバッチファイルのショートカットを作成して、ファイルのプロパティから個別にアイコンを設定するのが正しい使い方だとは思います。
しかしデフォルトのbatアイコンは白背景に淡いギアという、ぱっと見たときdllやアイコン無しファイルと区別がつきにくいときがあって困ります。

そこでデフォルトのアイコンを変更する方法を書いておきます。あくまで自己責任でやってくださいね。

  1. レジストリエディタ(regedit)を起動して、拡張子のレジストリキーを調べる。
    HKEY_CLASSES_ROOT を展開して「.bat」を選択します。データに「batfile」と書かれてることを確認します。
    レジストリキーを探すときは、キーボードで「.bat」と入力するとリストが入力したレジストリキーにフォーカスするので便利です。
  2. 「batfile」のレジストリキーを調べる。
    「batfile」を展開して「DefaultIcon」を選択します。「値のデータ」の部分をアイコンファイルへのパスに書き換えます。

OSを再起動するとアイコンファイルが変わります。
Windows 10以前のOSではもう少し簡単に変更できたようですが、Windows 10からはレジストリを書き換える方法しかないようでした。

Tips

modoのトランスフォーム配列ツールでアニメーション作成

今回はトランスフォーム配列ツールを使用して、複数のアイテムに手軽にキーを設定する方法を紹介します。

modoはメッシュ生成ツール以外は、アイテムモードでも同じツールを使用することができるという特長があります。
例えば変形タブの「ジッター」「ツイスト」「ベンド」などのツールを使用してアニメーションを作成することができます。その中でも複製タブにある「スキャッタ トランスフォーム」「カーブ トランスフォーム」「トランスフォーム ラディアル 配列」を使うと幾何学的にアイテムを配置出来るので、手軽にフライングロゴっぽいアニメーションを作成することができます。

作成手順です。

  1. テキストツールで適当に文字を入力します。
  2. 「厚み」ツールでテキストに厚みをつけます。
  3. アイテムツリーのメッシュで右クリックして「選択メッシュの統合解除」します。
    「選択メッシュの統合解除」は連結したポリゴン単位を、別のアイテムに分解する機能です。
  4. アルファベット単位に分かれたアイテムを全て選択し、メッシュの中心に「センター」を移動します。
    ファイルメニュー / 編集 / センターをバウンディングボックスへ / センター
    これでアニメーションを作成する準備が整いました。
  5. 全てのアイテムに位置と回転キーを作成します。
  6. 今回は最後にロゴが決まるようにしたいので、綺麗にアルファベットが並んだ状態でタイムラインで後ろのほう、とりあえず90フレームにキーを作成しました。
  7. タイムラインを0フレームに設定します。全てのアイテムを選択して「スキャッタ トランスフォーム」を実行します。
    「スキャッタ トランスフォーム」は指定した範囲内に、アイテムをランダムに配置するツールです。
  8. タイムラインを15フレームに移動して「カーブ トランスフォーム」を実行します。
    「カーブ トランスフォーム」はカーブ状にアイテムを配置するツールです。ツールがアクティブなときは、自由にカーブを編集することができます。
  9. 15フレームのキーをコピーします。タイムラインでキーを選択してCtrl+Cでキーをコピーします。
  10. タイムラインを30フレームに移動して、キーをペーストします。
    タイムラインをスクラブして正しくキーがペーストされたか確認します。今回はキーを設定しやすいように、15フレーム単位で移動と停止を繰り返すように設定しました。
  11. タイムラインを45フレームに移動して「トランスフォーム ラディアル 配列」を実行します。
    「トランスフォーム ラディアル 配列」はアイテムを円状に配置するツールです。位置がずれてるので調節します。配置が決まったらアイテムの回転にキーを作成します。
  12. 45フレームのキーをコピーします。タイムラインでキーを選択してCtrl+Cでキーをコピーします。
  13. タイムラインを60フレームに移動して、キーをペーストします。
    タイムラインをスクラブして正しくキーがペーストされたか確認します。modoは移動ツールがアクティブのときにキーをコピーすると、位置のキーのみがペースト対象になります。タイムラインスクラブして回転のコピーがミスってたのに気がついたので、回転ツールをアクティブにしてペーストしました。
  14. 最後のテキストが完成するキーが90フレ-ムにあるので、タイミングを変更します。
    タイムラインでキーを選択して、タイムラインでマウス右ドラッグしてキーを75フレーム移動します。ちなみに複数のキーをセント無くしている場合は、Ctrl+マウス右ドラッグ でキーをスケールすることができて便利です。これだけでも十分アニメーションしてますが、「ソフトラグ」デフォーマを使用して自動で揺れる動きを設定してみます。
  15. スケマティックビューの「追加」メニューを表示し、アイテムを選択してから「Soft Lag」をダブルクリックします。
    この作業はアイテム1個ずつおこなう必要があります。複数のアイテムを選択した状態で「Soft Lag」を実行すると、なんか上手く動きません。あと必ずスケマティックビューの「追加」メニューを使用してください。アイテムツリーにも同じようなメニューがありますが、アイテムツリーのメニューからはメッシュに「Soft Lag」が適用されません。

アニメーションを再生すると、アイテムがスプリングのように振幅しているのが確認できると思います。ソフトラグの「強さ」は値が大きいと揺れが停止するまでの時間が早く、低いと長く揺れ続けます。ソフトラグは「デフォーマキャッシュ」と相性がよくないので、必ずデフォーマキャッシュをOFFにした状態で調節するといいです。

画面キャプチャだとフレーム数が足りないので、フレームレートの高い画像も貼っておきます。簡単にそれっぽいアニメーションが作成できたのではないでしょうか?
単純なキーフレーム制御なので細かな微調整も簡単です。「Soft Lag」の変わりに「Lag Effector」を使ってみるのも面白いかも知れません。

今回はテキスト使ってフライングロゴっぽくしてみましたが、同じ手法で機械的な物が組み上がるようなアニメーションも作れるんじゃないかと思います。直線的に配列したアイテムをベンドして~とか、ツールの組み合わせでいろんなアニメーションが作れると思います。

たとえば「スキャッタ トランスフォーム」と「カーブ トランスフォーム」を交互に使用して、カーブで文字を書くと下の画像のようにカウントダウンのようなアニメを作れます。ボックスなので寂しい感じですが、ちゃんとしたモデルを使用すると面白い画面になると思います。

下の画像は「トランスフォーム配列」を使用して立体的に並べた例です。最初の下から上にアイテムがスケールして現れる動きはトランフォームデフォーマとリニアフォールオフをアイテムインフルエンスに接続して表現しています。揺れはソフトラグの「強さ」を何パターンか値を変えてランダムさを設定してみました。

パーティクルを使用して同じようなアニメーションを作成することもできますが、MoGraph的な使い方はまたの機会に書いてみたいと思います。

参考資料

Land O’Lakes “Tub Butter”

コマ撮りアニメなんですが、やっぱりCGとは違う面白さがあっていいですね。

Tips

modoでスプラインIKの作り方

キャラクターリグに欠かせないスプラインIKの作り方について書いてみたいと思います。
基本的にはチェーンの作り方と同じで、スケルトンをパスコンストレイントするだけと簡単です。

作成手順です。

  1. スケルトンとカーブを準備します。
    スケルトンは円柱にバインド済みでメッシュを変形できる状態です。
  2. 全てのスケルトンとカーブメッシュを選択し、セットアップモードをONの状態でCtrlキーを押しながらパスコンストレイント(複数)を適用します。このとき補正オプションもONにする必要があります。
    セットアップモードでパスコンストレイントする理由はバインド済みのスケルトンだからです。バインドされたスケルトンはセットアップ/静止値が設定されているため、セットアップモードOFFの状態でパスコンストレイントを実行するとセットアップモード内のスケルトン位置がおかしくなります。
  3. カーブメッシュを選択してスプラインデフォーマを適用します。
    このとき「選択メッシュを使用」をONにして、カーブのポイントの数だけロケータを作成します。
  4. スプラインデフォーマのロケータを動かすと、円柱にねじれが発生してるのが確認できます。
  5. パスコンストレイント モディファイヤの「上方ベクトル」を設定します。
    シーンアイテムの+アイコンをクリックし、パスコンストレイント モディファイヤを全て選択します。このシーンの場合は「上方ベクトル」 Zを1に設定します。

これでスプラインIKの完成です。ロケータを極端に移動するとフリップが発生する事もあると思います。その場合はチェーンの作り方と同様にアップベクトルを設定すると細かく制御できるようになると思います。

Tips

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ではストレスに感じます。

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

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

参考資料

Dakar 18

砂と埃のVFX以外はUE4で作られたムービーらしいです。キャラの質感はUE4の方が自然な気がします。
http://www.realtimeuk.com/video/dakar-18/

Bigmoon Entertainmentの「Dakar 18」は、我々のスタジオにとって重要なマイルストーンとなっています。これは初めてUE4で作ったゲームのシネマティックです。
私たちは、伝説のダカールラリーのスリリングで息を呑むほど現実的な描写を分かち合うことを誇りに思っています。予告編は、Houdiniで作成された砂と埃のVFXを除いて、完全にUE4エンジンで作られました。

Bigmoon Entertainmentが開発したビデオゲームのアセットとUnreal4エンジンを使用して、この予告編を作成しました。
エンジンの柔軟なテクノロジーにより、私達のプリレンダーパイプラインのプロダクションプロセスに容易に適応させることができ、既存のモデリング、テクスチャリング、アニメーションの強みをゲーム内のライブアセットとともに活用することができました。

UE4ではより創造的で流動的な開発プロセスを提示します。各シーンを開発しながらアーティストにリアルタイムのフィードバックを与え、インスピレーションを受けた実験やダイナミックワークフローに大きなチャンスをもたらしました。

参考資料

MechaStorm – Heroes of the Storm

海外スタジオによるアニメ風のCGムービーらしいです。だいぶレタッチ入ってる気がしますが、手描き風なエフェクトやハイライトがいい感じですねー。

参考資料

Book of the Dead

Unityで作られ得たデモ映像。2018からレンダリングが強化されてるみたいですね。
リアルタイムにありがちなアンチのチラツキも気にならないし、重そうな森の表現がだいぶ自然に見えます。葉っぱのTranslucentもいい感じ。
https://unity3d.com/jp/book-of-the-dead

 

参考資料

TOTAL WAR: Three Kingdoms

ゲームのムービー。水墨画っぽいエフェクトがカッコイイ。群集シーンのレンダリングやクロスも綺麗ですねー

Tips

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はどの程度のリグを構築できるか興味ある方にも参考になるのではないでしょうか。

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

Tips

modoでアニメ風の眼球制御

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

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

 

参考

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

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

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

CG News

CLARISSE 3.6 リリース


CLARISSE 3.6 がリリースされました。アウトラインレンダリングが搭載されたようです。アーノルドもラインレンダリングを搭載予定のようですし、LWもセルシェーディング強化してます。もしかしてNPRブーム来てる?
https://www.isotropix.com/news/newsletter/clarisse-3.6-is-out

3.6の新機能
  • 新しいシャドーキャッチャー
  • 新しいアウトラインレンダリング
  • 新しいシェーディング変数
  • 新しいAlembicバンドル
  • 新しいウォーターマークフリーのPLE

法線や深度を使ったシェーダーベースのラインみたいですね。