Rigging

参考資料

Vernald rig

Houdiniで作成したリグだそうです。珍しい。

Houdiniで作成したリグテンプレート。ボディはオブジェクトベースのボーンを使用しており、フェイスはワイヤーデフォーマー+シェイプです。

Tips

modoでキャラクターリグ作ってみた

modoの機能を使用してキャラクターリグを作ってみたので紹介したいと思います。

modoにはコマンド範囲などリグ作成やアニメーションに便利な機能が色々搭載されていますが、あまりキャラクターリグ関連のデモを見かけないように思います。modoの機能をフル活用してキャラクターリグを作るとどうなるかチャレンジしてみました。

 

 

modoのアニメーション機能

このビデオではmodoのキャラクターアニメーション機能紹介を簡単に紹介してます。

 

アクション

アクションは1つのシーンで複数のアニメーションを管理する機能です。今回はリグ紹介用のアニメーションを管理するのに使用しています。
アクションはFBXファイルにマルチテイクとして出力することができるため、Unityに複数のAnimationが作成された状態でインポートできるので便利です。

アクションはいわゆるアニメーションレイヤーのような機能ですが、まだ開発途上の機能のためmodo 14.2 ではアニメーションのブレンドはできません。アニメーションの管理に使用するのが実用的です。

関連記事

 

 

Rig Clay

Rig Clayはクレイアニメのようにモデルをダイレクトに操作する感覚で制御するリグです。コマンド範囲を使用して非表示状態の制御用ロケータを選択しています。

コマンド範囲はmodoのコマンドをメッシュをクリックして実行できる自由度の高いリグ機能です。複数のアイテムを選択するしたり、アイテムの表示を切り替えたり、ポップアップメニューを表示したり、スクリプトを実行するなど、modoの多くのコマンドを実行することができます。

Mayaや3ds Maxなどではキャラクター制御用のカーブアイテムが大量にビューポートに表示されているのを見かけることが多いと思います。現在のキャラクターリグでは主流ですが、コントローラが多いとモデルが見づらい、数が多いとアイテム選択しづらい、ビューポートのパフォーマンスが低下するなどの問題もあります。

このためPixarの「Presto」ドリームワークスなどインハウスのアニメーションソフトでは、コントローラを使用するのではなく、モデルを直接操作するようなリグが試されてました。最近だと「Rumba」も同じような機能が搭載されていますね。

コマンド範囲は901で追加されましたが、modo 14.2で機能拡張されて表示や使い勝手が良くなりました。今回はじめて本格的に使って見ましたが14.2ではマウスオーバー表示に問題があるのと選択中のアイテムがわかりにくいので、もう少し改善が必用に感じます。

ちなみに「Rig Clay」という名称はPixarのキャラクターTDだったRichardさんがmodo向けに考案したワードのようです。

関連記事

 

 

アイテム表示用のポップアップ

ビューポートのアイテム表示やデフォーマの計算を切り替えるポップアップです。このポップアップはロケータにユーザーチャンネルを追加して、ロケータが選択された場合にチャンネルポップアップを表示するコマンド item.channelPopover を実行してます。

 

アイテムの表示はグループの「可視」チャンネルを使って切り替えています。modoには複数のアイテムを管理するためにアイテムリストとは別にグループビューポートがあります。
グループを使用するとアイテムの表示をまとめて切り替えたり、選択したり、ロックしたり、チャンネルにキーを作成したりと色々できて便利です。

 

アイテムごとにデフォーマをON/OFFする機能もつけました。これは不要な計算を省きたいときに使用すると便利です。デフォーマはNormalizing Folder の「有効」を制御することで、フォルダ内のインフルエンスをまとめてON/OFFすることができます。

関連記事

 

 

アイテムピッカー

アイテム選択を便利にするアイテムピッカーです。Webビューを使用してコマンドを実行しています。

WebビューはHTMLからコマンドを実行できる自由度の高いビューポートです。ビューポートで選択し難いアイテムを選択する場合に便利です。アイテムのトランスフォームにキーの追加/削除、ポーズのリセットなどアニメーションで便利なボタンを追加しています。

関連記事

 

 

スケマティック

modoのリグ構築に使うスケマティックビューポートです。スケマティックはリグごとにワークスペースを分けることができるので処理を管理するのが楽です。またフェイシャルリグのスライダーのようなパーツはアセンブリとして使い回すことができて便利です。

