Search Unity

『The Heretic』のメイキング:デジタルヒューマンキャラクター「Gawain」

, 6月 10, 2020

Gawain は、Veselin Efremov が脚本と監督を務め、Unity で制作されたリアルタイムショートフィルム『The Heretic』のメインキャラクターです。この記事では、このキャラクターの制作について説明し、制作のさまざまな側面についても触れていきます。

キャスティングと制作

まず Gawain 役の俳優を選ぶため、キャスティング会社と相談するところからスタートしました。Gawain 役を演じた俳優の Jake Fairbrother 氏にとって、デジタルキャラクターを演じるのは初めての経験でした。彼は普段、ロンドンで舞台俳優として仕事をしている人物です。

収録は何度かに分けて行われました。4DMax でのボディスキャンから取り掛かり、合わせて顔の 3D スキャン、そしてロンドン郊外にある Infinite Realities のスタジオで 4D パフォーマンスの最初の収録を行いました。続いて、Sofia のモーションキャプチャースタジオでボディパフォーマンスのキャプチャーを行い、その後映像全体の時間を伸ばせることが分かったため、Infinite Realities に戻り、追加の 4D 収録を行いました。音声はロンドンの SideUK のスタジオで収録しました。

コンセプトアート

このプロジェクトは、Georgi Simeonov による初期のコンセプトの検討から始まりました。彼は、監督の Veselin Efremov との最初の議論に基づいて様々なスタイルを試しましたが、例えばブリーフケースのような、物語に不可欠な要素はほとんどすべてのバージョンに存在していました。

第 2 段階では、最初の検討から得られたアイデアのいくつかを発展させ、Georgi と Veselin がそれまでのスケッチから上手く使えそうなものがどれであるかを議論して、より絞り込みをかけていきました。ここで注目すべきは、Gawain の衣装のデザインに中世の騎士の主題がわずかに取り入れられていることです。

これは Gawain のコンセプトスケッチの最終バージョンです。進めていくうちに変わった点もありますが、できるだけオリジナルのデザインを維持するよう努めました。

頭部

最終バージョンの Gawain を Unity 上で表示した画面のスクリーンショット。

PacoInfinite Realities から、最初のスキャンとクリーンアップ済みの顔のニュートラルなポーズを受け取った後、アニメーションディレクターの Krasimir Nechevski とミーティングを行い、衣装やアニメーションの作業に移る前にクリアにしなければならない技術的な詳細についていくつか確認しました。顔の UV レイアウトや、さまざまなテクスチャのセット、そしてそれらをどのように分割するか、また、頭部とボディの境界線をどこにするかといった事柄です。監督の Veselin は、俳優の演技の 4D キャプチャーについて、彼が計画していたクローズアップの状態に置いたときの首とその周辺をできるだけよく見たいと最初から明言していたので、最後の 1 つが特に重要でした。

また、テクスチャセットごとに解像度が異なるため、その振り分けには注意を払う必要がありました。例えば、胴体や脚は、注意深く見られるということがほぼないので、顔に比べてはるかに解像度を低く抑えられているといった事情で解像度に差が生じます。しかし、念のためにその部分のデータも持っておくことを選択しました。こうしたことがすべてが決定した後、スキャンしたデータを新しいモデルに転送して微調整し、制作を進めつついくつかの調整を行いました。

眼球

眼球については、私たちが求めるものを完成させるまでに、数多くの洗練作業と微調整を行いました。監督の Vess が、リアリティのある目にするためにどこを改良することが出来るかをチェックし、創造性あふれる指示や方向づけを示してくれました。

眼球の制作に用いた技術は、Lasse Pedersen が Nicolas Brancaccio の助けを借りて製作しました。目は角膜、虹彩、強膜に単一のメッシュを使用し、シェーダーは Unity の内部で直接目に関連する多くの特徴を制御しました。また、眼球とまぶたの間の法線のスムージングを制御するために、まぶたの周りのメッシュを使用して、よりソフトなトランジションを実現しました。このメッシュはティアラインとしても機能しています。

法線をぼかし、目の周りの濡れた感じを出すために使用したメッシュ。

これは私たちがシェーダーで制御を行なった部分の例です。この例では、ベイク済みテクスチャと組み合わせた個別のシャドウメッシュを使用する代わりに、眼球の AO をシェーダーで制御しています。

