Rigging

Tips

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

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

■ サンプルファイル

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

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

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

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

 

参考

Plexusみたいに近い頂点をラインで結ぶことができないかテストしてましたが、1つの頂点から複数の頂点にラインを生成するには、少し工夫する必要がありそう。

参考資料

GUILTY GEAR Xrd開発スタッフが送るスキニングのためのモデリング TIPS

2019年4月に行われてたセミナー「GUILTY GEAR Xrd開発スタッフが送るスキニングのためのモデリング TIPS」のスライドが公開されてます。 ローポリ前提ということで書かれてますが、ウェイトの影響と制御いう意味では、ローポリ以外にも活用できる話だと思います。
https://www.slideshare.net/ASW_Yokohama/guilty-gear-xrd-tips-208013275

続きを読む

参考資料

バニーガール3Dモデルリグ

かわいいバニーリグが販売されてます。価格は$18。
https://flippednormals.com/downloads/bunny-girl-3d-model-rig/

バニーガール3Dモデルリグ

このファイルには、Tポーズモデルとリギングバージョンが含まれています。リグはハイエンドレベルではありません。ポーズと静止画のレンダリングにのみ使用されたため(私はプロのリガーではありません)、基本的なアニメーションを処理できます。このシンプルなリグをそのまま提供します。

キャラクターとそのコンテンツは、個人的な使用(レンダリング、照明、リギング、アニメーション)を目的としていますが、営利目的ではありません。

含まれるファイル
  • バニーリグ
  • テクスチャー
  • Maya 2018シーン
  • Arnoldレンダラーのシェーダーとライトのセットアップ

参考資料

Amanda RIG v .1.0

Mayaのキャラクターリグが公開されてます。全身にリグが仕込んであるので、解析すれば色々参考になりそうです。複雑なことしてそうだけどリグの動作が軽い。
https://gumroad.com/l/qMtRcV

CG News

3Dアニメーションソフトウェア「Rumba」

3Dアニメーションソフトウェア「Rumba」。開発はGuerilla RenderのMercenaries Engineering。現在クローズドベータ中のようです。
https://rumba-animation.com/

 

3Dアニメーションソフトウェア

Rumbaは、市場で最高のプロフェッショナル3Dアニメーションソリューションを目指しています。

アニメーションの基礎から設計されたRumbaは、アニメーションプロセスを高速かつ直感的にします。 アニメーション制作者がアーティスティックな表現に集中できるようにするために、時間のかかるタスクを削減するリアルタイムのクリエイティブエクスペリエンスを提供します。

 

簡単なキャラクターポージング

ジオメトリを移動するだけで、直感的にリグを操作できます。Rumbaのマニピュレータパラダイムにより、アニメータは適切なタイミングで適切なツールを使用してキャラクタの各部分を制御できます。

ジオメトリ上の選択のないマニピュレータ、指と手の専用マニピュレータ、IK/FKとFK/IKの透明な操作により、ポーズ設定はこれまでになく簡単になりました。

 

革新的なアニメーションのワークフロー

真の非破壊アニメーションレイヤーと使いやすい制約レイヤーにより、アニメーションプロセスを強化します。

常に各レイヤーのタイミングが見え、 アニメーションを簡単にミックスおよびマージします。 キーフレームのドラッグアンドドロップ、 時間、レイヤー、コントローラー、またはキャラクターをコピー/ペーストできます。

独自のアニメーションワークフローを作成します。従来型、キーフレーム、ブレークダウン、手続き型、ノンリニアのいずれも。

 

アニメーターツール

革新的な評価エンジンのおかげで、Rumbaは複数フレームのポーズ編集や効率的なモーション軌跡などの時間編集ツールを提案することができます。の

熟練したアニメータ向けに設計されたRumbaには、プロのカーブエディタ、優れたオニオンスキン、ポーズ、クリップライブラリなど、アニメータの日常の操作性を向上させるさまざまなツールが用意されています。

 

比類のないパフォーマンス

インタラクションと再生の両方において、Rumbaはこれまでにないパフォーマンスレベルを提供します。効率的な評価エンジンのおかげで、リグとの相互作用が非常に速くなりました。

Rumbaの自動キャッシュシステムにより、多数のプロダクションリグをリアルタイムでアニメートできます。

 

MAYA リグとの互換性

RumbaはAutodesk Mayaリグ(最も多い)と互換性があります。現在のMayaリギングワークフローをそのままにして、Rumba固有の機能を使用してリグを次のレベルの生産性にします。