modoのスケマティックはオブジェクト、プロシージャルモデリング、マテリアル、シェーダーノード、パーティクルなど多くの機能を全て同じように使うことができるので便利です。ノードやバックドロップに色を設定したり、コメントノードを使用したりグラフィカルに管理することができます。

関連記事

 

 

キャラクターリグ

今回作ったキャラクターリグの紹介です。元々素体用の簡素なモデルを作ってたのですが、modoのアニメーション機能をテストするうち楽しくなって過剰に自動制御のリグを追加してしまいました。
本職のリガーやTDさんが公開しているビデオを参考に、見よう見まねで作りましたがそれっぽく動かせてる気がします。

キャラクターリグのベースにはCharacterBoxを使用しています。CharacterBoxはモジュラーリグプラグインで、いくつかのリグを組み合わせてオリジナルのキャラクターリグを作ることができます。

 

フェイシャルリグ

表情はスライダーを使用して複数のモーフを制御してます。モーフはリニアに補完されるためモーフを単純にミックスするとメッシュがめり込むことがあります。スライダーを使用することでモーフの中間で変形を補正するモーフを加えて表情をブレンドしてます。

モーフで表情を制御する場合は他のソフトでは左右別々にモーフを作成するのが一般的だと思いますが、条件式ノードを使ってフォールオフを回転して左右のどちらか一方向のモーフの影響をマスクしてみました。
モーフマップを左右分けて管理する必要がないのでモーフの数が少なくてすみ、モーフの修正も楽になります。

 

表情を微調整するためのコントローラも仕込んでます。これはmodo標準のトランスフォーム デフォーマを使用しています。
赤色のロケータは頂点コンストレイントを使用してモーフに合わせて移動してます。本来は微調整用の緑色のロケータを赤色のロケータにペアレントしたかったのですが上手くいかなかったです。

眼球の動きに合わせてまぶたを動かす処理も入れてみたのですが、あまり効果が感じられなかったかも。

キャラの髪はCharacterBoxの尾リグを使ってます。キーは全部同じフレームに作成してますが、遅延の設定をリグごとに少しずらして動きにバリエーションを持たせてます。

関連記事

 

 

ボディーリグ

スケルトンだけ表示したビデオ。

 

体はCharacterBoxをベースにしていますが、プリセットそのまま使うのではなくカスタムした構造にしました。例えば鎖骨、手の甲の骨は関節数が1つの指リグを追加して、IKで制御できるようにしています。

好みの問題ですが鎖骨や手の甲にアニメーションをつけるとき、移動と回転でツールを切り替えるのが面倒です。CharacterBox標準の鎖骨は使用せず、移動ツールで制御できる指リグに置き換えました。

腕や脚のツイストはCharacterBoxのセグメントを使用してます。メッシュの細かさによりますがセグメント数は3~5個くらいあると綺麗にツイストできる気がします。

関節はホース状につぶれないように変形を補助するボーンを4個追加して、角度に合わせて自動で動くように制御してます。筋肉の収縮や皮膚のスライドも補助ボーンを使用して制御しています。この補助ボーンは全てチャンネル リレーションシップを使って制御してます。

補助ボーンの設定についてはMayaのウェビナーが参考になると思います。

 

スケルトンの角度を取り出す方法は以前書いたワールド回転からローカル角度を計算する方法と同じで、ヒジやヒザのように1方向にしか回転しない関節はMatrix To Eulerの「回転順」を変更して欲しい軸の角度を取得しています。肩や股関節のように回転軸が多い関節はTwist Extractorを使用するのが便利だと思います。

角度とチャンネル リレーションシップ使ってスケルトンの位置、回転、スケールを制御しました。チャンネル リレーションシップを使うと自動制御はとても簡単に作成することができます。

 

自動制御は体の左右で同じ制御を使いたいので、ノードをインスタンスコピーして管理や修正が楽になるようにしています。下の画像では紫色のリレーションシップがインスタンスされたノードです。

自動制御にはCharacterBoxの単体のスケルトンを使用してます。modo標準のスケルトンを使用してもリグは作れるのですが、筋肉のようにスケールしたときmodo標準のスケルトンは変化がわかり難いのでCharacterBoxのスケルトンを使用してます。

 

耳、胸、二の腕、腹、太もも、ふくらはぎはCharacterBox のマッスルで揺らしてます。

 