歯について、Lasse Pedersen が口の中の歯のシャドウイングを制御するオプションを追加。クローズアップでのシェーディング表現に大きく寄与した。

 

歯のスキャンは行なっていなかったため、俳優本人へ問い合わせた情報に基づき、手元でモデルとテクスチャを作成。

Gawain に命を吹き込むために使用されたテクノロジースタック、シェーダー、そしてこのブログ記事で言及されているすべてのツールは、先日リリースされた Digital Human パッケージに含まれています。Gawain の技術的な側面についてもっと詳しく知りたい方には、このブログシリーズを今後もチェックすることをおすすめします。現在、スキンのアタッチメントシステム、シェーダー、その他の技術的な詳細について解説する記事の執筆を進めているところです。

Marmoset Toolbag 3 で仕上げたアセットを Unity に取り込む直前に取得したスクリーンショット。テクスチャ作成工程において、さまざまなライティング条件でマテリアルをテストする効率のよい手段として用いた。

キャラクターに使用した UV レイアウト。4K テクスチャで可能な限りのディテールを実現することを目指し、腕をふるった部分。

ここからは、アニメーションディレクターの Krasimir Nechevski が、Gawain のフェイシャルパフォーマンスの背景にあるプロセスについて詳しく説明します。

フェイシャルパフォーマンス

Krasimir:デジタルヒューマンのパイプラインを作ることは『The Heretic』制作における主要な目標の 1 つでしたし、またチームにとっても大きな成果でした。これまではロボットや悪夢に出てくるようなクリーチャーを作って逃げていた部分があったのですが、今回はそれに挑戦することにしたのです。もちろん、課題はたくさんありました。皮膚、髪の毛、歯、目のシェーディングがそれぞれが異なる難しい問題を抱えていることもありますが、デジタルの世界に人間を写し取ろうとしたときに最も難しいことは、顔面の動きを繊細に再現することだと私は考えています。これはよく知られている問題で、これを上手く解決できなければ、画面で見たときに奇妙な感じがする、いわゆる「不気味の谷」現象が起きてしまいます。

キャラクターの顔をアニメーション化するには、ブレンドシェイプリグ、4D(ボリューメトリックビデオ)、機械学習、シミュレーションなど、さまざまな方法がありますが、そのすべてに長所と短所があります。ここでは、私たちが選んだ、ちょっと王道からは外れた方法を時系列に沿って説明します。要約すると、私たちは 4D を直接使用し、リグの細かいシワを表現するマップだけを追加することにした、ということになります。

最近では、2D 映像を処理する機械学習のアプローチによって説得力のある処理結果が出力され、大きな成果を挙げていることや、3D でフェイシャルパフォーマンスを合成することで、信じられないほど素晴らしい結果を出した例が出てきていることは注目に値します。このことから,将来的には機械学習がフェイシャルパフォーマンスに関する問題を解決すると考えてもよいでしょう。しかし、機械学習において重要なのはデータ、それも大量のデータです。クリーンな 4D のサンプルデータの取得は必須で、そのため 4D を完全に機械学習によって合成されたフェイシャルパフォーマンスを実現するためのマイルストーンと捉えることができます。


まず、このコンセプトを証明する必要があったので、もし失敗してもそれなしで動画を完成させられるという前提で、顔のアニメーションのごく短いセグメントを作ることにしました。私たちは、4D キャプチャシステムを開発していて、素晴らしい結果を挙げているベンダーである
Infinite Realities で最初のキャプチャ作業を行いました。


当時としては最高クラスの結果が出たとはいえ、4D を使うにはいくつかの課題があります。まず、フォトグラメトリを使用しているため、品質に制限があるという不完全さがあります。問題となった点の多くは、髪の毛がかかったり、あるいは視界の問題があったりで、皮膚の表面が隠れてしまうことから起きていました。一定量の細かなノイズがあり、反射のある面でも多くの不具合が発生しました。また、頭部を安定させる必要がありましたし、フレーム間のメッシュの時間的な一貫性もありませんでした。

生のメッシュ

4D キャプチャのテクスチャ