また、すぐにアニメートできるRumbaリグをリギングパートナーに依頼することもできます。

 

オープン

RumbaはPython、Alembic、ILMbase、OpenSubdiv、OpenImageIO、そしてもうすぐUSDといった業界標準をベースにしています。

ライブラリ、マニピュレータ、レイヤーなどのRumbaコンポーネントの多くは、オープンソースのプラグインとして提供されており、ユーザ独自のカスタマイズのサンプルとして使用できます。

Rumba APIはPythonとC++で利用できる。RumbaにはPythonスクリプトエディタが埋め込まれている。

Rumbaは現在非公開ベータ段階です。もしあなたのアニメスタジオでRumbaを試してみたいと思ったら、私たちに連絡してください!

CG News

CSV Reader for Modo

CSVファイルを読み込んでリギングすることができるmodo用のKitが公開されています。棒グラフのアニメーションや、CSVファイルを介してプリシージャルモデルを編集することができるようです。価格は$3。
https://gumroad.com/l/modoCSV

概要

CSVファイルをロードして、外部ファイルを介してエクスプレッションを設定できます。そして、すべてのオブジェクトをobj / fbxにエクスポートできます。(たとえばUnity)

インストール

単にキットディレクトリにフォルダを置きます。「Kit」フォルダにはプールチュートリアルのシーンを含むサンプルフォルダがあります。


シーンファイルを開くとき、ファイル名のパスを更新する必要があります。

注:すべての行はフロート形式です。

 

Tips

modoでキャラクターをセットアップする方法

modoでキャラクターをアニメーションできるようセットアップする方法について書いてみます。今回は人型のモデルを中心に解説しますが、犬や猫、モンスターなんかも基本的は同じ手順でセットアップすることができます。

メカをアニメーションするときはバインド工程が不要で、メカパーツをスケルトンにペアレントしてアニメーションします。

 

セットアップの流れ

セットアップの大まかな流れです。modoのセットアップはバインド後にスケルトンの位置を調整したり、モデルに修正を加えたりと、各工程を行き来しながらキャラクターをセットアップすることができます。

セットアップの流れ

1. キャラクターモデルを用意する
2. モデルに合わせてスケルトンを作成する
3. バインドする

3-1. ウェイトの調整

4. リグを組み込む

4-1. IKの設定
4-2. トランスフォームをゼロにする
4-3. 使用しないトランスフォームチャンネルをロックする
4-4. その他のリグ

5. アクターを作成する

5-1. アクションを作成する
5-2. キーセットを作成する
5-3. チャンネルセットを作成する

 

1. キャラクターモデルを用意する

動かしたいモデルデータを用意します。今回はmodo標準アセットのモデルを使って解説します。

 

2. モデルに合わせてスケルトンを作成する

スケルトンツールを使用してモデルデータにスケルトンを追加します。スケルトンの位置は後からでも調整可能なので、はじめは大まかに作成してから微調整するとよいです。スケルトンの数や位置などテクニックも色々あると思いますが、今回はベーシックっぽい最小限な感じにしてみました。

 

作成したスケルトンに名前を設定します。名前は左右を区別するため「L_」「R_」のプリフィックスを追加します。このプリフィックスはウェイトをミラーリングするさいに重要になります。

 

スケルトン作成の注意点

スケルトンをIKで制御する場合、スケルトンえを完全に直線に配置するのはNGです。デフォルメされたキャラクターの場合、直線的にスケルトンを配置したいところですが、関節は少し角度がついてないとIKは正常に動作しません。
直線状に配置されてる場合「デュアル2DIK」はボタンがアクティブにならず、フルボディーIKはIKを追加することができますが動作がおかしくなります。

どうしてなのか不思議に思うかもしれませんが、MayaのIKや3dsMaxのHI IKソルバも直線的に配置するのはNGなので、一般的にIKのお約束のようです。

また、「デュアル2DIK」を使用する場合は、スケルトンが子のスケルトン方向を向いてる必要があります。スケルトンツールを使用すると自動的に方向を整列してくれるので、スケルトンの編集にはスケルトンツールを使用するとよいです。

下の画像では、上のスケルトンはZ軸が子の方向に整列しているのに対し、下のスケルトンは2個目のスケルトンでZ軸の方向が子の方向を向いてません。「IKの適用」を押したとき勝手に整列してくれますが、望んだ軸で整列してくれるとは限りません。