呼吸っぽくお腹動かすリグも仕込みましたが、少し効果がわかり難かったですね。

 

アニメーション

作ったリグを使用して簡単にアニメーションつけてみました。スカートはSyflex

 

 

3ds MaxやMayaには標準で人形リグが入っててポーズやアニメーションのコピーやミラーに対応してたりしますが、カスタムで追加したリグは自分で何とかする必要があります。運よく作ったリグで動くコピースクリプトが見つればいいのですが、スクリプト書けないとカスタムリグを作るのは面倒です。

その点CharacterBoxは1.2.0からカスタム追加したロケータやスケルトンに簡単に対称編集やポーズのコピーができるようになり、スクリプトを書かなくてもカスタムリグの構築が楽にできるようになりました。
この機能を使用するとフェイシャルで微調整用のロケータを対称編集したり、ミラーコピーがプラグイン任せできるようになります。

今回手の込んだキャラクターリグを作ってみようと思えたのは、セットアップするときに面倒くさいカスタムリグの対称編集をプラグイン任せにできるというのが大きな理由です。

補助ボーンの自動制御やコマンド範囲の設定はそれほど難しいことはないので単純に根気です。コマンド範囲はとても可能性を感じる機能なので、自動生成する機能を標準で追加して欲しいですね。

 

以上ザックリとした紹介と解説ですが、modoを使ったリギングがどんなものか参考になったなら嬉しいです。

参考資料

モジュラーリギングシステム「ARS」

ABCアニメーションスタジオのリグシステム「ARS」の紹介記事が公開されています。

国内のMayaのリグ関係を調べると「ローカルリグ」「ローカル空間リグ」「ローカルセットアップ」と言うような表現がよく出てきます。どんな物なのか定義が書かれてなかったりよくわからなかったのですが、何となくイメージしてた物で合ってたみたい。

旧来のMayaは、高速に動作するリグを作るために「ローカル計算」を多用することが多くありました。
例えば「腕から手まで」という範囲内にひねりやカーブリグ等複雑なギミックを入れ込んでいく際、ワールド計算(コンストレイン等)をしてしまうと他の部位(例えば背骨)が動いた際も、このギミックの計算が走ってしまいます。

https://area.autodesk.jp/column/tutorial/maya-rigging-technique/01-ars-overview/

続きを読む

Tips

modoのFlood WeightとGrow Weight

modo 14.2では14.1に引き続きプロシージャルウェイトマップが強化されました。

  • Flood Weight
  • Grow Weight
  • Jitter Weight
  • Remap Weight

なかでもFlood WeightとGrow Weightが面白いので簡単に紹介してみます。

 

Flood Weight

Flood Weightはポリゴンアイランド単位でウェイト値を最大または最小値で塗りつぶすノードです。

下の画像では等高線状にポリゴンを分割して、テクスチャ使ってSet WeightしたものをFlood Weightで塗りつぶした物です。Flood WeightがOFFの場合はノイズテクスチャの濃淡でウェイトが設定されてますが、Flood Weightを使うと繋がったポリゴン単位で同じウェイト値が設定されます。

Gradientで地形っぽい色を設定すると山岳立体模型キットみたいな感じになります。

 

Grow Weight

Grow Weightはウェイトマップを成長させる定番のノードです。境界マップを使うとウェイトの成長を止めることができるのが面白いですね。

ウェイトマップはウェイトマップテクスチャと組み合わせて質感を設定できるので、指先から質感が変わるアニメーションやエフェクトのような効果が手軽に作れるようになりました。

 

古いバージョンもTransfer Vertex Map選択モディファイヤを使うとウェイトマップをアニメーションすることができましたが、Grow Weightの方がカーブを使用してなめらかなグラデーション状のウェイトマップを作ることができて便利です。

後はウェイトマップとシミュレーションとの連携が簡単になれば完璧ですね。

Tips

modoのパーティクルアイテムマップ

modo 14.2でパーティクルアイテムマップが追加されました。パーティクルアイテムマップはパーティクルアイテムIDを制御するマップです。リプリケータを使用してアイテムを複製したときに、どのアイテムを複製するかを指定することができます。

メッシュオペレーターと組み合わせてパーティクルアイテムマップを編集する場合は、Remap Weight使います。

 

これまでもパーティクルシミュレーションでは同様のことが出来ましたが、パーティクルアイテムマップはモデルの頂点を直接選択して編集することができるので便利になりました。

