『映画ドラえもん のび太の新恐竜』前編
図鑑イラストのような生き生きとした恐竜をMayaで表現

『映画ドラえもん のび太の新恐竜』前編 図鑑イラストのような生き生きとした恐竜をMayaで表現

2020.08.20

  • Maya
  • アニメ
  • 映画・TV

「映画ドラえもん のび太の新恐竜」が、2020年8月7日に待望の公開となった。映画シリーズ40作目となる記念すべき作品は、のび太が双子の恐竜キューとミューに出会い繰り広げられる感動の物語。公開を心待ちにしていた読者も多かったのではないだろうか。

この作品において3DCGによる恐竜を担当したのが、株式会社MORIE(以下、MORIE)だ。MORIEは、これまでフォトリアルな恐竜が登場するプロジェクトを数多く手掛けてきた実績を持っている。

NHKスペシャル「恐竜超世界」 ©NHK
NHKスペシャル「恐竜超世界」 ©NHK

本作では図鑑に載っているイラストのような恐竜が、生き生きと動く様子を表現することが目標とされた。

今回、恐竜の質感表現やShotgunを活用したワークフローについて、前後編に分けてお届けする。

「フォトリアルではなく、図鑑イラストのような恐竜を3DCGで表現するという取り組みは、弊社にとって新たな挑戦でした。」と本作品でCGアニメーション スーパーバイザーを務めた森江氏はインタビュー冒頭で語ってくださった。

本作にメインで登場する2体の新恐竜(画像1)と一部の恐竜(画像2の手前2体)は作画で表現されている。それ以外のティタノサウルス(画像2の奥)やヤンチュアノサウルス(画像3)などの25種類の恐竜たちが Maya を用いた3DCG表現だ。

映画ドラえもん のび太の新恐竜
画像1
映画ドラえもん のび太の新恐竜
画像2
映画ドラえもん のび太の新恐竜
画像3

「恐竜の質感では、アニメ調ではあるがリアリティをもたせるバランスに苦労しました。アニメとしてあまりデフォルメしすぎず、少しリアル寄りということを心がけています。」とは森江氏のコメント。

登場する25種類の恐竜のうち4種類が羽毛恐竜と呼ばれる種類であった。ここでの羽毛表現は、テクスチャとして描くのではなく、実際に3Dの毛を生やすという設定が行われた。程よいリアルさを表現するためにXGenが活用されたのだ。

恐竜超世界
ヴェロキラプトルの体毛にXGenが使用されている

XGenの作業には「ディスクリプション」と「インタラクティブグルーミング」という2つの方法が存在する。

XGenの機能であるディスクリプションとインタラクティブグルーミングの違いはこちらの学習ソースをご確認ください。

インタラクティブ グルーミングでは毛の流れを作りやすく、シミュレーションをかけて毛をなびかせるなどの利点がある。ただ今回はシミュレーションは用いず、また「カスタムシェーダーパラメータ」が必要となったことからディスクリプションを選択した。

ディスクリプションはシンプルにひとつに定義された。(毛の種類や部位に応じて、複数のディスクリプションを使う方法もあるそうだ)そして、誇張表現のために、あえて太い幅を持った毛が設定されたという。

映画ドラえもん のび太の新恐竜
映画ドラえもん のび太の新恐竜

作業の流れとしては、まず毛がいらない場所に対するマスクの設定が行われた。Maya上のペイント機能とPtex(テクスチャーマッピング手法)ファイルの編集を組み合わせてマスクの設定は行われている。脇や関節部分など、少し入り組んだ部分は、Mayaペイントツールでざっくりと領域を切り、テクスチャに書き出し、修正、それをPtexとして読み込むという手順がとられた。

テクスチャを使用する方法については、こちらを参考にしてください。高畠氏によるとXGenの情報を保存するためのPtexマップは、こまめにバックアップをとりながらの作業がおすすめとのことです。
黒を最初に指定、毛が必要なところに白を足すほうが楽に設定が出来るとのこと。
黒を最初に指定、毛が必要なところに白を足すほうが楽に設定が出来るとのこと。

続いて、Grooming(毛繕い)ツールを使い、毛の長さ、流れ、毛先の角度などに細かい調整が行われた。しかし、モデルデータに三角形ポリゴンが含まれていたことが原因で、アニメーションで動いた際に毛の乱れが部分的に目立ってしまったという。そこで、四角形ポリゴンのみで構成されるXGenをアサインする用のモデルデータを用意して、元モデルからバインドコピーを行う対応が行われた。

毛の長さ、流れ、毛先の角度などの細かい調整
毛の長さ、流れ、毛先の角度などの細かい調整
毛の長さ、流れ、毛先の角度などの細かい調整

Grooming設定で毛の印象は大きく変わる。ヴェロキラプトルは、凶暴なで荒々しいイメージを出すために少し強めにノイズが加えられ、毛束感を出すために毛幅が太く調整された。

ヴェロキラプトル

一方、抱卵するオヴィラプトルは、優しく繊細なイメージを出すためにヴェロキラプトルとは逆にノイズを少なく、毛幅を細くといった調整が施された。

オヴィラプトル