「IK FK ブレンド」を使用してスケルトンをFK制御する場合を考えると、アイテム回転の「順序」を考慮した上でZ軸が子の方向に整列するように統一した方がよいと思われます。

 

3. バインドする

スケルトンを使用してモデルを変形するために「バインド」を実行します。リグ作成→バインドの順番でも問題ありませんし、相互に行き来してセットアップすることもできます。個人的にモデルが動くとテンションが上がるのでバインドを先におこないます。

バインド手順
  1. セットアップモード」をONにする
  2. スケルトンとモデルを選択する
  3.  バインドボタンを押す

 

ヒートバインドの制限

今回はヒートバインドを使用しました。ヒートバインドは熱伝導の計算方法を使用してウェイトを計算する方法で、「距離」に比べると良好な結果になります。しかし、モデルに対する要求が結構シビアで、以下のようなメッシュに使用するとバインドに失敗します。

  • メッシュアイテムがひとつの塊であること。穴があるのは問題なし。
  • アイテムがポリゴンのみで形成されていること。孤立した頂点やエッジやカーブがあると動作しない。
  • 頂点、エッジ、ポリゴンを複数のコンポーネントが共有していないこと。例えば T のように3枚のポリゴンが1つのエッジを共有してるは駄目。
  • すべてのジョイントがメッシュアイテムの内部に埋もれていること。

ヒートバインド実行前には、とりあえず「メッシュクリーンアップ」を実行することをお勧めします。

 

ウェイトの調整

バインドによる自動生成のウェイトで一発OKになることは少ないと思います。たいていの場合は手動でウェイトの調整が必要になります。ウェイトの調整はペイントツールよりも「ウェイトの調整」や「フォールオフ ウェイト」が便利です。

 

Mirror Skeleton Weight

ウェイトをミラーコピーするスクリプトです。片側のウェイトを設定して、ミラーすればウェイト設定が楽になります。
http://modogroup.jp/tipsblog/scripts/mirror-skeleton-weight/

 

ウェイトはリグを設定した後でも調整できるので、好きなタイミングで調整して問題ありません。組み込むリグやスケルトンの数が決まってない場合は、リグ設定後にウェイト調整するのがお勧めです。
また、ウェイトの設定はリグを動かしなから変形を確認する必要があるので、後述のアクターを使用すると効率的にウェイトを設定することができます。

バインド後にスケルトンを動かしてもメッシュが変形しない場合は、ビューポートの設定で「デフォーマ有効」がONになってるか確認してください。使用してるビューポートによっては、デフォルトでOFFになってることがあります。

 

4. リグを組み込む

キャラクターをアニメーションしやすくするため、スケルトンにリグを追加します。リグとはアニメーションを作成しやすくするための仕組みです。利用頻度の高いものだとIKやRelationshipによるスケルトンの自動制御、アニメーション用コントローラの追加などがあります。

4-1. IKの設定

modoにはIKが3つ搭載されてます。それぞれ特徴があるので好みのIKを使用しましょう。

今回は13.2で追加された新しいPlanar IKを使用してみます。このIKにはソフトIKやストレッチIKと呼ばれる今時の機能が搭載されてます。新しいIKの追加はModoタブのセットアップメニューを使用します。

IKの適用手順
  1. セットアップモード」をONにする
  2. IKを適用するスケルトンを3~4個選択する
  3. 「IK 組み込み」を実行する
  4. 「IK 上方ベクトルの作成」を実行する

 

IKゴールがロケータのデフォルト表示だと見づらいので、プロパティで「シェイプ」と「表示オプション」を変更します。

 

4-2. トランスフォームをゼロにする

IKゴールのようなアニメーションに使用するアイテムは、トランスフォームを「ゼロ」にしておくと便利です。「ゼロ」はトランスフォームアイテムを追加することで、プロパティのトランスフォームの値(メイントランスフォーム)を 0 にする機能です。

ゼロの適用手順
  1. セットアップモード」をONにする
  2. アイテムを選択して「ゼロ」を実行する

画像では雑に全てのアイテムを選択して「ゼロ」を実行してますが、スケルトンツールを使用してる場合はスケルトンに回転値が入らないはずです。必要なアイテムにだけゼロを使用した方が不要な計算が発生ないのでよいと思います。

「ゼロ」を適用しておくと「リセット」を使用して素早く初期ポーズに戻すことができるようになります。Mayaの「フリーズ」と同じ用途の機能です。

ゼロはセットアップモードがOFFでも実行できてしまうので、誤ってセットアップモードがOFFでゼロしてしまった場合は、メイントランスフォームに「全て除去」を実行してカレントのアクションレイヤーの値を消した後に、セットアップモードをONにして「ゼロ」を実行します。