modo 14.2ではパーティクルアイテムマップを編集できるのノードがRemap Weightに限定されてるのがちょっとわかり難いですね。Vマップ関連のノードは他にもパーティクルサイズマップなど使用できないマップが多いのが残念です。今後のバージョンで他のマップにも対応して欲しいですね。

 

参考

CG News

ACS3 for Modo 早期アクセス開始

去年から開発中だったオートリガーACS3 (Auto Character Setup)の早期アクセス販売が開始されました。ACS3ではCharacterBoxのようにモジュールを使用してリグを作ることが出来るようです。早期アクセスということで開発中の機能が含まれてない状態のようです。

ACS2は人型固定リグでバイドできるのも1メッシュでしたが、ACS3ではその辺りの問題が改善されてるようです。Pythonを使用したカスタムリグにも対応予定とのことで、将来的にはカスタムリグを共有することもできるようです。
ACS2はmdoo標準機能で組み立てられたリグと、リグを構築スクリプト群という内容のキットだったこともあり体験版はありませんでした。ACS3では一部独自の機能開発してるようなので体験版でるかな?Youtubeのデモ映像見たいのに字幕追加されないですね。

 

価格
  • 新規購入 $299  (早期アクセス$225)
  • アップグレード $249 (早期アクセス$ 175)
動作環境
  • MODO14.1v2以降

https://www.autocharactersystem.com/

 

自然界のモジュラー

  • 事前に作られたアセットからリグを組み立てることができる完全モジュラーシステム。
  • モジュールは簡単なドラッグ&ドロップ操作で接続されます。
  • モジュールは、対称性の有無に関わらずミラーリングすることができます。左右対称のセットアップではガイドの片側のみを取り付ける必要があります。

 

モジュール

  • モジュールのプリセットには、二足歩行/四足歩行、二足歩行アーム、水平/垂直背骨、FKジョイントチェーン、エイムジョイントなどがあります。
  • モジュールは標準的なMODOアセンブリプリセットです。
  • モジュールの中には、アイテムプロパティパネルから直接アクセスできるものもあり、例えば背骨やFKチェーンはセグメントの数を設定できます。開発が進むにつれて、さらに多くのモジュールが追加されていく予定です。

 

ノンリニアワークフロー

アニメーションプロセスがすでに進行中であっても、リグはいつでも再調整できます。これはガイドのフィッティング、リジッドメッシュのアタッチ、バインドメッシュのプロキシの生成など、リグの様々な側面に関係しています。

 

最適化されたバインディングワークフロー

  • 複数のバインドメッシュをサポート。
  • MODOネイティブのバインドコマンドをサポート。
  • 既にメッシュに埋め込まれているウェイトマップを使ってバインディングを設定するための、マップからのバインディング機能。
  • 同じウェイトマップのセットを使って複数のメッシュをバインドするためのコピーバインド機能。
  • 別のメッシュと形状が近く、個別にウェイトをかける必要のない服やその他のアイテムなどのアクセサリーをバインドするための転送バインド。
  • ウェイトをバックアップし、バインドマップを保存して後で再利用するためのオプションを持つバインド解除コマンド。

 

ウェイトツールパレット

  • パレットはMODO標準ツールとカスタムツールを組み合わせたものです。
  • すべてのウェイトマップの選択、ビューポート内のマウスポインタ下でのウェイトマップの選択、ウェイトマップの影響を受ける頂点の選択を含む選択コマンド。
  • 0~100%の範囲のウェイト値を素早く、直接、正確に設定するためのコマンドのセット。
  • 選択した頂点ウェイトを最高、最低、または平均値にシフトするためのコマンド群。
  • MODOのネイティブ機能をより使いやすく堅牢なバージョンにラップしたコマンドセット:メッシュ間でのウェイトの転送(ACSリグを必要としない一般的なバリアントを含む)、1%または0.5%ステップでのウェイトの量子化、1%または2%未満の値を持つウェイトのカリング。
  • 標準とトポロジカル対称性の両方をサポートするシングルクリックウェイトミラーリング。

メッシュソリューション

  • Proxy、Low、Highなどの解像度を設定して、再生パフォーマンスを最適化します。
  • キャラクターのバリエーション(解像度ごとに異なる服やアクセサリー)を設定できます。
  • メッシュとボックスのプロキシを自動的に生成します。

 