上の図からは、生のデータと、間引かれたデータの様子や、ボリューメトリックビデオの各フレームが特有のランダムな三角形で構成されている様子が見て取れます。

幸いなことに、Russian3DScanner が開発している Wrap3D というソフトウェアがこの問題の解決に使えました。このツールは通常、ブレンドシェイプベースのリグのコヒーレントメッシュを作成するために使用されます。私たちが初期のリサーチをしていた時期のほとんどにおいて、Wrap3D を使って自分たちでデータをクリーニングしようとしました。アクターの顔にある小さなドットのセットをマーカーとして利用して、すべてのフレームで同じメッシュをラップし、最終的にすべてのフレーム間で一貫性を持たせることができます。最初のフレームをラップすることから始めて、テクスチャに表示されているマーカーの助けを借りて、最初のフレームを 2 番目のフレームにラップすることができ、それ以降のフレームについても同様にラップしていくことができます。

手動でマーカーを配置すると、かなり誤差が起きるので、マーカーだけでは十分ではありません。それを修正するために、Wrap3D には、オプティカルフローを利用し、またテクスチャの分析から連続したフレーム間のマッチをピクセルパーフェクトにしてくれる機能があります。各フレームのテクスチャを投影した後、結果は、同じトポロジーを持つメッシュのストリームとなります。この処理の後、残ったノイズなどの不完全な部分を処理したり、損傷した部分をきれいなメッシュから移植して置き換えたりする必要がありました。4D 処理に携わったリードプログラマーの Lasse Pedersen は、Unity 内でデータをインポートして処理するためのツールセットを開発しました。

得られた結果は素晴らしいものでしたが、一連の処理とノイズ除去によって表面がやや滑らかになり、毛穴などのディテールもなくなって、微細なディテールが乗っていない状態になってしまいました。ここで私たちは、アニメーション化された微細なディテールを追加することで、よりレベルの高い結果が得られると考えました。これを実現するために、SnappersTech が開発した FACS ベースのリグを使用しました。このリグは私たちの 4D データと同じトポロジーを持っていました。Lasse は、リグのシワのマップを正確に有効化するソルバーを開発し、毛穴まで見えるレベルのディテールを再現しました。以下に示すのは、私たちのリサーチの後期段階で得られた結果の例です。


その後、メッシュのクリーンアップはすべて DCC ツールを使って行われましたが、Lasse が開発したツールのポテンシャルは大きく、他にも使い道がありました。これについて詳しく知りたい方向けに、Lasse がその仕事のすべてを詳しく説明したブログ記事を現在執筆中ですので、楽しみにお待ちください。また、このツールは、先日リリースした Digital Human パッケージにも含まれています。

また幸運なことに、プロジェクトの最初の部分の締め切りの少し前に、あるカンファレンスで Wrap3D のメンバーと偶然出会い、コラボレーションすることに同意してくれました。このコラボレーションは大成功で、最初のテスト用にクリーニングされた 4D データを非常に速く、素晴らしい品質で納品してくれました。


最終的な結果を見た後、私たちはこれまで以上に、現在取り組んでいるものにはさらに探求する価値があるという自信を持ちました。まだ完璧には程遠いですが、不気味さは感じませんでした。テストが完了し、私たちのパイプラインの実証が済んだ後、プロジェクトの第 2 段階においては、4D 処理をパートナーである Infinite Realities と Russian3DScanner に完全に委託しつつ、フェイシャルパフォーマンスを伴うクローズアップショットをさらに多く追加することにしました。また、両社はツールや機材の改良を続け、さらに良い結果をもたらしてくれました。


シワのマップを追加して私たちが求める最終的な結果を得るためには、非常に高品質なフェイシャルリグが必要でした。私たちは、カメラから離れた場所でのフェイシャルパフォーマンスにこれを使用することを計画していました。