スケルトンの位置を調整した後もゼロを実行します。

「ゼロ」はメイントランスフォームに入っていた値を、別のトランスフォームアイテムに移し替えることでプロパティのトランスフォームを 0 にしています。これはあくまでmodo内でアイテムを扱いやすくする機能です。
FBXなど外部にデータを出力したときは、統合されたトランスフォーム値が出力されます。ゲームエンジンでの使用を考える場合は、ゼロを使用しない方が都合がよいことがあるかもしれません。

 

4-3. 使用しないトランスフォームチャンネルをロックする

アニメーションに使用しないトランスフォームチャンネルは、ロックして編集出来ないようにしておくと便利です。
例えばIKのアップベクターはワールド位置しか参照されないため、回転する必要のないアイテムです。誤って操作したり、キーを打たないようにロックしておくとアイテムの管理が楽になります。

チャンネルのロック手順
  1. ロックスするチャンネルを選択する
  2. グループビューポートで「新規グループ」を「選択チャンネルから」作成する
  3. グループの「ロック」をONにする

「グループ」はmodoのユニークで強力な管理機能です。アイテムやチャンネルをグループにまとめて管理することができます。
グループの機能には複数のタイプがあります。「標準」グループは追加されてるアイテムの表示やレンダリングをまとめて切り替えることができます。グループは後述の「アクター」「アクション」「キーセット」「チャンネルセット」でも使用します。

 

チャンネルを右クリックすると、グループを使用せずにチャンネルをロックする機能もあります。しかし、このロックはシーンファイルに情報が保存されるため、「シーンの統合」「参照読み込み」を使用するとロックが解除されてしまいます。

 

4-4. その他のリグ

チャンネル リレーションシップを使えばスケルトンのスライドを自動化したり、マッスルのような伸張を組み込んだりすることもできます。リグ作成ついては個別の記事を参考にしてみてください。

 

5. アクターを作成する

「アクター」はキャラクターに関連のあるアイテムをまとめておくための「グループ」です。アクター (役者) と言う名称ですが人型キャラクター専用というわけではなく、アイテムやチャンネルを自由に追加できます。

アクターを作成すると「アクション」を作成できるようになり、「オニオンスキン」「ドリブンアクション」「アニメーションレイヤー」のようなアニメーション専用機能を使用できるようになります。

アクターの作成手順
  1. アクターにするアイテムを選択する
  2. アクターメニューから「新規」を実行する

アクターにはスケルトン、IKゴール、アップベクターなどアニメーションするアイテムを全て選択して追加します。オニオンスキンを使用する場合はメッシュも追加する必要があります。

アクターの名称はユニークな名称を設定します。たとえば「Character」のような被りやすいものより「JohnSmith」のような固有の名前が望ましいです。なぜかというと、modoは同名のアイテムに自動的にアイテムインデックスを追加しますが、アクター名にアイテムインデックスが追加されるとアクションの切り替えが動作しなくなることがあるからです。

 

5-1. アクションを作成する

「アクション」はアニメーションの管理機能です。例えばゲーム用のアニメーションを作成する場合に、「歩く」「走る」「攻撃」「防御」のように個別にアニメーションを作成して管理するのに使用します。
アクションはFBX形式にテイクとして出力することができるため、Unreal EngineやUnityにそのままテイクとしてアニメーションをエクスポートすることができて便利です。

アクションの作成手順
  1. アクションメニューから「新規」を実行する。

 

アクションはアニメーション用途の機能ですが、ウェイト調整用のアクションを作成すると便利です。腕や脚をアニメーションさせて、メッシュの変形具合を確認しながらウェイトを調整することができます。

 

アクションの注意点

アクションのキーを削除する場合は「全ての除去」や「カレント値の除去」を使用します。
Deleteを使用してキーを削除すると、チャンネルに設定されたアクションレイヤーの値が全て削除されてしまい、アクションが切り替えできなくなります。

下の画像ではアクションを作成したとき、チャンネルアイコンがライトグリーンに変わります。このライトグリーン色はチャンネルにアクションレイヤーが設定されていることを表示してます。タイムラインでキーを選択してキーを削除するとチャンネルアイコンが灰色になり、アクションレイヤーが失われたことがわかります。

アクションでのキー削除は、もう少しわかりやすくなって欲しいですね。

 

5-2. キーセットを作成する

