Unity を検索

『Sherman』の紹介(パート 1) – リアルタイムファー、HD レンダーパイプライン(HDRP)、Visual Effect Graph をフィーチャーしたアニメーター向け Unity プロジェクト

2019年6月11日 カテゴリ: ゲーム | 14 分 で読めます
シェア

Is this article helpful for you?

Thank you for your feedback!

『Baymax Dreams』を手がけ、エミー賞を受賞したチームが制作した『Sherman』は、Unity による最先端のリアルタイムファー処理が自慢の新作ショートフィルムです。

Unity のイノベーショングループで技術責任者を務める Mike Wuetherick です。3 年前の Unity への入社後間もなく、CG アニメーションや映画向けの Unity の機能向上を専門とするイノベーションチームの立ち上げに携わりました。それ以来、光栄なことに、Neill Blomkamp 監督の Oats Studio(『ADAM』のエピソード 2 & 3)や『Sonder』の Neth Nom 監督、最近では Disney Television Animation との協力によるショートフィルム『Baymax Dreams』など、名だたるクリエイターとコラボレーションする機会を持つことができました。

この記事は『Sherman』に関するブログシリーズのパート 1 です。ここでは、プロジェクトの背景や、ショートフィルムのブロッキング、Look Dev、カメラレイアウトに使われているテクニックを紹介します。パート 2 では、キャラクターアニメーションでの Alembic の使い方、Visual Effect Graph、ファーの実装について詳しく取り上げています。こちらもぜひご覧ください。

目次

1.プロジェクトの背景
2.はじめに - ツール
3.巨人の肩の上に立つ
4.ショートフィルムのブロッキング
5.HDRP を使用した Look Dev
6.Cinemachine を使用したカメラレイアウト

プロジェクトの背景

『Baymax Dreams』プロジェクトの終了後も、リードアニメーターの Bryan Larson をはじめとする、このショートフィルムに命を吹き込んだ主要人物の数人と引き続きショートフィルムを制作する機会がありました。

制作チームには、Mark Droste(『Baymax Dreams』アシスタントディレクター)や Steven Shmuely(『Baymax Dreams』キャラクターモデラー)のほか、John Parsaie(グラフィックスエンジニア)、Jean-Philippe Leroux(ライティングスーパーバイザー)、Adam Myhill(Cinemachineクリエイター兼クリエイティブディレクター)からなる Unity コアチームが参加しました。

プロジェクトで初期段階の構想を主導したのは『Baymax Dreams』のリードアニメーター Bryan Larson で、キャラクターのリギングは Nicolas Langois-Demers が担当しました。幸運なことに、Baymax の完成後も Mark と Steven が専任でチームに参加し、今回のようなプロジェクトで必要になる Unity の機能向上に貢献してくれました。制作面では、Andy Wood(『Baymax Dreams』のラインプロデューサー)が制作を指揮し、Isabelle Riva がチームのリーダーとしての役割を果たすとともにエグゼクティブプロデューサーを務めました。最後に、新機能の(これまでチームが使ったことのなかった)Visual Effect Graph の使用について、Vlad Neykov がすばらしい能力を発揮してくれたことに触れておきたいと思います。

ショートフィルムの核となる部分は、だいたい 8 名からなる非常に小規模なコアチームにより、9 月中旬から 12 月中旬にかけて制作され、その後アニメーションはロックされました。制作の残りの部分は、ファーの R&D に集中的に取り組みました。

『Sherman』の制作をサポートしてくれたすべての Unity 関係者、特に映像制作関連の R&D とEDU チームにも感謝したいと思います。『Sherman』のようなプロジェクトでのコラボレーションは、プラットフォームの可能性を広げてくれます。それも関係者たちの尽力とサポートがなければありえない話でした。

上記の内容を踏まえて、ここで最新のショートフィルム『Sherman』をご紹介できることを光栄に思います。

このコンテンツはサードパーティのプロバイダーによってホストされており、Targeting Cookiesを使用することに同意しない限り動画の視聴が許可されません。これらのプロバイダーの動画の視聴を希望する場合は、Targeting Cookiesのクッキーの設定をオンにしてください。

はじめに - ツール

私たちのチームは『Baymax Dreams』の制作を通じて、絞り込んだ変更点を HDRP に反映させてシャドウフィルタリングや PCSS を改良するなど、Unity の HDRP レンダラーを自在に使いこなせるようになっていました。この新しいプロジェクトでは、レンダラーとツールセットにできる限り磨きをかけたいと考えました。それを主導したのが、グラフィックスエンジニアの John Parsaie でした。彼の活躍により、私たちは多くの領域でさらに高いレベルに到達しました。その中でも、リアルタイムのファーレンダリングに関する貢献は特筆するべきものでした。