FACS ベースのリグは、フェイシャルパフォーマンスを解決するための主流となっているアプローチです。これは、1978 年に Paul Ekman によって開発された、いわゆる FACS(Facial Action Coding System)に着想を得たもので、感情の身体的表現を体系的に分類するための一般的な基準であり、心理学者やアニメーターにも有用であることが実証されています。FACS をベースにしたリグは、顔の筋肉の各部に大まかに対応する AU(アクションユニット)ごとに、何百もの極端なポーズのブレンドシェイプを足し合わせます。多くの場合、これらのシェイプのいくつかを足し合わせると不正確な結果となり、修正ブレンドシェイプや中間ブレンドシェイプと呼ばれるものを使って修正することになります。その結果、非常に複雑なシステムとなり、通常は HMC(ヘッドマウントカメラ)で俳優のパフォーマンスを撮影し、どのブレンドシェイプを有効にする必要があるかを解決することで制御されます。

Maya のビューポートに表示されたフェイシャルリグ

Christian Kardach は、眼球をアニメーション化するために、コンピュータービジョンを使用して Maya のレンダーから虹彩を追跡するツールを開発しました。


この他に言及しておくべき 4D の課題としては、フェイシャルパフォーマンスとボディパフォーマンスの組み合わせがあります。高品質なフェイシャルパフォーマンスをキャプチャするためのシステムは非常に大きく、使える空間が狭くなりがちです。俳優は頭の可動域が非常に限られた状態で、座ったまま演技をしなければなりません。後日、モーションキャプチャーを撮影する際には、できるだけ体にフィットした納得のいく動きを作らなければなりませんでした。私たちが必要とするような高い忠実度の 4D データをヘッドマウントで収録する方法があればベストなのですが、そのような技術はまだ利用可能な形にはなっていません。

ボディ

制作中の Gawain の全身のプレビュースクリーンショット

Paco:Marvelous Designer で Gawain の衣装を作る際には、俳優のボディスキャンをベースにしました。作業しやすいよう(特に Gawain が持っていた多くのアニメーションを使ってジャケットをシミュレートするとき)に、ボディのプロキシバージョンを準備しました。あとは、腰にあるバッグやシャツの全体的なシルエットのように、ジャケットが相互作用する主要なシェイプを用意しておけばよくなりました。

ボディリグとアニメーション

Krasimir:Gawain のボディリグは、いくつかのレイヤーを重ねて構成されています。アニメーションとモーションキャプチャーのクリーンアップには、Motionbuilder を主に使用しました。リグのベースには、Motionbuilder と Maya の両方に対応するスケルトンがあります。

Maya バージョンのリグにはデフォーミングリグレイヤーが追加されており、ツイストや扇形のジョイント、膝の二重関節の設定などの詳細が追加されていました。Snappers リグは、Maya シーンで参照され、メインファイルに影響を与えることなく安全にイテレーションを行うことができました。


『The Heretic』の第 1 パートでは、Sofia 社内のスタジオで俳優のモーションキャプチャーを行いました。第 2 パートでは、モーションキャプチャーベンダーの TakeOne の助けを借りました。

ジャケット

Paco:Gawain の衣装は、靴を除いてほとんどすべて Marvelous Designer を使用して作りました。ジャケット以外は、Marvelous Designer の中でハイポリゴンメッシュのためのベースを作り、それを調整してテクスチャを貼ってローポリゴンアセットとして、それをキャラクターに合わせてスキン化するという伝統的なパイプラインで作られています。

最初は Caronte を使ってリアルタイムでジャケットをシミュレートしようとしましたが、何度やってもしっくりこなくて、監督が最初に望んでいたものがそのまま得られることはありませんでした。私は Marvelous Designer でジャケットのシミュレーションをしつつ、テスト的にアセット作りを始めましたが、この時点で Vess はこれまで Caronte で行ってきた作業を破棄するという厳しい決断を下さなければならない状況にありました。Marvelous Designer から直接得られる出力と比べたときに、クオリティの上でのトレードオフがあまりにも大きかったのです。


これが Marvelous Designer で作ったジャケットのソーイングパターンの最終バージョンです。これは、ローポリゴンでのシミュレーションに使用した最終的な解像度のメッシュです。これを三角分割したメッシュとして 3ds max にエクスポートし、カスタム UV レイアウトを行い、Substance Painter でテクスチャを描画しました。

この時点で、カスタム UV を使用したテクスチャ付きモデルと Marvelous Designer 上のオリジナルモデルの両方を三角分割したメッシュで作成し、頂点同士をマッチングさせました。Marvelous Designer 上のオリジナルのテクスチャなしバージョンを様々なシミュレーションに使用し、3ds Max でスキンラップを使用して、エクスポートしたシミュレーションを使用して、その前に作成したテクスチャ付きカスタムメッシュを駆動しました。