「キーセット」はチャンネルにまとめてキーを作成するためのグループです。アニメーションを作成するとき「自動キーを設定」で「アニメーション」を使用してる場合は、アニメーションに使用するチャンネルにあらかじめキーを作成しておくとアニメーション作成がスムーズになります。

キーセットの作成手順
  1. キーセットに追加するチャンネルを選択する。
  2. キーセットメニューから「新規」を実行する。

画像では雑に全ての回転を追加してますが、IK制御の脚のスケルトンは追加する必要はありません。キー作成が必要な最小限のチャンネルを追加するとよいです。
キーセットは手の指をまとめたり、IKゴールをまとめたり好みに応じて作っておくと便利です。

3dMaxのように使いたい場合は「自動キーを設定」を「全て」にすると、編集したチャンネルに自動的にキーが作成されます。

 

5-3. チャンネルセットを作成する

「チャンネルセット」はチャンネルをビューポートに表示して編集するするためのグループです。例えばキャラクターの表情をアニメーションするとき、複数のモーフを同時に編集する場合に便利です。

チャンネルセットの作成手順
  1. チャンネルセットに追加するチャンネルを選択する。
  2. チャンネルセットメニューから「新規」を実行する。

 

モーフインフルエンスをアクターに追加しておくと、アクションとしてフェイシャルアニメーションを作ることができます。

 

以上でmodoのキャラクターセットアップが完了です。

 

まとめ

大まかにキャラクターセットアップの流れを解説してみました。アクションや余り語られないセット関連機能など、主要なアニメーション機能について書けたんじゃないかと思います。
バインド、ウェイト、リギングなどの工程を行き来しながら非破壊的にセットアップできる柔軟な仕組みや、効率的にアニメーションを作成するための管理機能など、modoの強力で使いやすい機能が伝わったらいいなと思います。

一通りのセットアップが終わったら、アニメーション作業を効率化するためにアイテムセレクターを作るのもお勧めです。

 

キャラクターリグを自分で作りるのが苦手という場合は「CharacterBox」がお勧めです。CharacterBoxは高度なキャラクターリグをボタンをクリックするだけで簡単に作成できるプラグインです。自分でリグを追加することもできるし、作ったリグを保存して再利用することもできます。ポーズやモーションもボタン1つでミラーコピーできます。
人型専用でmodo標準機能で作られてるACS2と比べてみても、リグの動作が3倍以上早いのでアニメーション作成に適してます。最新バージョンの1.2.0ではミラーウェイト機能が追加されてより便利になりました。

今回の記事ではふれませんでしたが、アニメーション作成に欠かせない「グラフエディタ」「タイムラインの編集」「タイムマーカー」についてはmodoのUI機能紹介に書いてるので、合わせて見ていただくと新しい発見があるかも知れません。

 

参考

今回のキャラクターセットアップはmodo 601 SpotlightのFireboyで紹介されていた方法をもとにしてます。modoはリグを構築するためのノードやアイテム管理機能など、キャラクターアニメーションに必要な仕組みが601の段階で整っていました。

modo 601 SpotlightはFoundryのサイトから無料でダウンロードすることができます。古いコンテンツですがmodoのセットアップ工程がムービーで解説されてます。
https://www.foundry.com/my-account/products

CG News

CharacterBox  1.2.0 リリース

modo用のモジュラーリグプラグイン、CharacterBox  1.2.0 がリリースされました。modo13対応やミラーウェイトツール、ソフトIKなどの機能強化がおこなわれているようです。既存ユーザーは無償アップデート。これでやっとmodo13に移行できる。
https://www.psoft.co.jp/jp/news/20191111-cbox/

スケールを使用したリグ編集に対応

ソフト IK 強度

マッスルのロケータ対応

ミラーウェイトツール

対称タグ追加

リグエディットモードを刷新

対称編集ツール

対称アイテム選択

スケルトンサイズのコピー / ペースト

SPIK コントローラーを整列

ゴール回転に同期

FK を 2DIK に変換

FK の姿勢をできるだけ維持するように 2DIK ゴールの位置を移動します。

未使用のノードを削除

シーンに残った不要なデータをクリーンアップすることができます。

アクションレイヤー対応

スタンドアロンライセンスツールをアップデート

ネットワークレンダリング専用プラグイン

ネットワークレンダリング専用プラグインの提供を開始しました。

Modo 対応バージョン

Windows 版  Modo 10.2v2 / 11.x / 12.x / 13.x

Tips

modoのバインド

