​【Unite Tokyo 2018】『崩壊3rd』流のアニメ風レンダリング技術を開発者が語る…ブレンドシェイプへのこだわりが自然なキャラクターを作り出す


ユニティ・テクノロジーズ・ジャパンは、5月7日から9日の3日間でゲームエンジン"Unity"に関するカンファレンスイベント「Unite Tokyo 2018」を、東京国際フォーラムにて開催した。その中で、『崩壊3rd』を開発したmiHoYoで、テクニカルディレクターを務めるJack He氏による、プログラマー向けのアニメ風レンダリングについての公演も行われた。

本稿では、その一部を抜粋して紹介する。なお、本講演で使われた資料や、講演動画が「Unite Tokyo 2018」のWebサイト内で後日公開される予定となっている。


▲Jack氏は今回の公演で、様々なアニメ風レンダリングの手法を、実例を見せながら詳細に解説している。キャラクターだけでなく、ライティングの工夫も『崩壊3rd』のようなグラフィック実現には欠かせないようだ。

まず始めにJack氏は、ビジュアルエフェクトなどの特殊効果は、高画質のレンダリングを実現するために重要だと講演内で語る。続いて、ビデオクリップを使ってボリュームライトを使った例も提示した。

今回の例では、プロシージャルベースの、ライトボリュームコントロールを曲線で定義。これは、ランタイム時の調整も簡単にできるとのことだという。フォグエフェクトは、3Dノイズテクスチャを使ってシミュレーションを行なっているそうだ。Jack氏は、クッキーテクスチャを使えば、ボリュームライト、プロジェクションのスタイルも定義可能だと話した。


▲これらは、レーザー光のレンダリングに非常に適しているとJack氏は語る。クッキーテクスチャの使い方次第で、光が明滅するような効果も導入できると付け加えた。

また、サンプルカウントが低くても高い品質を保ための方法として、ブルーム率のディザー、テンポラル、アンチエイリアスを使うという手法を提示した。

次に解説したのは、ダイナミックエンライテンGIと呼ばれるもの。Jack氏は「まずエンライテンを使って、リアルタイムなライトマップのベイキングを行ない、自己発光するマテリアルとボリュームライトを光源として使っている」と順序立てて説明した。



その後は、エディプロプラグインを使って、ビデオのデコーディングをし、エミッションチャンネルのテクスチャとして設定しているという。このとき、エミッションの値を1以上にすることで、非常に明るい光源が作れるとのこと。さらに、エミッションからの間接光をリアルタイムで変化させるために、GIキャッシュもアップデートする必要があると付け加えた。


▲Jack氏いわく、これらと一緒に、ダイナミックフォルムライトも使うことで、素晴らしいライティングが実現可能だという。

次は、キャラクターのダイナミックアンペンドクルジョンの実例を紹介。これには、モディファイドHPAを使っていて、色調などをAOエリアで再度指定可能になっている。こうすることで、トゥーンシェーディングのときもグラフィックが汚くならないとのこと。


▲実際にカスタムAOを使ったのが右側のキャラクター。細かな陰影もつき、キャラクターの表情もより際立っていることが分かる。

また、新しいイメージベースの残像効果として、残像やカメラレンズのスターエフェクトをシミュレーション可能にしている。Jack氏によると、まずはブルームと同様の手法でインプットとして抽出したハイライト領域を使ってマルチシンプルパスでの畳み込みを行ない、その後、カラーシフトの調整をしてから最終的な結果を出しているとのことだ。



続けて、ステージのスクリーンショットを並べたスライドが表示される。Jack氏は「先ほどお話ししたテクニックをすべて適応することで、オフラインレンダリングに近いようなクオリティを達成しています」と述べた。



ここで、ビデオのレンダリングに使われたフィーチャーについても解説。イラストレーションはPBRのマテリアル。アニメスタイルのアンビエントクルージョン、そしてイメージスペースアウトライン、スクリーンスペースのリフレクション、テセレーションといったものが使われている。こういったフィーチャーは、ハイクオリティなアニメのシーンレンダリングにとって重要だとJack氏は強調する。

マテリアルのほとんどがPBRベースで構成されているが、テクスチャセットを調整している箇所もある。色のハーモナイズであったり、ディテールを強調、または削除し、エッジのイメージスペースアウトラインと組み合わせて使うことによって、よりアニメスタイルに近い結果を導き出せるのだという。



 

▲様々なマテリアルが、ダイナミックな光源にどういった反応をするのかを動画で見せたもの。光源の位置の変化に対し、マテリアルの光り方もリアルタイムに変わっていく。

キャラクターの表情にフィーチャーした、CGレンダリングについての解説では、ブレンドシェイプを使った表情の作り方を紹介。目、口、眉毛といったパーツごとに、エクスプレションセットが作られている。カスタムのフェイシャルエクスプレッションプラグインに加えてアニメーションのオートマッピングも行っているため、組み合わせによって豊かな表情を作ることができる。



さらにJack氏は、関節の修正について「Unity上でヒューマノイドのスケルトンを使うと、関節が変形してしまい、人間らしいフォルムが失われてしまう」と言及している。ここでも、ブレンドシェイプを使うことで関節の変形を修正しているとのこと。ブレンドシェイプのモデルからエクスポートし、Unityのスクリプトも使って、ブレンドシェイプを回転の角度によって補完する仕組みになっていると解説を行った。

さらに、関節をよりきれいな形にするため、それぞれの関節にふたつのブレンドシェイプが使われている。90度で曲がった時と、140度曲がった時で、それぞれの関節の変形を修正できるようにすることで、どのような姿勢であっても、違和感ないの関節ができあがる。


▲関節の修正方法としては、ボーンを追加する方がシンプルではあるが、Jack氏は表現方法としてブレンドシェイプの方が優れていると考え、この手法を用いている。

他にも、より複雑なシーンとして流体や破壊のシーンの表現については、"Houdini"のようなDCCのツールから、アニメーションのアセットをインポートできると解説した。アレンビックフォーマットや、バーテックスアニメーションテクスチャが使えるようになる。

特に"Houdini"は、バーテックスアニメーションをEXRのフォーマットを使ってエクスポートする際に便利であるという。そして、リアルタイムなアプリケーションということで、GPUでもより早く動かせるようになるとしている。



講演の最後にJack氏は、これからの方向性についてもコメント。まずは、完全に統一されたスタイルを、全てのマテリアルで使うようにすること。ブラシを使えば、肌やクロスシェーダーのシェーディングを、特定の様式にできるが、やはりユニークかつ統一されたアニメスタイルを、全てのシーンに使えるようにしたいと思っていると語った。

加えて、CGレンダリングにおいては、リテールに富んだモデリングを使っていきたい考えているという。距離に応じてリテールを表現できるような形として、コンピューターシェーダーや、ディスプレースメントマップを使うといった試みを模索しているようだ。

さらに、大きなモデルファイルを、直接インポートできるようなリソースの使い方の実現。アニメスタイルのシェーディングのパイプラインを最適化し、ゲームの制作に使いやすくしていきたいといった展望を語り、本講演を締めくくった。



 
(取材・文 ライター:宮居春馬

 

Unite Tokyo 2018

miHoYo

会社情報

会社名
miHoYo
企業データを見る
ユニティ・テクノロジース・ジャパン

会社情報

会社名
ユニティ・テクノロジース・ジャパン
企業データを見る