比較的安全で破壊的ではないワークフローのように思えたので、このアプローチを採用しました。そうすることで、調整を行いつつ一貫性のある結果が得られるという、比較的高い自由度を得ることができました。

ジャケットのトポロジーには、Marvelous Designer で作成した三角分割済みのトポロジーを使用しました。そうすることで、ジャケットが現実空間にあった場合に想定される形とまったく同じように変形するようにしたのです。

最終版のテクスチャ付きモデルのシミュレーションのプレビュー

これは Gawain の簡略化されたシミュレーションプロキシを使って、Marvelous Designer で行なったジャケットの取り外しの最初のイテレーションです。この段階ではまだいくつかの小さな問題がありましたが、概念実証としては十分でした。この後の進め方については Krasimir と何度も議論し、Krasimir が自分のジャケットを何度も脱いで検討し、シミュレーションに使うアニメーションの内容を固めていきました。

 


衣装に関するごく初期のイテレーションでは、特にジャケットの部分で多くの変更がありました。このバージョンでは Caronte を使ってシミュレーションしており、少し膨らんでいて、シワや変形が事前にベイクされていません。シミュレーションの結果から自然にシワや変形が現れることを目指したためです。また、ジャケットの襟も大きく変更しました。最終的には膨らみが少ないものに変更となりましたが、この変更はすべてのショットの仕上がりをより良いものにしてくれました。

特にクローズアップショットでは、不必要なディテールが邪魔をしてしまうと、俳優の演技から浮いてしまう可能性があるので、Veselin にとってはシャツのネックラインをより開いたデザインにすることが重要でした。上のショットは Georgi のデザインを基づいて私が作成した最初のイテレーションです。このときはシャツの襟元のデザインはあまり典型的ではないものにしてみましたが、カメラアングルの低いショットなどでは問題になることもあり、文脈の中で見てから調整を行いました。

襟元のライン以外のデザインはほぼそのままで、縁の新しいシルエットに合わせてデザインのバランスを少し調整した程度です。

シャツの上に追加の装着品があるのも同じような話ですが、それを使ったショットをどんどん見ていくうちに、Vess はこの場合も「少ない方がいい」と気づきました。動画の最後のいくつかのショットでは Gawain がジャケットを脱ぐので、すっきりした見た目にしたほうが見栄えが良くなると判断したのです。

動画の最後にあるそれらのショットでは、見やすく顔に視線を誘導できるようなすっきりしたデザインであることが非常に重要でした。また、一番最後に白いゴーレムの中心で赤いシャツを着ている状態になるのは、Vess が最初から強く望んでいたビジュアルですね。

Paco:パンツとレッグポーチは、後から何度か手を加えていますが、全体的には初期の設定に近いものになっています。

パンツの膝パッドもいくつか修正を加えましたが、Georgi の考えていたコンセプトは、中世の騎士の鎧にどこか似たものでした。左腕の肘パッドやジャケットの肩周りのデザインなどの要素と同じく、何かを暗示するようなものにしたかったのです。

最初はジャケットの襟に毛皮を使用していませんでしたが、後に監督の Vess との話し合いで、ジャケットのこの部分のディテールを細かくすることで、顔が見えるクローズアップの際の視覚的な忠実度を高めることができるのではないかと提案されました。

私は、Xgen と Maya を使用して毛皮のカードを散りばめて、テクスチャアトラスにマッピングする前に、ちょっとしたグルーミングをして毛皮が塊になっている部分や、長さのばらつきを追加しました。最後に、毛皮の地肌をもう少し整え、また毛皮のカードが多すぎてユニークな UV を持つことができなかったために発生するテクスチャの繰り返しを抑えるために、AO とカラーオフセットとして作用する頂点ペイントを追加しました。

その後、Lasse のツールを使って、顔の毛やまつげと同じように、毛皮を襟に取り付けました。

ワイヤーがない状態の最終版の籠手のプレビュー