modoの「バインド」について書いてみたいと思います。

バインドとはスケルトンとメッシュアイテムを関連付けて、スケルトンのトランスフォーム(移動/回転/スケール)を使用してメッシュを変形できるようにする機能です。一般的にスケルタルアニメーション(ボーンアニメーションやスキンアニメーションとも呼ばれる)するために必要な工程です。

 

バインド方法

バインドを実行するするには、いくつかの手続きが必要です。

  1. メッシュアイテムとスケルトンを準備する
  2. セットアップモードをONにする
  3. メッシュアイテムとスケルトンが選択された状態で「バインド」を実行する

 

バインドは何をしているのか

バインドを実行するとメッシュにウェイトマップが生成されるほか、シーン内にいくつかのアイテムが作成されることに気がつくと思います。

バインドは実行時にいくつかの処理を自動的におこないます。具体的には以下の通りです。

  1. 各スケルトンごとにウェイトマップを作成する
  2. ジェネラルインフルエンスを作成してメッシュ、ウェイトマップ、スケルトンを関連付ける
  3. 正規化フォルダを作成してジェネラルインフルエンスを入れる

 

手動でバインド

バインド済みのメッシュに後からスケルトンを追加したい場合など、手動でスケルトンとウェイトを関連付けたい場合があるかと思います。手動で設定するとこんな感じの手順になります。

 

バインドで使用されてる機能について

バインドで使用される機能について解説してみます。

ウェイトマップ

ウェイトマップは「頂点マップ」というメッシュの頂点にメタ情報を持たせる機能の1つです。modoは「UV」「モーフ」「頂点カラー」「法線」「トランスフォーム」など様々な情報を頂点に格納します。

ウェイトマップはその名称通り「重さ」という抽象的な値を頂点に格納します。このウェイトマップはmodoの様々な機能で利用することができます。

ウェイトマップの使用例

バインドで作成されるウェイトマップは、デフォーマがメッシュを変形するときの「影響の強さ」を指定するのに使用します。ウェイトの値が100%であればスケルトンのトランスフォームの影響を100%受けます。1つの頂点が複数のスケルトンから影響を受ける場合は、後述の「正規化フォルダ」によって正規化されたウェイト値が使用されます。

 

ウェイトマップのメリット

ウェイトマップはメッシュの頂点に情報を持たせることができるため、UVやテクスチャを作成することなく直接メッシュに選択範囲やマスクのようなものを作成することができて便利です。

また、modoの頂点マップはメッシュを編集してもある程度補間してくれるため、ウェイト/モーフ/UVなどを非破壊的にメッシュ編集できるという特徴があります。他の3Dソフトではありがちな、バインド後にメッシュを編集したらウェイトを最初からつけ直しというような問題が発生しません。

 

ジェネラルインフルエンス

ジェネラルインフルエンスは、メッシュのどこを変形するか指定するアイテムです。modoのデフォーマはプロシージャルモデリングやパーティクルシステムと同じようにノードベースの設計になってます。デフォーマは主に以下のノードで構成されています。

  • アイテム
  • インフルエンス
  • エフェクタ

「アイテム」は変形対象になるメッシュアイテムです。
「エフェクタ」はベンドやマグネットのように、どんな風に変形するか指定します。
「インフルエンス」はどこを変形するか指定します(ウェイトマップなど)。

ジェネラルインフルエンスはベンドやスケルトンによる変形など、一般的にアニメーションで使用するデフォーマ機能で使用されます。下の画像はベンド エフェクタを使用してメッシュを変形するときのノード構成です。

 

正規化フォルダ

正規化フォルダ(Normalizing Folder)はデフォーマの計算を1度におこなうための機能です。modoのデフォーマは「デフォーマリスト」の順番で変形を処理します。しかし、スケルトンで制御されるキャラクターのようなメッシュを変形する場合は、デフォーマを順番に計算するのではなく一度に変形を加える必要があります。

例えば下の画像では、センターのボックスにウェイトマップを100%ずつ重複するように設定しています。スケルトンを回転や移動したとき、センターのボックスは2つのスケルトンのトランスフォームが加算され2重に変形してしまいます。
General InfluenceをNormalizing Folderに入れると、ウェイトの上限が100%(スケルトンのそれぞれ50%ずつ)に正規化された変形になります。

 

スケルトンの変形は「トランスフォームデフォーマ」と同じ

スケルトン/ボーン変形まわりの仕様は3Dソフトによって様々ですが、modoのスケルトンによる変形は「トランスフォームデフォーマ」と同じです。