『Sherman』の制作では、Unity 2018.3(現在は 2018.4 LTS バージョン)に、Timeline、Cinemachine、Recorder、Alembic、FBX Exporter、Visual Effect Graph、ポストプロセッシング、HDRP などさまざまな Unity パッケージを組み合わせて使用しました。

ショートフィルムの制作過程で開発した多くのツールやユーティリティーのうちいくつかは、Film/TV Toolbox パッケージ の一部として共有されています。Unity のパッケージマネージャーから入手できますので、ぜひご利用ください。その他のツールやユーティリティーは、ツールボックスに移行されるまでの間、「フィルムライブラリ」に格納されています。

巨人の肩の上に立つ

ほとんどのことがそうであるように、チームが『Sherman』で成し遂げたことも、先人の偉業の上に成り立っています。特に注目したいプロジェクトが、マーザ・アニメーションプラネットのショートフィルム『The Gift』です。

2016 年にリリースされた『The Gift』は、Unity Japan に所属する私たちの同僚と共同で制作されました。マーザと Unity Japan のチームがこの制作過程で行った作業により、Alembic のサポートや Unity Recorder(本来のフレームキャプチャーシステムに基づく機能)といった Unity のリアルタイムアニメーション機能の基盤の大部分が構築されただけでなく、Unity にファーシェーダーが(私が知る限り)初めて実装されました。これらはすべて、Sherman プロジェクトの基盤として活かされています。

マーザ・アニメーションプラネットの<a href="https://www.youtube.com/watch?v=XyMQ-cgJrJo">『The Gift』</a>のフレーム。

ショートフィルムのブロッキング

チームメンバーの大半が昨年秋の Unite LA に向けて準備している間、アニメーターの Bryan Larson がこのショートフィルムのコンセプトのブロッキングに着手しました。Blue Sky 時代の Bryan の作品には馴染みがあるかもしれません。Bryan は『アイス・エイジ』のスクラットを筆頭に、さまざまな人気キャラクターのアニメーションを担当していました。Steven Shmuely が作ったキャラクタースカルプトのラフを使って、Bryan は自分が思い描いたストーリーの骨子を描き出したアニメーションのブロッキングパスの 1 本目をあっという間に作成しました。

アニメーションパスのラフを受け取った Mark Droste はそのアニメーションを Unity に取り込み、Unity のプロシージャルカメラシステムである Cinemachine を使ってあっという間に最初のカメラパスをブロッキングし、一日ほどでチームに見せるための最初のアニマティックのラフを完成させました。

『Sherman』のアニマティックの短いクリップ。アーティストはラフのアセットを使うことで時間をかけずにストーリーを洗練することができました

Unity の優れたアニメーションツールやカメラツールのおかげで、大まかなアイデアをわずか数日で完成版のアニマティックに仕上げることができました。リアルタイムで時間をかけずにアイデアを反復処理したり試してみたりできるので、とても便利なだけでなく、チームのクリエイティビティを活かして非常に短期間で「ストーリーを見出す」ことができます。

ショートフィルムのアニマティックが完成したら、フィルムに命を吹き込むために何が必要なのか、チームがその全体像を把握できるようになります。

HDRP を使用した Look Dev

『Baymax Dreams』から引き続き、『Sherman』にも HDRP を使用するということはすんなりと決まりました。チームにとってこのレンダラーは非常に使い慣れたものであり、必要に応じてレンダラーをカスタマイズしたり拡張したりするための、専用のグラフィックスエンジニアリングを行うリソースも揃っていたからです。

ショートフィルムのビジュアルクオリティーのハードルは、あえて高く設定しました。Dreamworks が最近公開したショートフィルム『Bilby』や、Unit Image が手がけた最新のディズニーに見られる CM の見事なファー(毛皮)の表現は、私たちにとって大いに刺激になりました。私たちはそのレベルのファーの表現を、スライダーひとつで品質を調整でき、超高速の作業環境と最高品質のレンダリングの両方を実現できる Unity で実現したいと考えました。

グローバルポストプロセッシングプロファイルを使って全体的なカラーグレーディングを Cinemachine カメラクリッププロフィールと調和させて、ショットごとに露光、DoF、ビネッティングなどのポストコントロールで「レンズのような」エフェクトがかかるようにしました。このシーンやビートごとのカラーグレーディングと、ショットごとのレンズ PPS を組み合わせることにより、レンズベースの外観を維持しつつ、複数のショットをまたいでさまざまなカラーグレーディングの微調整をすばやく実行できるので、とても便利です。

