株式会社 KORAT でさまざまなコンテンツの3DCG製作、ディレクションを担当しておいでの 高野 怜大氏に、Unity, Unreal Engineなどのゲームエンジンを用いたゲーム制作のワークフローでの「MODO」の活用スタイルをご紹介いただいております。
text by 高野 怜大
ゲームキャラクターにアニメーションをつけるにはその前段階の準備としてセットアップという作業が必要です。セットアップはゲームエンジンについても把握しておく必要があります。今回はこのセットアップの工程を詳しく紹介したいと思います。
まず簡単なモデルを用いてセットアップの流れを紹介します。このシーンのモデルは人の形をしていますが、ただのポリゴンメッシュのかたまりですので関節を動かしてポーズをつけたりすることができません。
いまからこのモデルにスケルトンを設定して自由に動かすことができるようしたいと思います。
スケルトンを設定するようなセットアップの作業は「セットアップ」レイアウトにある専用のツールを用いて行います。
代表的なセットアップは以下のような流れで行います。
それでは、まずスケルトン作成ツールでキャラクターの骨となるロケーターアイテム(スケルトン)を作成します。
スケルトン作成ツールを起動し、モデルの上を順番にクリックすると階層構造のスケルトンを作成できます。
スケルトン作成ツールには様々な設定が用意されています。「対称」オプションで左右対称のスケルトンを同時に作成したり、「中心」オプションでクリックした位置とモデルの位置関係からちょうど中心となる位置にスケルトンを作成するようなことも可能です。
キャラクターの骨となるスケルトンが用意できました。
この状態はまだポリゴンメッシュとスケルトンが完全に独立した状態です。
次のステップでポリゴンメッシュとスケルトンの関連付けを行います。
次はポリゴンメッシュとスケルトンに対してバインドを行い、スケルトンの動きに合わせてポリゴンメッシュが追従するようにします。
メッシュアイテムとスケルトンを選択し、セットアップモードに入ります。
これから行う作業は セットアップアクションステート (セットアップモード) という特別な状態で行います。
セットアップモードにするとモデルや関節を初期位置に設定することができ、スケルトンやバインドの設定のようなセットアップの作業をスムーズに行うことができます。
セットアップ ボタンをクリックすると「セットアップモード」となり、3Dビューポートが黄色い枠で囲まれて現在セットアップモードであることが強調されます。
次に「バインド」ボタンをクリックします。
「バインド」はモデルにウェイトを設定し、さらにその部分をスケルトンに関連付ける一連の複雑な作業を自動的に実行してくれます。
「バインド」ダイアログボックスが表示され、初期のウェイトをどのように設定するのかを指定することができます。
バインド処理を行った状態です。各スケルトンに対して、関連付けられたウェイトマップが色分けして表示されます。
「セットアップ」モードをOFFにし、スケルトンを選択してみます。するとそのスケルトンに関連付けられたメッシュアイテムのウェイトが強調表示され、スケルトンに近い部分に影響を与えるように設定されているのが確認できます。
人型のようにポリゴンが複雑なモデルに対してバインドを行うと、意図しない部分にウェイトが設定されることがあります。
たとえば、この二の腕のスケルトンは脇から胸の部分ポリゴンに薄くウェイト値が設定されているため、二の腕を動かすと脇の下が不自然に膨らんでしまいます。
次の工程ではこのように細かい部分のウェイトを手動で調整します。
「セットアップ」レイアウトの左にある「ウェイト」タブをクリックします。ここにはウェイトマップを編集するためのコマンドが用意されています。
モデル上をマウスでドラッグしてペイントするように修正したり、頂点のウェイト値を数値で細かく指定することが可能ですので、モデルの状態や用途に合わせてツールを使い分けて、手早く編集しましょう。
適切なウェイトを設定することで、自然にポリゴンが変形するようになります。
前の章では、バインドツールを用いてウェイトの設定や関連付けを自動的におこないました。
この章ではもう少し踏み込んで、ポリゴンメッシュとスケルトンがどのような仕組みでひもづけられるのかを紹介します。
基礎的な知識を正しく理解しておくことで、応用が必要な複雑なセットアップにも対応することができます。
MODOでは人型のようなモデルは「General Influence(汎用インフルエンス)」という専用のアイテムを用いて、モデル、ウェイトマップ、スケルトンの関連付けを管理します。
今度は「General Influence(汎用インフルエンス)」を用いて、スケルトンを手動で設定してみます。
まずスケルトンツールで、モデルの骨に相当するスケルトンを作成します。
この状態ではまだ腕のメッシュアイテムとスケルトンが完全に独立しています。
メッシュアイテムとスケルトンを関連付けて、スケルトンを動かすとそれに合わせて腕のメッシュアイテムが動くようにします。
今回骨にあたるスケルトンは上腕と前腕の2本用意しています。それぞれ腕のどの部分が追従するのか場所(頂点)を設定するために頂点マップの「ウェイトマップ」を用意します。
メッシュアイテムを選択し、リストパネルを確認します。
リストパネルはメッシュアイテムがもっている頂点マップを管理しており、ウェイトマップだけでなくUVマップやモーフマップへもここからアクセスすることができます。
ウェイトマップにある「(新規マップ)」をクリックし、前腕にあたる部分のウェイトマップを作成します。
名称を「LeftForeArm_weight」とし、タイプを「ウェイトマップ」、値を0.0と入力し、OKボタンをクリックします。
※ウェイト値を後から調整しますので、分かりやすいよう値を0にしています。
ウェイトマップ「LeftForeArm_weight」が追加されました。次はこのウェイトマップにポリゴンメッシュの前腕部分を指定します。
頂点選択モードでウェイトを設定したい頂点(前腕部分)を選択します。
今回は「ウェイトの調整」ツールを使用して、ウェイト値を設定します。
「ウェイトの調整」ボタンをクリックして起動させます。
3Dビューポートを左右にドラッグすると選択した頂点のウェイト値を調整することができます。
分かりやすいよう選択したすべての頂点のウェイトを100%に設定しました。これでウェイトの準備は完了です。
次はポリゴンメッシュとスケルトンの関連付けです。
今回の関連付けにはデフォームアイテムの「General Influence」を使用します。
デフォームアイテムを管理するデフォーマリストのパレットは、初期状態でセットアップレイアウトに表示されていないので、ウィンドウ右上に表示しておくとよいでしょう。
タブの右にある「+(プラス)」のボタンをクリックし、「デフォーマリスト」を選択します。
「デフォーマリスト」パレットが追加されました。
それでは次にメッシュアイテムを選択した状態で、「オペレータ追加」の右にある三角のボタンをクリックし、「General Influence」を選択してください。
デフォーマリストに「General Influence」が追加されます。「General Influence」はデフォーマリストやプロパティで、リンクさせるエフェクタや対象アイテムを指定することができます。
それでは「General Influence」を使い、腕のスケルトンやウェイトマップを指定して関連付けます。
今回は関連付けの作業が視覚的に分かりやすいスケマティックビューを使用します。
デフォーマリストの「General Influence」をスケマティックビューにドラッグ&ドロップします。
「General Influence」の形状には「MeshArm」がつながっています。
前腕のスケルトン「LeftForeArm」もスケマティックビューにドラッグ&ドロップします。
「LeftForeArm」のノードを「General Influence」に接続しますが、その前に「セットアップモード」に入ります。
これから行う関連付けの作業は「セットアップモード」で行います。「セットアップ」ボタンをクリックすると「セットアップモード」に入ります。
「LeftForeArm」を「General Influence」の「エフェクタ」に接続します。
「セットアップモード」をOFFにして、前腕のスケルトン「LeftForeArm」を回転させてみます。
すると腕全体が回転してしまいました。これはまだ「General Influence」でポリゴンメッシュの前腕部分となるウェイトマップが指定されていないためです。
「General Influence」を選択し、プロパティのタイプに「ウェイトマップ」、ウェイトマップ名称に「LeftForeArm_weight」を指定します。
するとウェイトマップで指定された前腕の部分がスケルトンに追従するようになりました。
上腕部分に対しても同じように設定を行いました。
このように「General Influence」を核に、「メッシュ」、「ウェイトマップ」、「スケルトン」を適切に設定することで、関節をセットアップ出来ることがお分かり頂けたかと思います。
セットアップを行った後、モデルにポーズをつけようとするとメッシュが破たんしたようになってしまうことがあるかもしれません。
これは複数のスケルトンの間にある頂点に対して複数のウェイトマップが設定され、ウェイト値の合計が1.0(100%)になっていない様な場合に発生します。
こういったケースでは正規化フォルダを追加し、すべてのデフォーマとインフルエンスをこのフォルダの中に格納します。するとひとつの頂点に複数のウェイトマップの値が適用されたとき、そのウェイト値の合計が 1.0 (100%) になるよう自動的に調整されます。
下の図のモデルは2つウェイトマップを使って、上下のスケルトンにリンクされていますが、ちょうど中央の頂点には2つのウェイトマップでそれぞれ1.0(100%)が設定されています。このような場合、スケルトンを回転させるとメッシュが破たんします。
ウェイトをノーマライズし、修正してみましょう。
デフォーマリストで「正規化フォルダ」を追加します。
「正規化フォルダ」は内包されたInfluenceを正規化(ノーマライズ)することができます。
「正規化フォルダ」の中に「General Influence」をドラッグ&ドロップして、内包した状態にします。
ウェイトマップの正規化が行われ、きれいに曲がるようになりました。
いかがだったでしょう。
セットアップはとても重要な工程で、きちんと設定されていないとポーズをつけたときにモデルが破たんしたり、アニメーションを設定しづらいデータが出来上がってしまいます。後工程に大きく影響を与える作業となりますので、しっかり学習しておきましょう。
ではでは
|
高野 怜大
2002年から GameAsset、VideoPromotion をはじめとする各種コンテンツの3DCG製作、ディレクションを担当。
|