太陽企画ユーザー事例「バーチャルヒューマンの作り方 ~Maya、XGen、Polywink、Arnoldで初めてのチャレンジ~」ウェビナーレポート
- Arnold
- Maya
- おすすめ
- 太陽企画
- 映画・TV
「映像コンテンツを通じて人々に驚きや感動を提供していく。クラフト力を追求して世の中に新たな価値を提供していく」をモットーに映像制作の第一線を走り続ける太陽企画。同社にとって初のバーチャルヒューマンの制作となった「Zoeプロジェクト」は、PolywinkやTexturing XYZ、XGenといった技術を効率的に組み合わせたことで成功した事例だ。本ウェビナー(バーチャルヒューマンの作り方~Maya、XGen、Polywink、Arnoldで初めてのチャレンジ~)では、同社の社内ユニット「+Ring」に所属する尾崎岳志氏(CGデザイナー/CGディレクター)と三浦大輝氏(CGデザイナー)が、ワークフローからキャラクターデザイン、ヘア表現、レンダリング、コンポジットに至るまで、それらツールを効率的に活用する際のポイントを中心に制作を通して得た知見を惜しみなく紹介した。
Text_三村ゆにこ(Twitter:@UNIKO_LITTLE)
なぜバーチャルヒューマンなのか
香港で発売される飲料商品のPVに登場するキャラクターとして誕生したバーチャルヒューマン「Zoe」は、「バーチャルヒューマンで新たな映像表現に挑戦したい」とのクライアントの要望により制作がスタートした。なぜ生身のタレントではなくバーチャルヒューマンなのか。その背景には、NFTなどデジタル作品の著作権を担保する手段の登場や、企業の公認キャラクターとして半永久的に様々なプロモーションに展開できるといった、テクノロジーの進化によって企業が享受できるメリットが存在する。単に斬新でリアルな3DCG表現が求められているだけではなく、法的・経営戦略的な観点から「攻守ともに優れた存在」としてバーチャルヒューマンが位置づけられているというわけだ。
54年にわたり映像制作を手掛けてきた太陽企画にとって初めての挑戦となったバーチャルヒューマン制作。「フォトリアルなキャラクターモデリング」「リアルな質感(ルックデブ)」「リップシンクやフェイシャルアニメーション」「髪の毛の制御」「レンダラの選定」と乗り越えるべき課題は少なくなかった。スピード、クオリティ、斬新さ、話題性、扱いやすさ......、これら全てが求められる昨今の映像制作の現場において、1から全て作り出すという実直さは美談にはなり得るが賢明な手段ではないかもしれない。同社は「経験豊富なモデラーに依頼する」「Textureing XYZやPolywinkをフル活用する」といった手段を採用し、目下の課題をスマートに乗り越えた。その手法について語られたので、いくつかピックアップしてお伝えしていく。
キャラクターデザイン&フェイシャルリグ
フローをざっくりと紹介すると、実在の人物をスキャンしてMayaでモデリングを行い、Texturering XYZを用いて肌の質感を作成。フェイシャルリグはPolywinkのシステムに投げてダウンロードしたデータでそのままアニメーションを付ける。ヘアの制御はXGen(正確に言うとnHairのダイナミクス)でレンダラの描画として使用。最終的にはArnoldRenderでアウトプットしてAfter Effectsでコンポジットという流れとなる。「プラグインやレンダラなど、"数ある選択肢の中から何を選ぶのか" が重要になってきます。いかにバグが少なく、短期間でハイクオリティなものが作れるか。今回はそのパズルが上手くはまったケースだと言えます」と尾崎氏。
キャラクターデザインに関しては、リアリティとデフォルメのちょうど良いバランスを探っていった。「魅力的なキャラクターを作るためには、完全なリアリティを追求するのではなくある程度デフォルメすることも必要です」(尾崎氏)。香港という様々な人種が生活する文化的背景を踏まえつつ、「若者への応援」の意味も込められている本PV。男女問わず魅力を感じてもらえるキャラクターデザインが求められた。ベースモデルにはボーカリストのAnonymouz氏をスキャンしたデータを使用。「(デザインの)ゴールも大切ですが、スタートを決めることも重要だと感じました」と尾崎氏は話しており、実在する人物に調整を加えていくという手法は、リアリティとデフォルメのバランスが探りやすいという利点があったようだ。目の大きさや顎のラインなどに調整を加える際も、各パーツの美しさだけにフォーカスするのではなく、頭部を構成する骨格や筋肉などを意識した「解剖学に則ったデザイン」となっている。
リアルなスキンを作るために彼らが参考にしたのは、バーチャルヒューマンを専門に取り扱った総合サイト「Texturing XYZ」だ。先ほどのスキャンモデルをベースに、肌の質感や目の形状、産毛やまつげなどの必要な要素を足していく。シワや皮膚の下にある脂肪、血管等の存在が感じられるよう質感を調整していった。ちなみにZoeの年齢は20代後半という設定だ。
多くの人にとってあまりありがたくない「エイジング」を加えることで、よりリアルさが増していく。いわゆる「ゴルゴライン」と呼ばれる目元のシワや凹み、シミやそばかす、毛穴の開き具合などを容赦なく加えていく。これは余談になるが、世の女性が躍起になって抹消しようとするこれら肌トラブルをあまりに忠実に再現しているので、美容に敏感な筆者はこの皮肉に笑うしかなかった。もうやめてあげてと叫びたくなるが、さらに入念にエイジングを加えていく。
「まつげをXGenで作るのかオブジェクトで作るのか」は議論が分かれるところだが、今回はプリミティブを用いてモデリングすることに。マスカラをするわけだし、束になっていても良いだろうという判断だ。「まつげは毛穴から生えているようにしたい」という監督の要望はXGenでは叶えられないという理由もある。
「レンダリングすると顔の印象が違って見える」といったトラブルを回避するためにも、この段階でライティングによる見え方を検証しておくことは重要だ。フェイシャルリグを組み込んだ後ではモデリングの修正ができないため、Polywinkに依頼する前にフィックスしておく必要がある。デザインが完了したらZoeのモデルをPolywinkにアップロードする。データは1週間程度でダウンロード可能で、そのままアニメーションが付けられる状態になっているため大幅に作業工程を省くことができたという。さらにブレンドシェイプをベースにしているため、映像に沿った調整が加えられるようカスタムすることができる。
XGenとnHairによるヘアーダイナミクス
XGenでヘアを作成する方法は2通りある。1つは「ディスクリプション」と呼ばれる昔ながらの手法で、ディスクリプションを作成して任意の場所にヘアを配置&グルーミングを行うというもの。もう1つは「インタラクティブ・グルーミング」と呼ばれる手法で、スカルプトのような要領でヘアをブラシで整えていくという方法だ。今回はモデラーの江原氏の制作手法に従い「ディスクリプション」を採用した。アニメーションはnHairを使用し、XGenプリティブのままガイドカーブをシミュレーションして動かすという方法を採った。ヘアのガイドカーブからnHairのダイナミクスのカーブに変換してシミュレーションし、シミュレーションしたデータをAlembicに掃き出してXGenのシーンデータに読み込むという流れだ。
まず、江原氏から渡されたMayaのモデルデータからXGenのみの「マスターデータ」を作っていく。マスターデータを作る理由は、「モデルデータにPolywinkでリグを組み込んでアニメーションを付ける」→「アニメーションデータのみをfbxに掃き出してインポートする」というフローの基盤とするためだ。マスターデータにリグの情報が入っていなければ上手くインポートすることはできない。
XGenはシーンデータ以外にもキャッシュデータなどを別に格納する構造になっているため、XGenのノードが残ったままインポート&エクスポートを繰り返すと、参照元を見失ったりエラーにつながったりする。江原氏からもらったモデリングデータは書き出さず、XGenデータのみを使ってアニメーションやヘア表現を付けていった。
XGenでは髪の毛1本1本を制御して動かしているわけではなく、ガイドカーブに対して100本あるいは200本といった単位の毛を生やしている。これによりアニメーションが重くならずに済むという利点があるが、ガイドカーブに対してXGenプリミティブが生成されると束感が出てしまうという欠点もある。束感を出さず、かつアニメーションに耐えられるデータ容量が成立するガイドの数を探る必要があった。しかしこれだけガイドがあるとエラーもそれなりに発生する。めり込みやノイズ、クランプのエラー等がないかを入念にチェックすることも重要な工程となる。エラーの原因として多いのは、「完全に同ポジションにあるガイド」として認識されてしまうカーブの存在だ。この場合は、不要なカーブを削除してガイドを1つにすることでエラーが解消される。
レンダリングはAlembicからインポートするのではなく、XGenタブにある設定からキャッシュデータをインポートしていく。今回は「AnimWires」というモディファイアを使ってXGenのプリミティブを制御していったのだが、モディファイア上でアニメーションを制御するため、ガイドカーブをプレビューしつつヘアの様子を確認していくことになる。この作業をリアルタイムで全フレーム確認するとなると非常に重い作業となってしまうため、基本的にはレンダリングしてチェックということに。ちなみに、髪の毛の密度(Density)は730とかなり密度の高い設定となっている。
ライティングとArnoldレンダリング設定
基本的には全てArnoldStandardShaderを使い、髪の毛のみArnoldHairを使用。ライトが斜めに入ってくる夕焼けのカットが多かったため、サブサーフェス・スキャタリングの設定が重要なポイントだった。コンポジットする際に、鼻の穴、口角、白目、ヘア、まつ毛等々、マスクを細かく切っていった。XGenのプリミティブでヘアを作成しているため、サーフェスシェーダをアサインできないからだ。
マスクを切る際のID分けはArnoldのMaterial IDを使用。各マテリアルに対してIDを設け、マテリアルごとに細かく分けてレンダリングできるようにしておく。この際、ライトのAOVを設定しておくと便利だ。これにより、例えば赤や青の光が点滅するなどライトにアニメーションが付いている場合にも、それぞれの色情報ごとに書き出しておけばコンポジットで色の切り替えが可能となる。
フェイシャルとヘアが完成したらArnoldでレンダリングを行い、AfterEffectsで最終調整を行う。ライトはRICOH THETAを使ってスタジオで360度撮影を行い、それを基にHDRを作っていった。スタジオで撮影したライトを太陽光に合わせるなど、細かい調整を加えて完成となる。
セッションの最後に尾崎氏は「これまでの既存技術に新たな技術を組み合わせることで本プロジェクトを成功させることができました」とプロジェクトをふり返った。3DCGの技術はもちろん、センサー技術やスキャン技術なども驚くべきスピードで技術革新が進んでいる。次々と登場する新たなテクノロジーを組み合わせ、それらを柔軟に採り入れることで新たな表現が可能になっていく。これからどのような表現が誕生するのか。3DCGの可能性が存分に感じられるセッションであった。
*上記価格は年間契約の場合の1ヶ月あたりのオートデスク希望小売価格(税込)です。