modoでキャラクターをアニメーションできるようセットアップする方法について書いてみます。今回は人型のモデルを中心に解説しますが、犬や猫、モンスターなんかも基本的は同じ手順でセットアップすることができます。
メカをアニメーションするときはバインド工程が不要で、メカパーツをスケルトンにペアレントしてアニメーションします。
セットアップの流れ
セットアップの大まかな流れです。modoのセットアップはバインド後にスケルトンの位置を調整したり、モデルに修正を加えたりと、各工程を行き来しながらキャラクターをセットアップすることができます。
セットアップの流れ 1. キャラクターモデルを用意する 4-1. IKの設定 |
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. バインドする
スケルトンを使用してモデルを変形するために「バインド」を実行します。リグ作成→バインドの順番でも問題ありませんし、相互に行き来してセットアップすることもできます。個人的にモデルが動くとテンションが上がるのでバインドを先におこないます。
バインド手順
- 「セットアップモード」をONにする
- スケルトンとモデルを選択する
- バインドボタンを押す
ヒートバインドの制限
今回はヒートバインドを使用しました。ヒートバインドは熱伝導の計算方法を使用してウェイトを計算する方法で、「距離」に比べると良好な結果になります。しかし、モデルに対する要求が結構シビアで、以下のようなメッシュに使用するとバインドに失敗します。
- メッシュアイテムがひとつの塊であること。穴があるのは問題なし。
- アイテムがポリゴンのみで形成されていること。孤立した頂点やエッジやカーブがあると動作しない。
- 頂点、エッジ、ポリゴンを複数のコンポーネントが共有していないこと。例えば 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の適用手順
- 「セットアップモード」をONにする
- IKを適用するスケルトンを3~4個選択する
- 「IK 組み込み」を実行する
- 「IK 上方ベクトルの作成」を実行する
IKゴールがロケータのデフォルト表示だと見づらいので、プロパティで「シェイプ」と「表示オプション」を変更します。
4-2. トランスフォームをゼロにする
IKゴールのようなアニメーションに使用するアイテムは、トランスフォームを「ゼロ」にしておくと便利です。「ゼロ」はトランスフォームアイテムを追加することで、プロパティのトランスフォームの値(メイントランスフォーム)を 0 にする機能です。
ゼロの適用手順
- 「セットアップモード」をONにする
- アイテムを選択して「ゼロ」を実行する
画像では雑に全てのアイテムを選択して「ゼロ」を実行してますが、スケルトンツールを使用してる場合はスケルトンに回転値が入らないはずです。必要なアイテムにだけゼロを使用した方が不要な計算が発生ないのでよいと思います。
「ゼロ」を適用しておくと「リセット」を使用して素早く初期ポーズに戻すことができるようになります。Mayaの「フリーズ」と同じ用途の機能です。
ゼロはセットアップモードがOFFでも実行できてしまうので、誤ってセットアップモードがOFFでゼロしてしまった場合は、メイントランスフォームに「全て除去」を実行してカレントのアクションレイヤーの値を消した後に、セットアップモードをONにして「ゼロ」を実行します。
スケルトンの位置を調整した後もゼロを実行します。
「ゼロ」はメイントランスフォームに入っていた値を、別のトランスフォームアイテムに移し替えることでプロパティのトランスフォームを 0 にしています。これはあくまでmodo内でアイテムを扱いやすくする機能です。
FBXなど外部にデータを出力したときは、統合されたトランスフォーム値が出力されます。ゲームエンジンでの使用を考える場合は、ゼロを使用しない方が都合がよいことがあるかもしれません。
4-3. 使用しないトランスフォームチャンネルをロックする
アニメーションに使用しないトランスフォームチャンネルは、ロックして編集出来ないようにしておくと便利です。
例えばIKのアップベクターはワールド位置しか参照されないため、回転する必要のないアイテムです。誤って操作したり、キーを打たないようにロックしておくとアイテムの管理が楽になります。
チャンネルのロック手順
- ロックスするチャンネルを選択する
- グループビューポートで「新規グループ」を「選択チャンネルから」作成する
- グループの「ロック」をONにする
「グループ」はmodoのユニークで強力な管理機能です。アイテムやチャンネルをグループにまとめて管理することができます。
グループの機能には複数のタイプがあります。「標準」グループは追加されてるアイテムの表示やレンダリングをまとめて切り替えることができます。グループは後述の「アクター」「アクション」「キーセット」「チャンネルセット」でも使用します。
チャンネルを右クリックすると、グループを使用せずにチャンネルをロックする機能もあります。しかし、このロックはシーンファイルに情報が保存されるため、「シーンの統合」「参照読み込み」を使用するとロックが解除されてしまいます。
4-4. その他のリグ
チャンネル リレーションシップを使えばスケルトンのスライドを自動化したり、マッスルのような伸張を組み込んだりすることもできます。リグ作成ついては個別の記事を参考にしてみてください。
5. アクターを作成する
「アクター」はキャラクターに関連のあるアイテムをまとめておくための「グループ」です。アクター (役者) と言う名称ですが人型キャラクター専用というわけではなく、アイテムやチャンネルを自由に追加できます。
アクターを作成すると「アクション」を作成できるようになり、「オニオンスキン」「ドリブンアクション」「アニメーションレイヤー」のようなアニメーション専用機能を使用できるようになります。
アクターの作成手順
- アクターにするアイテムを選択する
- アクターメニューから「新規」を実行する
アクターにはスケルトン、IKゴール、アップベクターなどアニメーションするアイテムを全て選択して追加します。オニオンスキンを使用する場合はメッシュも追加する必要があります。
アクターの名称はユニークな名称を設定します。たとえば「Character」のような被りやすいものより「JohnSmith」のような固有の名前が望ましいです。なぜかというと、modoは同名のアイテムに自動的にアイテムインデックスを追加しますが、アクター名にアイテムインデックスが追加されるとアクションの切り替えが動作しなくなることがあるからです。
5-1. アクションを作成する
「アクション」はアニメーションの管理機能です。例えばゲーム用のアニメーションを作成する場合に、「歩く」「走る」「攻撃」「防御」のように個別にアニメーションを作成して管理するのに使用します。
アクションはFBX形式にテイクとして出力することができるため、Unreal EngineやUnityにそのままテイクとしてアニメーションをエクスポートすることができて便利です。
アクションの作成手順
- アクションメニューから「新規」を実行する。
アクションはアニメーション用途の機能ですが、ウェイト調整用のアクションを作成すると便利です。腕や脚をアニメーションさせて、メッシュの変形具合を確認しながらウェイトを調整することができます。
アクションの注意点
アクションのキーを削除する場合は「全ての除去」や「カレント値の除去」を使用します。
Deleteを使用してキーを削除すると、チャンネルに設定されたアクションレイヤーの値が全て削除されてしまい、アクションが切り替えできなくなります。
下の画像ではアクションを作成したとき、チャンネルアイコンがライトグリーンに変わります。このライトグリーン色はチャンネルにアクションレイヤーが設定されていることを表示してます。タイムラインでキーを選択してキーを削除するとチャンネルアイコンが灰色になり、アクションレイヤーが失われたことがわかります。
アクションでのキー削除は、もう少しわかりやすくなって欲しいですね。
5-2. キーセットを作成する
「キーセット」はチャンネルにまとめてキーを作成するためのグループです。アニメーションを作成するとき「自動キーを設定」で「アニメーション」を使用してる場合は、アニメーションに使用するチャンネルにあらかじめキーを作成しておくとアニメーション作成がスムーズになります。
キーセットの作成手順
- キーセットに追加するチャンネルを選択する。
- キーセットメニューから「新規」を実行する。
画像では雑に全ての回転を追加してますが、IK制御の脚のスケルトンは追加する必要はありません。キー作成が必要な最小限のチャンネルを追加するとよいです。
キーセットは手の指をまとめたり、IKゴールをまとめたり好みに応じて作っておくと便利です。
3dMaxのように使いたい場合は「自動キーを設定」を「全て」にすると、編集したチャンネルに自動的にキーが作成されます。
5-3. チャンネルセットを作成する
「チャンネルセット」はチャンネルをビューポートに表示して編集するするためのグループです。例えばキャラクターの表情をアニメーションするとき、複数のモーフを同時に編集する場合に便利です。
チャンネルセットの作成手順
- チャンネルセットに追加するチャンネルを選択する。
- チャンネルセットメニューから「新規」を実行する。
モーフインフルエンスをアクターに追加しておくと、アクションとしてフェイシャルアニメーションを作ることができます。
以上で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