アニメーションフレンドリーなリグ

  • コントローラーを拾いやすい。
  • わかりやすい配色。
  • コントローラを選択すると自動的に適切なツールが使えるようになる(変形ツールやスライダベースの操作に設定されたチャンネル)。
  • 設定されたコントローラ間のピックウォーキング(未実装)
  • コントローラの形状を特定のキャラクターに素早く簡単にフィットさせるためのカスタムツール
  • キーフレームを高速に管理するためのツールセット:キー、アンキー、リセット、アニメーションの削除、静的キーのフィルタリング(未実装)、キーフレームの統計(未実装)。

 

ポーズ&アクションライブラリー

  • ポーズやアクションをネイティブMODOプリセットとしてサムネイル付きで保存できます。
  • 保存したポーズやアクションを、ドラッグ&ドロップを使って、同じキャラクターや異なる互換性のあるキャラクターに適用することができます。
  • ポーズやアクションのミラーリング(未実装)。

 

シームレスIK/FKワークフロー

  • ブレンドを気にすることなく、IKとFKをシームレスに切り替えられます。
  • キャラクターのポージングやアニメーションの補間に適した方法を簡単に選択できます。
  • IKキーフレームとFKキーフレームの自動同期。
  • 自動同期ではカバーしきれない場合は、手動で簡単に同期できます。

 