Gawain の左腕の籠手のテクスチャ付きモデルを作りました。拳に沿った下の部分は直接見ることができるようになっていますが、上の部分は土台となっていて、技術リードの Robert Cupisz が Boston のために作成していたものと同じタイプのアニメーションワイヤーで覆われています。

Vess がこのデバイスについて考えていたアイデアは、Gawain がデバイスを見なくても触覚的なフィードバックが得られるというもので、映画の冒頭のショットの 1 つでそれは見られます。これは Boston が Gawain とコミュニケーションを取る手段となっています。

Unity 上の最終版動画におけるワイヤーが出た状態の籠手の例。

 

Substance Painter のスクリーンショット。キャラクターのテクスチャの描画はこのソフト上で行なわれた。

モデルは 2K 解像度で別々のテクスチャセットに分割され、最終版では、主要なオブジェクトの一部で使うものは 4K でエクスポートされ、残りは 2K のままエクスポートされました。テクスチャはすべて Substance Painter のジェネレーターとツールを使って作成しました。

ブリーフケース

Paco:Gawain のブリーフケースは、Georgi Simeonov が描いたコンセプトのブロックアウトが初出で、そこから私が引き継いでモデルを洗練し、Substance Painter でテクスチャをつけました。

テクスチャを施したブリーフケースのスクリーンショット。Georgi Simeonov によるコンセプト

このブリーフケースの興味深い特徴の 1 つは、私たちが Gawain を初めて見た時にそれと分かる、自己収納式のストラップです。また、側面の温度表示に加えて、ケースに冷却機能があることを示唆する小さなファンが付いています。

温度表示についての興味深い話として、温度表示の色は Georgi のオリジナルデザインにあったように最初は赤にしており、また制作のほとんど全期間を通じて赤のままだったのですが、ある日 Vess が最後のショットの 1 つで、Gawain がブリーフケースを落とすところの作業をしていたときに、彼はそれが爆発する爆弾を連想させるようなものだと気付いたのです。ケースのデザインとしてそのような意図はまったく無かったのですが、これはよい気付きでした。同時に、デザインの多くの要素は冷却に関連していて、通気口やファンのようなものがあるのだから、冷たいはず。そこで彼はより冷たい感じのするシアン色の温度表示にして、また表示している温度も、絶対零度に限りなく近い、より極端で興味を引くような温度にすることを提案したのです。

ブリーフケースのベルトストラップは、最初は少し赤みがかった普通の不透明なゴム製のものとしてデザインしました。しかし、Vess が仕上げとライティングの作業を始めたときに、Lit シェーダの透明度機能を使った実験をしてみたところ、意外なほど見栄えが良く、そこで透明なシリコンタイプのマテリアルを使うことに決まったのです。Vess は、透明度の粗さやマテリアルの色合いを制御するテクスチャも作ってくれました。このテクスチャを使うことで、ベルトに適度に馴染んでくたびれた感じが出て、あまりに人工的できれい過ぎる見た目になることを防ぎました。

コイン

Gawain がポータルを開くために使用するコインについては、Vess は中世のリアルなデザインをベースにした要素、キャラクターの過去の冒険の背景にある深い物語を示唆する要素を取り込み、かつアーティファクトとして所持するにふさわしいデザインとすることを求めました。

完成版の動画から、ポータルを開こうとする Gawain のスクリーンショット。

さらに詳しく知りたい方へ

『The Heretic』での作業は、とても勉強になる経験でした。制作中はこれまで遭遇したことのないような課題に数多く取り組むことができ、次の制作ではもっと上手い方法で対処することが出来ると思っています。また、この作品に関わった人たちと共に仕事ができたことも貴重な経験となりました。関係者の皆さんに感謝いたします。

ここに書かれている情報が、読者の皆様の仕事に役立つことを願っています。その他のブログ記事やウェビナーについては、『The Heretic』のページをご覧ください。

Digital Human パッケージについてご質問がある場合は、次回の Unite Now ライブセッション「Meet the Devs: Deep Dive into The Heretic assets」にぜひご登録ください。日本時間では 6 月 18 日午前 1 時(6 月 17 日 25 時)からの開催となります。

 

7 replies on “『The Heretic』のメイキング:デジタルヒューマンキャラクター「Gawain」”

Thanks for sharing insights from the development process. Absolutely marvelous work. Huge congrats to the demo team!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です