他にもシュヴウイアとシノルニトサウルスといった羽毛恐竜が登場する。

シュヴウイア
シノルニトサウルス

レンダリングまわりでは、次のようなAOV素材が出力された。(AOVとはレンダリング時に要素ごとの画像に分けて出力すること。)

AOV素材

After Effects上の後工程で明かりを足すなどの調整を行うための素材として、Normal素材が必要であったが、通常のNormal素材(画像左)では、毛の一本一本ごとのNormalが出力されてしまうため、アニメの表現としてはディティールが強すぎて使いづらい。そのため、XGenNormalという、地肌のNormal(画像右)を毛に転送し、あえてディティールを落としたNormal素材が用意した。(画像中央)

XGenNormal

この素材を準備するために使用されたのが、カスタム シェーダー パラメータである。パラメータを追加することで、レンダリング時にシェーダーにパラメータを渡せるというものだ。VRayの場合は、「VrayUserColor」ノードを、Arnoldの場合は、「aiUserDataColor」ノードを使用し、カスタムシェーダーパラメータで設定した名前を指定することで、シェーダー側でカラー等の値を取得することができる。
XGenのカスタム シェーダー パラメータを取得するという使い方において両者とも同じノードである。

カスタム シェーダー パラメータ
カスタム シェーダー パラメータ

そして、毛の色として、「root_color」と「tip_color」が追加され、マップを用いて色の設定が行われる。また、「surfaceNormal」というパラメータの追加も行い、エクスプレッションとして[$N]を指定。この$Nは、毛のプリミティブが発生するサーフェースの法線を取得することができる既定の変数だ。

XGenの設定

実際のノード構成では、法線空間をカメラ空間に変換したり、-1~+1の値を0~1にリマップしたりといった設定も行われている。

実際のノード構成

この「VrayUserColor」や「aiUserDataColor」は、非常に便利なノードでXGenのカスタムシェーダーパラメータに限らず、ポリゴンオブジェクトにも使用が可能だ。Colorだけではなく、Float(浮動小数点)やString(文字列)を扱うノードも用意されている。

「VrayUserColor」や「aiUserDataColor」

オブジェクトのノードからマテリアルにパラメータが渡すことができるため、単一マテリアルで大量のオブジェクトに違う色や異なるテクスチャを割り当てるような処理も可能だ。 ランダムに色を割り当てる手法については、こちらをご覧ください。

他にも、Alembicファイルフォーマットなどに書き出す際に、オブジェクトに固有アトリビュートを与えて出力が行える。Alembicを読み込んだ側のシーンで、そのパラメータに従って質感を切り替えるといったことも表現出来るという。

Alembic

キャラクターごとのレンダリング設定が完了すると、次にカットごとのレンダリングが行われた。レンダリングシーンでは、基本的にはアニメーションシーンからエクスポートされたジオメトリキャッシュ(alembic)を読み込んでレンダリングしている。ただし、XGenを設定した恐竜に関しては、それに加えて、XGen用のシーン(XGenのディスクリプションとそれが設定されたモデルで構成されたシーン)をリファレンスする。このXGen用のモデルをジオメトリキャッシュとブレンドシェイプしてXGenをアニメーションに追従させている。

ジオメトリキャッシュで読み込んだメッシュ(VELOCIRAPTOR_body_geoShape
ジオメトリキャッシュで読み込んだメッシュ(VELOCIRAPTOR_body_geoShape)
XGenがアタッチされたメッシュ(VELOCIRAPTOR_body_XGenGeoShape)
XGenがアタッチされたメッシュ(VELOCIRAPTOR_body_XGenGeoShape)
VELOCIRAPTOR_body_XGenGeoShapeは、VELOCIRAPTOR_body_geoShapeのblendShapeで動いている
VELOCIRAPTOR_body_XGenGeoShapeは、VELOCIRAPTOR_body_geoShapeのblendShapeで動いている
VELOCIRAPTOR_body_XGenGeoShapeにアタッチされているXGen
VELOCIRAPTOR_body_XGenGeoShapeにアタッチされているXGen

そして、Maya上でレイアウトが行われ、最終レンダリングによって生き生きとした恐竜が表現された。

Maya上でレイアウト
最終レンダリング

前編では主に恐竜の質感表現について詳しくお聞きした。映画ドラえもんの詳しいワークフローに関しては、後編のShotgun活用記事をご覧いただきたい。

株式会社MORIE

株式会社MORIE
2016年設立。CM、アニメ、TV、映画など、あらゆるジャンルのCG映像制作をディレクションからプロデュースまで手掛ける。代表の森江康太氏は本作でCGアニメーション スーパーバイザーを務めた。

高畠 和哉 氏
ワークフロー全般の開発を担当。そして、MayaのXGenを用いた羽毛表現も担当。普段からアート面とテクニカル面の両方をこなす。

伊藤 浩之 氏
Alembicキャッシュを用いたワークフローやShotgun周りのPythonツール開発などパイプライン構築を手掛ける。開発だけではなくジェネラリストとしてアートワークも担当。

製品購入に関するお問い合わせ
オートデスク メディア&エンターテインメント 製品のご購入に関してご連絡を希望される場合は、こちらからお問い合わせください。