サマリ

  • 完全にモジュール化されたアーキテクチャにより、ドラッグ&ドロップ操作を使用してあらかじめ作成されたアセットからリグを組み立てることができます。
  • ノンリニアなワークフローで、アニメーションプロセスがすでに進行中であっても、いつでもリグを再調整できます。
  • コンテクストに基づいたアプローチにより、組み立て、フィッティング、バインディング、ウェイト、アニメーションなど、一度に一つのタスクに集中して作業を行うことができます。
  • 二足歩行と四足歩行のリグプリセット搭載
  • 二足歩行/四足歩行の脚、二足歩行の腕、脊椎、ジョイントチェーンモジュールなど、カスタムリグを簡単に組み立てることができる豊富なモジュールが含まれています(すべてのモジュールがまだ利用可能なわけではなく、利用可能なモジュールはまだ開発中のものです)。
  • リグのバリエーション(プロキシ、低解像度、高解像度など)を設定したり、異なるウェアセットなどのキャラクターのバリエーションを作成するためのメッシュ解像度。
  • 既存のウェイトマップを使ったバインディング(マップからのバインディング)、バインディングセットアップのコピー、あるメッシュから別のメッシュへのバインディングセットアップの転送、Unbindコマンドなどのツールを含むバインディングワークフローが改善されました。
  • 標準ツールと独自のツールを組み合わせたカスタムパレットによるウェイトワークフローの改善
  • 標準とトポロジカルシンメトリーの両方をサポートするシングルクリックウェイトミラーリング
  • アニメーションのパフォーマンスを向上させるための自動メッシュとボックスプロキシのセットアップ
  • ポーズとアクションライブラリ(完全には未実装)、ポーズとアクションのミラーリング(未実装)
  • アニメーションプロセスを高速化するためのツールセット:シームレスなIK/FKワークフロー、リグコントローラのスペース切り替え(未実装)、キーフレーム編集コマンド
  • 多くの機能と設定がアイテムのプロパティパネルから直接利用可能なシームレスな統合インターフェース
  • ACS3シーンをバニラMODOと互換性のあるものにするための標準化ツール
  • .fbx形式で外部アプリケーションにエクスポートするためのリグベイクツール(未実装)
  • カスタムモジュールやリグを構築したり、標準アセットのカスタマイズ版を保存したりするためのリギング開発環境(カスタム開発に関するドキュメントは後日公開予定
参考資料

Snappers Wrinkles Designer

しわをすばやく作成できるMayaの新しいツールのビデオプレビューらしい。

Snappers Wrinkles Designer(Snappers Character Designer Suiteの一部)を使って、高品質でリアルなシワマップのフルセットを数分で作成するための新しいモデリングコンセプト(パラメータ化されたカーブモデリング)をご紹介します。トポロジーやUVレイアウトに関係なく、あらゆるモデルと互換性があります。

参考資料

スタンドアロンのUSD編集ツール「MUSE」

J CubeがDCCアプリケーションを必要とせずに、USDファイルを開いたり、表示したり、非破壊的に編集したりするための新しいツール「MUSE」のアルファ版をリリースしました。現在はMultiverseProユーザー向けに無料公開中のようです。

https://j-cube.jp/solutions/multiverse/docs/setup/muse-faq.html#what-is-muse

MUSEとは?

MUSEは日本の横浜にあるJ CubeIncによって作成されたまったく新しいソフトウェアアプリケーション「MultiverseUsdStandaloneEditor」です。

MUSEを使用するとユーザーはDCCアプリケーションを必要とせずに、インタラクティブに視覚化して、USDアセットとコンポジションを再生できます。MUSEの目的はUSDファイル内の属性の高速で非破壊的なマルチ編集を提供し、他のUSDファイルへの参照を追加し、USDオーバーライドを書き込み、オーバーライドを使用してUSD構成を書き込むことです。

 

MUSEで何ができますか

現時点では次のことができます。

  • USDファイルを開く
  • HydraStormでUSDファイルをインタラクティブに視覚化
  • アニメーション再生
  • ビューポートでUSDプリムを選択します
  • 複数選択編集を含むUSDアトリビュートの編集
  • 他のUSDファイルへの参照を追加する
  • USDオーバーライドを書き込む
  • オーバーライドを使用してUSD構成を書き込む

注意:MUSEはまだ開発のアルファ段階にあり、「技術プレビュー」としてのみ提供されています。私たちはそれをベータ版に移行し、将来のリリースでその機能を拡張し始めるために一生懸命取り組んでいます。

Tips

CBOXのマッスルで車体を揺らしてみた

modo用のキャラクターリグプラグイン「CharacterBox」のマッスル機能で車体を揺らししてみました。

 

CharacterBoxにはマッスル機能というメッシュを筋肉のように伸縮するためのデフォーマが搭載されています。マッスルにはアイテムの移動量からメッシュを揺らす「ジグル」という機能が搭載されていて手軽に揺れを設定することが出来ます。
マッスルはメッシュだけでなくIKゴールにも適用することができるため、車体のよにアイテムを揺らすような表現に使用することが出来ます。

 

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

マッスルはアイテムインフルエンスを使用してIKゴールを動かしています。リグに車体を直接ペアレントしてもいいのですが、位置や回転の影響を調節したいのでコンストレイントを使用しました。
コンストレイントのプロパティには「出力オプション」ボタンがあり、ボタンを押すとMatrix Channel Effectを追加してくれます。Matrix Channel Effectを使用するとXYZ軸ごとにコンストレイントの強さを制御できるので便利です。

コンストレイントを使用する場合は「コンストレイント補正オプション」を使用するとアイテムの位置関係を維持したままコンストレイントすることができます。

 

マッスルを使用すると自動で揺れをつけることができるので便利です。

 

今回は試しということで腕リグ1本で揺らしてるためおもちゃのような動きになってます。実際の車のように前後それぞれマッスルを分けてリグを配置すれば、もう少しリアルな挙動が作れる気がします。

マッスルのように揺らすmodo標準機能として「ソフトラグ」があります。ソフトラグを使用しても似たようなことができると思いますが、ソフトラグはアイテムインフルエンスを使用することができないため少し手間がかかりそうです。

 

参考

CG News

Applicator Kit for Modo

フェイシャルキャプチャデータを使用するためのキット「Applicator Kit for Modo」がリリースされました。価格は$49、9月末までお試し価格$ 35。

このキットはTrueDepthカメラを搭載したiPhoneで、Apple ARKit Face Trackingを使用してキャプチャしたデータをmodoに読み込むためのキットです。フェイシャルキャプチャするには別途ソフトウェアが必要です。

https://gumroad.com/l/applicatorkit

 

概要

アプリケーターキット for Modoを使えば、iPhoneやiPadのTrueDepthカメラで撮影したApple ARKit Face TrackingデータをModoのキャラクターに適用することができます。
Apple ARKit Face Trackingは、あなたのiPhoneやiPadでパフォーマーの頭の位置だけでなく、50以上のユニークなブレンドシェイプ係数(Modoではモーフターゲット)を60フレーム/秒で追跡することができます。アプリケーターキット for Modoを使えば、このデータを取り、4つの簡単なステップでModoのキャラクターに適用することができます。

  1. マッピングファイルを定義する
  2. 顔のキャプチャパフォーマンスを記録する
  3. パソコンにデータを転送する
  4. データを自分のキャラクターに適用する

 

主な機能

  • アイテム階層ターゲット:シーン内のアイテム階層内にマッピングされたすべてのターゲットにデータを適用します。
  • アクターとアクションターゲット: データをアクターに適用し、オプションでアクション(新規または既存)として適用します。
  • マッピングファイル:トラッキングデータを適用する対象のモーフマップとアイテムを設定することができます。
  • マルチターゲット:単一のブレンドシェイプのトラッキングデータを複数のモーフマップに適用することができます。
  • 独立した有効化/無効化:シーンに適用するデータポイントを完全にコントロールできます。
  • マルチプライヤー: キャプチャーが微妙すぎて(または極端すぎて)、必要なパフォーマンスが得られないことがあります。マルチプライヤーを使用すると、シーンに対するトラッキングデータの値を増加(または減少)させることができます。
  • バリューシフト: 乗算器のように、バリューシフトはパフォーマンスを微調整することができますが、トラッキングデータを乗算するのではなく、一定の値を使用して上下にシフトします。
  • スムージングアルゴリズム: オプションでトラッキングデータにスムージングアルゴリズムを適用します。
  • FPS変換:60fps記録データをシーンのfpsに自動的に変換します。サポートfpsオプション。60、50、48、30、29.97、25、24。
  • ニュートラルアルゴリズム:オプションでニュートラルな顔のキャプチャ(ニュートラルな状態でパフォーマーの顔を5秒程度録画)を提供することで、アルゴリズムはパフォーマーのユニークな顔の形状に合わせてキャプチャデータを調整します。
  • 開始フレーム: データアプリケーションを開始するフレームを指定します。
  • キャプチャフレームをスキップ:スキップする録画のフレーム数を指定します。

 

サポートされているフェイストラッキングアプリ

注意: アプリケーターキットは顔のトラッキングデータをキャプチャしません、これはModoであなたのシーンにデータを適用するだけです。顔のパフォーマンスをキャプチャするには、以下のアプリのいずれかを使用してください。

Tips

modoのシェーダーノードでレンズディストーションエフェクト

modoのシェーダーノードを使って、カメラのレンズゆがみのような効果を制御する方法が解説されてたので写経してみました。

カメラの回転とShader Inputのレイ方向をそろえた後、レイ方向のXYを任意に編集した結果をRayCastでFinal Color Outputに戻すというのが基本的な流れのようです。

 

球面

球面のようにレンダリング。

サンプルファイル

 

ディストーションのカーブ制御

カーブを使用してゆがみ制御。

サンプルファイル

 

ディストーションのテクスチャ制御

テクスチャを使用してゆがみを制御。

サンプルファイル

 

レイ方向を制御する方法はポストエフェクトによるゆがみと異なり、ピクセルが荒くなったりせずシャープな画像を維持できるのがメリットです。しかし、欲しいゆがみを計算で求めるのが難しいです。
シェーダーノードはレンダリングも遅いので、テクスチャオフセットのように、もう少し手軽に使えるような機能があると嬉しいですね。

 

参考

詳細な解説をしてくれた館長さんに感謝です。

 

Tips

modoでカメラの視野角を計算する方法

modoでカメラの視野角を計算することができたのでメモしときます。

modoのカメラではプロパティで「視野」を確認することはできますが、「視野」チャンネルをスケマティックに追加することができません。Expressionノードを使用すると「視野」を計算することができます。

 

一般的にカメラの視野角は以下の計算式で求めるそうです。

視野角=2*atan(イメージセンサー幅/(2*焦点距離))

 

これをmodoのExpressionで計算します。Expressionノードには入力Aに「焦点長」、入力Bに「フィルム幅」を接続します。atanを使うとラジアンになるらしいので、最後に角度に変換します。

2*atan(B/(2*A))*180/3.141592

modoの視野チャンネルと同じ値が計算できています。

 

カメラの視野角が計算できるとカメラから見える範囲にだけ処理を行うことができるので、ビューポートが重い場合に効果的です。例えばカメラの見える範囲だけReplicatorを表示することができます。下の画像では視野に合わせて自動的にReplicatorの表示が切り替わってます。

サンプルファイル

ファーには「視錐台カリング」という同様の機能がありますが、Replicatorにはありません。そんな時に視野角を使ってリグを組みます。フォールオフを使用してるので、プロシージャルモデリングと組み合わせても便利かもしれません。