modoでは基本的にエフェクタ (ベンド、マグネット、ボルテックスなど)がジェネラルインフルエンスに変形方法を指示しますが、トランスフォーム(移動/回転/スケール)を持つアイテムは全てトランスフォームデフォーマとしてジェネラルインフルエンスに接続することができます。

バインドコマンドはロケータにしか対応していませんが、カメラ、ライト、メッシュアイテムなどトランスフォームを持つアイテムはスケルトンの代わりに使用することができます。

Mayaを使用した経験があればmodoのデフォーマのノード構成に違和感を感じることはないと思いますが、3dsMaxやLightWaveではエフェクタとインフルエンスがまとまった機能として提供されるため、ノード構成が少し複雑に見えるかも知れません。

恐らくエフェクタとインフルエンスを分けているのは汎用性を高めるための設計だと思います。サードパーティ製のエフェクタが開発されたとしても、ウェイトやフォールオフはインフルエンスによって一貫性のある動作が期待できます。
古いソフトはパラメータ固定のものが多かったので、このデフォーマではウェイトが使用できるのに、こっちのデフォーマではウェイトが使えない。というような一貫性のなさに苦労することがありました。

 

バインドが作成する特殊なウェイトマップ

バインドを使用して作成されたウェイトマップは少し特殊なウェイトマップです。バインドで作成されたウェイトマップは「頂点マップリスト」でロケータアイコン付きのマップとして表示され区別できます。下の画像では上が通常のウェイトマップ、下がバインドによるウェイトマップです。

なぜこのウェイトマップが特殊かというと、関連付けられたスケルトンを削除したタイミングでウェイトマップも同時に削除されます。

デフォーマリストにはジェネラルインフルエンスが残るので注意が必要です。有効なジェネラルインフルエンスが残ったままだと意図しない変形が加わることがあるため、バインドを繰り返して使用する場合はジェネラルインフルエンスを手動で削除する必要があります。

 

特殊なウェイトマップの作成手順

この特殊なウェイトマップは手動で作成することもできます。作成方法は「頂点マップ作成」するとき「__item_+シーンが管理するアイテム名」を入力します。

modoはアイテムツリーで表示されるアイテム名の他に、シーンが管理している名前を持っています。例えばシーンにLocatorを作成して選択します。「コマンド履歴」を見ると「select.item locator004 add」のようにシーンが管理するアイテム名を確認することができます。

頂点マップ作成ダイアログで「頂点マップの名称」に「__item_locator004」と入力してマップを作成すると、頂点マップリストではLocatorがアイコンつきの特殊なウェイトマップとして作成されたのが確認できます。

 

せっかくウェイトを調整したのに、スケルトンと一緒にウェイトマップが削除されると困る場合があると思います。そんな時のための便利なスクリプトを紹介します。

 

Convert Skeleton Weight to normal Weight

modoのバインドを使用した場合に生成される特殊なウェイトマップを、通常のウェイトマップに変換するスクリプトです。

http://modogroup.jp/tipsblog/scripts/cnv_skwgt2wgt/

 

Connect Weight Skeleton

同名前のウェイトマップとスケルトンを関連付けるスクリプトです。他のソフトで設定したウェイトをmodoのスケルトンに関連付けしたい場合に便利です。

http://www.modonote.com/script/connect-weight-skeleton/

参考資料

Rigging Auto Face Rig 2.0

Mayaの自動フェイシャルリグ作成スクリプト。価格は$25。
https://sellfy.com/p/kQEM/

改良点
  • フェイスの自動リギングスクリプトを刷新
  • フェイスの自動リギング機能
特長
  • 高速リギング
  • エッジの選択に基づいて曲線を調整
  • フロントビューポートで3Dモデルにカーブを投影
  • コントローラの自動生成
  • インテリジェントなオートウェイト
  • ダイレクトコントロール
  • 自動変形マニピュレーション
  • 分類されたフェイスコントローラ
  • アイリスに影響を与えるアイターゲット
  • まぶたに目ターゲットを影響
  • ボディのリギングとは完全に独立
  • Unreal EngineとUnity互換性
  • 2Dスタイルのリグ (目、眉、鼻、口の移動とスカッシュ アンド ストレッチ)
  • コーナーリップの属性には、目、顎、頬の影響、スティッキーリップを含む

Tips

modoのスケルトン