制作全体を通じて、現在のビジュアルを参照画像と並べて比較するために Cinemachine Storyboard 拡張機能を使用しました。Storyboard の SplitView 機能を使用してプロジェクト全体のビジュアルターゲット参照画像を表示し、波形モニターを活用してフレームとビジュアルターゲットの色的な違いを確認しました。このレベルの色の微調整をショットごとにリアルタイムで行えるようになったことは、大きな収穫でした。

波形モニターの SplitView(参照用とエンジン内の波形を左右で比較)。

チームには 3D モデラーが 1 人(Steven Shmuely)しかいなかったので、環境をごくシンプルに保ち、アセットの数が増えすぎないようにする必要があることは認識していました。『Sherman』のキャラクターと小道具はすべて Autodesk Maya でモデル化し(ごく一部については 3ds Max を併用)、Substance Painter で仕上げました。『Book of the Dead』環境パックから借用した一部のアセットを除き、プロジェクトのこの後の段階で Steven がスタイルやカラーパレットに合うように更新しました。

『Sherman』の大部分のアセットでは、標準の HDRP Lit シェーダーを使用しています。極めて高い汎用性を備えたこのシェーダーには、狙いどおりの外観を実現するためのさまざまなオプションが用意されています。

まずキャラクターに着手した Steven は、数バージョンのアライグマやその他の主人公のアセット(散水機や餌入れなど)をあっという間にモデル化しました。

以下のビデオでは、制作過程で作られたこうした主人公のアセットの初期段階の WiP レンダーの一部を示しています。

もう 1 つ私たちが気に入っているアセットが、ガーデンノームです。ノーム用のマテリアルは、下の画像に示すように Substance Painter で描画されました。

Substance Painter で編集中のノーム。

Look Dev 段階では、レビューとサインオフのため、Unity でクイックターンテーブルをレンダリングします。

ノームは標準 HD/Lit シェーダーを使用して、下の画像のように設定します。

HDRP Lit マテリアルを使用したノームのマテリアル設定。

マテリアル用シェーダーグラフ

シーン内には、標準の HD Lit マテリアルに加えて、より高度なマテリアルを必要とする要素が多数ありました。Unity のビジュアルノードベースのマテリアルエディターであるシェーダーグラフは、特殊なマテリアルを作成するために使われます。

ホースを描写するため、Steven は Stacklit シェーダーグラフマスターノードを使用するカスタムシェーダーグラフを構築し、独立した 2 つのスペキュラーローブを作成しました。1 つはホース外面のプラスチックコーティングの滑らかな反射を表現するため、もう 1 つはファイバー繊維製の内部層を表現するためのものです。ホースのシェーダーグラフには、泡、シミュレートされたコースティクス、表面の波(頂点アニメーションを使って表面をデフォームするもの)をアニメーション化するための独立したコントロールも含まれます。これらの公開パラメーターはすべて Timeline 上で個別に指定できるので、ホースが膨らむシーンに動きのある、多層的な外観を作り出すことができます。

ホースとシェーダーグラフのプロパティー。
ホースのシェーダーグラフマテリアルのセクション(拡大表示)。

シェーダーグラフがなければ、Steven はグラフィックスエンジニアの力を借りずにホースの外観を作成してイテレーションを行うことはできなかったでしょう。

目のシェーダー

キャラクターが登場するプロジェクトでの作業で避けて通れない重要な要素が、目のシェーディングとレンダリングです。『Sherman』では、目のシェーダーをいくつかのバリエーションで試してみた結果、カスタムシェーダーとそれに対応する MonoBehaviour スクリプトを組み合わせて目のパララックスの向きを制御する方法に落ち着きました。

目の表現は、見た目よりもはるかに複雑です。多くのリアルタイムプロダクションでは簡略化のため、目の内側のシェルと外側のシェルを表現する単純な二重シェルによるジオメトリを採用していますが、これでは目の画質が大幅に低下することになります。このショートフィルムでは、シャーマン(鳥)とアライグマのどちらについてもクローズアップが多用されるので、より精緻な表現が必要でした。

高品質の目のシェーディングを目指すなら、まずやるべき最も重要なことは、目そのものを実際にオーサリングすることです。目のシェーディングに必要なパララックスエフェクトをシェーダーが正しく適用できるようにするために、まず、次のように目の UV を 0 ~ 1 の範囲にしました。

アライグマの目の UV マップ。