modoのスケルトンについて書いてみたいと思います。
スケルトンはキャラクターなどのメッシュを変形してアニメーションさせるときに使用します。キャラクターにポーズを取らせるとき、関節の位置を指定するために使用します。他の3Dソフトではボーンやジョイントと呼ばれたりします。

 

スケルトンの作成方法

スケルトンはスケルトンツールを使用して作成します。スケルトンツールは「モード」を切り替えることで、スケルトンを「追加」「編集」「挿入」「削除」することができます。

「対称」を設定するとスケルトンを左右対称に編集することができます。

 

スケルトンはロケータでできている

他の3Dソフトではボーンやジョイントと呼ばれる専用のアイテムがありますが、modoのスケルトンはロケータアイテムを階層化したものです。このためスケルトンツールを使用しなくてもスケルトンを作ることができます。
スケルトンはロケータの「シェイプ」や、階層構造を視覚化する「リンク」によってビューポート上での見た目が設定されています。

 

スケルトンの色は表示オプションの「ワイヤーフレームの色」「塗りつぶしの色」でカスタマイズすることができます。

modoではスケルトンとメッシュを「バインド」することで、はじめてスケルタルアニメーション(ボーンアニメーションやスキンアニメーションとも呼ばれる)することができるようになります。

modoのスケルトンが専用アイテムではなくロケータを使用しているのは、恐らく専用のアイテムを必要としない設計を目指しているからだと思います。バインドの記事で解説していますがmodoはスケルタルアニメーションにスケルトン以外のアイテムを使用することもできますし、スケルトンにマッスルボーンのような機能を搭載しなくてもリグを作ることができる環境が用意されています。リギングでは基礎となる汎用的な仕組みがあれば、機能が限定された専用機能を搭載するよりも将来的な自由度が高いということのように思います。

 

参考

Tips

modoのウェイトマップをアニメーション

Transfer Vertex Mapを使ってウェイトマップをアニメーションさせてみた。ちょっとしたテストです。

■サンプルファイル

 

Texture Falloffを使用したアニメーション。

 

基本的には法線の転送のウェイトマップ版です。現状はフォールオフを使っても0か1の値しか転送出来ないため、滑らかなウェイトにすることができないのが残念です。Merge MeshesしたメッシュにTransfer Vertex Mapが使えないのも残念。。。Merge Meshesつかればキャラクターのウェイト設定を使い回す仕組みが作れそうです。

C4Dのようにウェイトの範囲を時間経過で広げたり、時間差でウェイトを消したりできるようになって欲しいですね。

Tips

modoのコンストレイント ウェイト

modoのコンストレイントにあるウェイトチャンネルについて書いてみたいと思います。コンストレイントのウェイトを使用すると2点間でアイテムを等間隔に配置するようなリグを作ることができます。

modoのコンストレイントは複数のアイテムを指定することができます。ことのきコンストレイントの「ウェイト」を使用すると、コンストレイントの重みを調節することができます。ウェイトはプロパティに表示されないので、チャンネルビューポートを使用して設定します。

 

ウェイトを設定すると2点間でアイテムを等間隔に配置するようなリグを作ることができます。

Position Constraint、Rotation Constraintのウェイトを調整すると、こんな感じの制御ができるようになります。

 

コンストレイントは2つ以上の複数のアイテムに使用することもできます。

 

ウェイトの使い道は様々で「カメラブレンドリグ」のようなものが作れるので便利です。

CG News

Auto Character System 3 for Modo

modo用のオートキャラクターセットアッププラグイン、通称ACSのバージョン3の開発記事が公開されています。現在ACS2は人型に限定したリグ機能ですが、3ではモージュル化され人型意外のリグにも対応するようです。発売時期は2020年のリリースを予定してるとのことです。
https://www.autocharactersystem.com/

 

自然なモジュラー

  • ACS3は完全にモジュール化されたシステムで、既製のアセットからリグを組み立てることができます。
  • モジュールは単純なドラッグ・アンド・ドロップ操作で接続されます。
  • モジュールは対称性の有無にかかわらずミラー化できます。対称設定では、ガイドの片側のみをフィットさせる必要があります。
  • カスタムモジュールは、ネイティブアセンブリの構築に使用されているのとまったく同じ専用ツールセット(リグ開発環境)を使用して、パワーユーザが構築できます。

ノンリニア編集

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

 

ワークフローを重視

このツールセットはリグおよびアニメーションワークフローの多くの部分をスムーズにし、最適化するように設計されています。
インタフェースは、MODO内でシームレスに統合され、多くの機能や設定をアイテムプロパティで直接使用できます。