右上にあるのは裏側から見た眼球です。メインのセグメントは UV 空間の (0.5, 0.5) を中心とする、正面から見た目です。このように UV で眼球を設定しておくと、以下に示すように、シェーダーで UV を変更してパララックスエフェクトを生み出すことができます。

もう 1 つ重要なポイントは、目のボーンの向きもパララックスエフェクトの計算に使われていることです。これがどうして重要なのかと言えば、カメラのビュー方向の比較対象となる、参照用のフレームが手に入るからです。目の屈折は、パララックスエフェクトをどの程度適用するかを示す 2 つのベクトル(目の方向とカメラのビュー方向)の関数になります。

John が目のシェーディングのために追加した最後のビジュアルディテールは、目のアンビエントオクルージョンでした。そのために、まぶたのレイマーチングと、適用する AO 量を Steven が制御できるようにするためのパラメーターの公開を行いました。

上記の最終的な結果は、MonoBehaviour の「アイコントローラー」スクリプトで外部から変更できる状態にされました。このスクリプトを使って、チームはシーン内でショットごとに目のプロパティーのオーサリングとアニメーション化を行い、最終的な表現を実現するために必要に応じて虹彩のディテールを完全に制御できるようになりました。

『Sherman』の目のシェーディング。

最終的に得られた表現は、『Sherman』プロジェクト全体で利用できるほど満足のゆくものでした。また、シェーダーやコントローラーは、皆さまがそれぞれ自作のプロジェクトで利用できるように、スタンドアロンのパッケージとしてパッケージ化する予定です。

Cinemachine を使用したカメラレイアウト

Mark Droste は、Cinemachine を使って『Sherman』のすべてのカメラをレイアウトしました。また、FBX Exporter(パッケージマネージャーでも入手可能)を使用してカメラパスを Unity から Maya にエクスポートして、アニメーターがアニメーション化できるようにしました。

当初は、Bryan ができるだけ自由にアニメーションに命を吹き込めるように、このショートフィルムはかなりゆるく撮影されていました。おかげで、アニメーションがブロッキングから最終版へ進むのに合わせて、Mark はカメラのショットと動きも微調整することができました。

Bryan がすでにキャラクターを基本的なステージングポジションに配置していたので、Mark は Cinemachine を使って Unity で直接カメラの大まかな位置を決めることができました。ほとんどのショットでアライグマをプロシージャルに追跡し、単一の Timeline で複数の Cinemachine カメラトラックを使用する新しいカメラを試してみるという方法で、Mark はうまく機能するショットや、Maya のような従来型のツールでカメラをアニメーション化するよりもはるかに短い時間で魅力的な合成を生み出せるショットを見極めることができました。

Cinemachine のカメラクリップとアニメーショントラックを組み合わせてカメラのプロパティーをアニメーション化することで、Mark は短時間でショット用のカメラを配置してすばやくイテレーションを行い、最終的な表現を実現することができました。

まとめ

ここまでが『Sherman』に関するブログシリーズの前半部分です。私たちのチームがこのプロジェクトに命を吹き込むまでの過程と、そこで使ったテクニックや裏技が参考になれば嬉しく思います。パート 2 では、キャラクターアニメーションに Alembic を使用する方法や『Sherman』用に作成したファー実装を詳しく説明するほか、Unity を使ってリニアアニメーションを制作するチームを支援するためにイノベーショングループが開発した追加ツールの一部を紹介しています。ぜひご覧ください! 私たちにとって『Sherman』は本当に胸躍る経験でした。皆さんがアニメーションの制作に Unity をどのように活用しているかについても、ぜひお話をお聞かせください。それから最後に 1 つ。Sherman はアライグマではなく、実はかわいいフワフワの鳥なのです。 Unity をアニメーションプロジェクトに活用する方法についてもっと詳しく知りたい方には、Unity の EDU チームがプライベートなオンサイトのトレーニングワークショップを提供します。このワークショップは個々のお客様やチームのニーズに合わせて詳細にカスタマイズできます。どのワークショップも、Unity 認定インストラクターが指導し、Unity のスキルやベストプラクティスが身に付くハンズオンプロジェクトが盛り込まれています。また、こちらから Unity フォーラムに参加して、このブログ記事について議論することもできます。 『Sherman』の詳細(プロジェクト全体へのアクセスを含む)については、映像制作ページをご覧ください。また、皆さんのプロジェクトを成功に導くために Unity とイノベーショングループがどのような支援を提供できるかについては、こちらからお問い合わせください

2019年6月11日 カテゴリ: ゲーム | 14 分 で読めます

Is this article helpful for you?

Thank you for your feedback!