イベント
[GTC 2014]職人芸集団のPixar,NVIDIAのGPUとゲームグラフィックス技術でCG制作環境のリアルタイム化を目指す
Pixarといえば,「トイストーリー」に代表されるCGアニメ作品を世に送り出している名門スタジオ。同社がCGの超エキスパートであることは誰もが認めるところだろうが,「PixarはGPUのエキスパートではなかった」と聞けば,驚く人も多いのではないだろうか。
Pixarの前身はLucasfilmのコンピュータ部門
先に「PixarはGPUのエキスパートではなかった」と述べたが,Gelder氏自身は,紛れもなくGPUのエキスパートだ。現在Pixarでは,Gelder氏の部署が中心となって,社内でのGPU活用を推し進めている最中なのである。
そんなGelder氏が始めに語ったのは,Pixarの黎明期の歴史だ。今でこそCGアニメーションで知られる同社だが,創業間もない頃の同社はGPU(※当時の呼び名は異なる)を開発していたのだ。本論とは少し外れた話になるが,Gelder氏の話を書き記してみよう。
時は1979年。「Star Wars」監督で知られるGeorge Lucas氏の映像制作会社Lucasfilmが,ニューヨーク工科大学のコンピュータ専門家らを引き抜いて,社内にコンピュータ開発部門を作った。ポリゴンを滑らかに分割する「サブディビジョンサーフェス」(テッセレーション)のアルゴリズムとして名高いCatmull-Cl
その部署を,1986年にApple創業者の1人であるSteve Jobs氏が買収して設立されたのが,Pixarである。2006年にはThe Walt Disney Company(以下,Disney)に買収されたため,現在はDisney傘下のアニメーションスタジオとして活動している。
ところが,PICは売れ行きを伸ばせなかった。経営が苦しくなったPixarはPICの技術を売却,CGアニメーションスタジオとして経営を立て直していくことになる。
Gelder氏によれば,NVIDIA製GPUとの付き合いは長く,「GeForce 256」(開発コードネーム NV10)からとのこと。その後も「GeForce 3」(同 NV20),「GeForce 6000」(同 NV40),「GeForce 8000」(同 G80)と使い続け,最近ではFermiやKepler世代のGPUを搭載するQuadroシリーズを使っているそうだ。
キャラクターらしさを重視するPixarのアニメーション制作
PixarのCGアニメ映画の制作フローは,大まかに分けると以下のような手順に分かれている。
- 「ストーリーボード」(絵コンテ)の制作
- キャラクターや小道具大道具オブジェクトの「レイアウト」
- 群集シミュレーションによる「群集の設定」
- キャラクターに動きをつける「アニメーション」
- 「ライティング」(オフラインレンダリングではレイトレーシングを使う)
長編アニメ作品であるモンスターズ・ユニバーシティでは,約20万枚のストーリーボードを作成したという |
「レイアウト」とは,キャラクターや小道具,大道具といったオブジェクトを,シーンに配置するプロセスのことだ |
Gelder氏の基調講演で語られたのは,制作フローの「アニメーション」と「ライティング」での話だ。Gelder氏は,2013年に公開された「モンスターズ・ユニバーシティ」の制作を例に,どのようにして作品が制作されたのかを解説した。
Pixarはモーションキャプチャを使わないことで,業界でも有名なスタジオである。Pixar作品で見られる表情豊かなキャラクターの動きは,人間の動きを取り込んだモーションキャプチャではなく,デザイナーによる手付けのアニメーションで実現されているのだ。
Pixarのアニメーター達は,ストーリー進行とアイデアをスケッチ画でまとめたストーリーボードをもとに,手作業でキャラクターに動きを付けていく。
まずは,「キャラクターを動かすときのルール」を入念に設定する。モンスターズシリーズの主役である毛むくじゃらの青いモンスター「サリー」の場合,「尻尾のある獣」「巨漢」という設定なので,「体が重い」ことを意識したアニメーションを付ける。サリーの「大きい頭」「太い腕」は重いので,「姿勢は猫背気味」となり,腕は力が抜けている間もブラブラと重そうに揺れるといった具合だ。
たとえば,ストーリーボードでは「遅刻してきたサリーが偉そうに腕を頭の後ろに組んで,のけぞり気味に椅子に座る」シーンがあったのだが,「体が重い」ルールに沿って,腕を椅子の手すりに載せた「三角形の姿勢」を維持する動きに変更したのだという。
左はストーリーボードに沿って付けた仮のアニメーション。しかし決定稿(右)では,「体が重い」というルールに沿って,腕を降ろしたままの姿勢に変更した |
ちなみにサリーの尻尾は,「いかなるアングルでも足に隠れない」ように,ボディラインからはみ出る配置にこだわったそうだ。なぜかといえば,尻尾が見えないと「着ぐるみを着た人間」のように見えてしまうからだという。動く尻尾を常に見せることで,人間っぽく見えないようにしたわけだ。
また,ストーリーボードになかったアニメーション設定の裏話も披露された。サリーが腕を突き出しながら2回舌打ちしてかっこつけるアクションは,Pixarのあるアニメーターのクセを拝借した内輪ネタなのだそうだ。
こうした遊び心が盛り込まれた演出も,手付けアニメーションで映像を作るPixarならでは,といったところか。
舌を鳴らしてかっこつけるサリー(左)。この動きは,あるスタッフのクセ(右)を真似た内輪ネタだった |
アニメーション制作環境がGPUによってリアルタイム化される
さて,「動きや演技は基本,手付けアニメーションで!」をモットーにするPixarでは,アニメーション制作に自社開発のツール「Presto」を利用している。
Prestoは元々,「Marionette」とか「Menv」(Modeling Environment)と呼ばれていた制作ツールだが,2008年制作の短編アニメ「Presto」の名をとって,命名されたのだという。余談だが,Solid Iris TechnologiesのオフラインCG用レンダリングエンジン「Thea Presto」とは,名前が似ているだけで何の関係もない。
※ 正確には,曲線化を行うときの制御用頂点。
こちらは「サリーの毛」を解説したスライド。右スライドを見ると,4つの頂点で1本の毛が構成されているのが分かる |
最終レンダリング時には毛が生えた状態で描かれるキャラクターでも,かつてのPrestoでは,毛のない状態のままアニメーションを制作しなければならなかった。そのため,「毛の向き」を設定し忘れてしまい,1フレームあたり数時間をかけて最終レンダリングしてから初めて,「毛の向きがおかしい!」と気がつくこともあったという。
また,毛の生えたキャラクターが毛なし状態になると,キャラクターのボリューム感が最終映像とは違って見えてしまうので,微妙な動きのニュアンスがうまく作り込めなかったり,ほかのキャラクター達と並べたときの見映えに違和感があることが分からず,最終レンダリング後にようやく気がつくといった問題が起こることも少なくなかったそうだ。
現在のPrestoには,OpenGLベースで実装されたGPUを活用する「リアルタイム毛髪レンダリング」機能が実装されており,アニメーターは毛の生えたサリーのモデルをリアルタイムに動かしながら,アニメーションを付けられるようになった。
毛の生えたキャラクターモデルを使い,リアルタイムにカメラアングルや演技も付けられるので,アニメーション制作プロセスは大きな効率改善を実現できたと,Gelder氏はその意義を強調した。毛の生えたサリーのモデルを使ったアニメーション設定の様子が披露されたので,ムービーで掲載しておこう。
前掲の毛なしサリー(左)と毛ありサリー(右)を比較してみた。今は毛ありの品質で,リアルタイムにアニメーションを付けられるようになったという |
キャラクターの表情に与えるディテールは,ディスプレースメントマッピングで表現
Pixarでは,すべての3Dモデルを低ポリゴンモデルでモデリングしておき,最終レンダリング時に,滑らかな曲面となるようにポリゴンを分割してからレンダリングするというワークフローが構築されている。
ここで使われるポリゴン分割には,ゲームグラフィックスでも耳にすることの増えたテッセレーションの技術が用いられている。そして,Pixarが過去15年間に制作した全作品で用いられたポリゴン分割技法が,前述したEdwin Catmull氏らが発明したCatmull-Clark法なのだ。
現在のPrestoは,GPUを活用することで,Catmull-Clark法を適用した滑らかな多ポリゴンモデルでの作業が可能になっている。
なお,こうしたPixarの制作手法については,CEDEC 2013でのレポート記事で詳しく解説しているので,そちらも参照してほしい。
Pixar作品は,3Dモデルが極端な低ポリゴンで制作されている(左)。それが最終映像レンダリング時には,1ポリゴンが1ピクセル未満になるまで分割される。「レンダリング時に必要に応じてポリゴン分割で滑らかにするなら,モデルは低ポリゴンでいい」という思想なのだ |
一方,Pixarのアニメーション作品と言えば,キャラクターの豊かな表情アニメーションも魅力のひとつ。体の動きと同様に,表情の変化もフェイシャルモーションキャプチャ技術は使わず,手作業で作り込んでいるという。
Pixarでは,テクスチャに記載した微細な凹凸量をもとに3Dモデルを変形させる「ディスプレースメントマッピング」でキャラクターの表面に与えるディテール表現を実現している。そして最終レンダリング時に「低ポリゴンモデルをテッセレーションによって多ポリゴン化する」作業と合わせて,「ディスプレースメントマッピングでディテールを付加する」作業を行うのである。
なお,ここでいうディテールとは,モンスターズ・ユニバーシティでいうなら,キャラクターのシワやツノなどのことだ。
キャラクターの表情は,顔面の微妙な動きを連続させることで生まれる。だから本来なら,ディテール表現を適用した状態で表情アニメーションを制作しないと,正確な動きは作りにくい。しかし以前のPrestoでは,作業画面にポリゴン分割前の低ポリゴンモデルしか表示できなかったうえ,CPUによるレンダリングだったので,せいぜい10〜15fps程度のフレームレートでしか表示できなかったのだという。
体毛の表現と同じく,テクスチャやディテールまでが適用された状態で,リアルタイム並みのフレームレートでモデルを表示できる環境が,長らく望まれてきたわけだ。
「これを可能にしたのがGPUだった」とGelder氏は力説する。
Gelder氏の部署は,それまでのPrestoがCPUで処理していたテッセレーションとディスプレースメントマッピングを,DirectX 11世代のテッセレーション機能搭載GPUで実現するという改良に取り組んだ。そして,これが絶大な効果を発揮したのだという。
それまでは,低ポリゴンモデルやディテール適用前のモデルで表情アニメーションを付けていたのが,現在では,ほぼ最終レンダリングに近い3Dモデルを作業画面に表示して,直接表情アニメーションを付けられるようになったのだ。
現在のPrestoでは,3Dモデルにテクスチャが貼られているだけでなく,ディスプレースメントマッピングによる微細凹凸を適用した状態で,フェイシャルアニメーションの制作が行えるようになった(左)。右の写真は3Dモデルの目蓋を上に引っ張り上げたところ。ディテール付加されていない状態では,最終映像をアーティストが想像しながら制作しなければならなかったのだから,制作効率が大幅に改善されたのもうなづける |
そしてGelder氏らは,開発した技術を無償のオープンソース化して広く公開することを決意した。これが,2012年にアナウンスされた「OpenSubdiv」プロジェクトだ。これの詳細は,SIGGRAPH 2012でのレポートを参照してほしい。
そのほかに,Gelder氏が挙げたGPU活用によるPrestoの改良点には,「リアルタイムの影生成」がある。あるキャラクターの影が,別のキャラクターの顔にかかって表情が見にくくなったりしないよう,アーティストが動きや位置を調整する作業を,最終レンダリングをせずとも行えるようになったという。
Gelder氏はモンスターズ・ユニバーシティの1シーン「夜の潜入ミッション」を紹介しながら,「最新のPrestoの影生成は,体毛の影までをリアルタイム生成している点に注目してほしい」とアピールしていた。
ライティングパイプラインを「職人芸」から物理ベースへ一新
Pixar作品に限らず,CGにとってライティングは非常に重要だ。「モノの質感」を鑑賞者に伝えるだけでなく,「空間的な広がり」や「モノとモノとの位置関係」といった情報を得るためにも重要である。さらに,ライティングは演出に使うことで,鑑賞者に「希望」「不安」「悦び」「悲しみ」といった感情を呼び起こすこともできるという,映像表現における重要な武器でもある。
Pixar制作の映画「Brave」(邦題 メリダとおそろしの森)の1シーンを使って,演出面におけるライティングの効果を示した写真。左がライティング前で,右がライティング後だ |
ところがPixarでは,このライティングについても,前出のアニメーション制作と同様に,この15年間は職人芸的なアプローチで作品を作り続けていたそうだ。
最近ではゲームグラフィックスにおいても,大域照明や「物理ベースレンダリング」といった技術の研究開発や導入が進みつつある。だが,Pixarが作品制作でこれらの要素を取り入れたのは,やはりモンスターズ・ユニバーシティがほぼ初めてだったと,Nahmias氏は明かした。それまでのPixarでは,基本的に直接光によるライティング手法しか使っていなかったのだ。
使うライティング手法が「直接光のみ」とはいえ,Pixarは職人芸的なアプローチで「疑似大域照明表現」を実現していたという。それは,「直接光を間接光に見えるように配置して表現する」という,ある種の力業によるものだ。
たとえば,狭い部屋に白い光源があるとする。この光を赤い壁にあてると赤い間接光が発生し,この間接光が部屋の中を薄赤く照らすだろう。これをPixarの職人芸では,間接光に見えるよう赤い壁に無数の赤い光源を置いて表現するのだ。さながら「なんちゃって間接光」といったところか。
しかし,それでは白い光源が動的キャラクターに隠されたら,赤い壁からの間接光だけが残って不自然になってしまう。だからそうした状況が生じるたびに,赤い光源のほうを適宜無効化するのである。
ゲームの場合,この手法はまず使えない。プレイヤーが操作する動的キャラクターの動きを,開発時点では正確に予測できないからだ。しかし,Pixarが制作しているのは映像作品なので,このやり方が成り立つのである。
映像作品だからできるといっても,これではあまりにも作業が大変だ。Nahmias氏もそれを認めて,「ライティングアーティストは,シーンごとに数百の光源を手作業でコントロールする必要があって大変だった」と振り返っていた。
余談になるが,この「光源を新たに配置していくことで,間接光を実現する」手法は,Virtual Point Light(VPL)法と呼ばれる。Pixarのように手作業でやるのは大変だが,VPL法を自動で,リアルタイムに配置していく手法がゲームグラフィックス向けに研究されている。
近年のゲームグラフィックスエンジンで採用事例が多いディファードレンダリング(Deferred Rendering)は,動的光源を無制限に置けるのが特徴だ。その特徴が,VPL法のリアルタイム実装におあつらえ向きなのである。
物理ベースレンダリングとは,光の反射や伝搬,屈折といった現象を,現実世界のものと極力矛盾が生じないようにレンダリングする手法だ。根本的なルールは「入射光のエネルギーの総量と出射光のエネルギー総量を等しくすること」。双方向反射率分布関数(Bi
Nahmias氏は,Pixarが物理ベースレンダリングを導入したこと,つまり「これまでのPixar的な流儀」から脱却したことで,大きく変化した要素を解説していった。
棒状の蛍光灯でオブジェクトを照らす場合を考えてみよう。蛍光灯は細長い長方形の光を発して,オブジェクトをその光で照らす。オブジェクトを蛍光灯に近づければ明るく照らされるし,遠ざければ暗くなる。Pixar的な手作業VPL法では,このあたりをかなりアーティストの感覚でやってきたが,これを改めて,物理ベースの計算で実現するようになったというわけだ。
ちなみにこの手法は,次世代のゲームグラフィックスでは地味ながら重要な要素として認識されつつある。たとえば,PlayStation 4の「KILLZONE SHADOW FALL」では,光源のすべてを面光源とするやり方で,この「有限サイズの光源」という概念を導入しているそうだ(関連記事)。また,一部のゲームスタジオでは,実在する照明機器の照射光分布プロファィルを参考に,ライティングを制作しているところもある。
2つめは,手作業VPL法ベースの疑似間接光をやめたことにより,「本当の間接光照明」を実現したこと。これはまあ当然の変化だ。
3つめは,シーンが変化してもライティング環境が変わっても,「一貫性のあるライティング結果が得られる」ようになったこと。
そして4つめは,「ライティングがとてもシンプルにできる」ようになったことだ。なお,3つめと4つめの要素は,「本当の間接光照明」を実現したことで,自動的にもたらされた変化であったとNahmias氏は述べている。
ところでPixarでは,レイトレーシングでレンダリングを行っている。1フレームごとに,長い時間をかけてレンダリングしているのだ。そうした環境に物理ベースレンダリングを導入するとどうなるか。
光源の置き方が楽になり,手動でのVPL法から解放され,間接光照明が自動で得られるのはいいことであろう。しかし,最終的にどんなシーンに仕上がるのか確認できるのが数時間レンダリングした後では,ライティング・アーティストからすれば大変困った状況になる。アニメーションの動き付けと同様に,ライティングもまた,数え切れないほどの調整と確認を繰り返して最終映像を作り上げていくのだから,悠長なことをしていては終わらない。
Pixarにおけるライティング作業とは,光源を置いて位置や向き,強さを変えたり,小道具オブジェクトの素材を調整したりして,シーンを作り込んでいく工程のことをいう。どういう見映えになるかは,そのシーンに存在するもの同士が複雑に関わりあうため,少しでも要素を変更したら,レンダリングを最初からやり直さなければ,正しい映像にはならない。
物理的に正しく,説得力の高い映像が最終的に得られることは大切だが,ライティング・アーティストにとっては「ここのライティングやマテリアルをこう変更したら,シーンに対してどういう影響を与えるのか」を素早くかつ正確に確認できることのほうが,作業効率に直結する以上,死活問題といえよう。
Pixarはその問題にどう対処したのか。「何億のレイ(光線)をシーン内に存在する数万のオブジェクトに飛ばして,物理ベースレンダリングの概念どおり間接光に配慮したレイトレーシングを行い,最終的なレンダリング映像と同じ結果を,リアルタイムに実現することが求められた。そのために我々が選択したのは,NVIDIAのGPUと,NVIDIA製レイトレーシングプラットフォーム『OptiX』だった」とNahmias氏は述べている。
Pixarは,ライティング工程におけるリアルタイムプレビュー用に,The Foundry Visionmongersが開発するライティングツール「KATANA」を用いており,そのため,KATANA用のプレビュー用レイトレーサーを,Pixar側がOptixベースで制作することになったという。
レンダリング開始後は若干ノイジーな表示になるそうだが,時間経過とともに,映像は最終レンダリングと同等の品質に近づいていく。その間にも,視点を変えたり光源の位置を変えたり,マテリアルを変えたりといった操作が可能だ。
ノイジーな状態でも映像の概要はつかめるし,その状態ではかなり高いフレームレートでの表示が可能なので,最初の大ざっぱなライティング作業ならば効率よく行える。
高品位な映像が必要となる細かいライティングの調整でも,数秒待てばほぼ最終クオリティに近い映像が得られるので,ストレスはないという。講演で披露されたデモの様子をムービーで掲載しておこう。どれくらい速いかが分かるはずだ。
最終レンダリングに時間をかけるのは変わらないので,制作途中ではライティングやマテリアルの作り込みと,その確認がスピーディに行えれば十分である。まさに,Pixarにはうってつけのツールといえよう。
Nahmias氏はOptiXの導入について,「このプログレッシブかつリアルタイムなレイトレーシングシステム導入のおかけで,ライティング・アーティスト達は,必要なライティング結果を短時間で得られるようになった。とくに映り込み表現の調整や表面下散乱効果などは,最終レンダリング結果に近いプレビューが得られるので,以前と比較して劇的に作業効率が向上した」と評している。
Pixarはなぜ,OptiXを選択したのだろうか。単に高速なGPUならば他にもあるはずだ。これについてNahmias氏は,「OptiXがCUDAの上で動作しているからだ」と答える。NVIDIAが将来の同社製GPUでもCUDAが動作することを保証しているので,新GPUが登場すればそれに置き換えるだけで,OptiXベースのプレビュー環境を高速化することが可能で,Pixar側はシステムを作り替える必要がない。
GPGPUプラットフォームとしては「OpenCL」があるし,OpenCLベースのレイトレーシングソフトもないことはない。だが,CG業界での採用実績を見れば,「OptiXのほうが上」という現実がある。Pixarが選択するのも納得のいく話だ。
誤解されないように付け加えておくと,PixarはOptiXをライティングやマテリアルの設計プレビューに活用しているだけで,最終的な映像レンダリングには使っていない。最終レンダリングには今でも,「RenderMan」によるCPUベースのレイトレーサーを用いているのだという。
NVIDIAとしては,最終レンダリングにもOptiXを採用してもらえるように努力することが,残された課題と言えるかもしれない。
リアルタイムグラフィックス技術とオフラインレンダリング技術によるシナジーは今後も増えていく
優れたCGアニメーションを生み出し続けるPixarの制作スタイルが,すっかりガラパゴス化していて,職人芸の積み上げで成り立っていたことに驚かされた人もいるだろう。
それが今では,DirectX 11世代GPUのテッセレーションを積極的に活用したり,ゲームグラフィックスでの採用が進みつつある物理ベースレンダリングや大域照明技術を取り入れたりといった具合に,自らの制作スタイルを積極的に改善,改良している状況にある。
これまで,ゲームグラフィックスに代表されるリアルタイムグラフィックスの技術は,「オフラインレンダリングCG技術のお下がり」といった側面があった。しかし,Pixarのように,リアルタイムグラフィックス技術がオフラインレンダリング技術に影響を与えることも起こりつつあるのだ。
今後もリアルタイムグラフィックス技術が進化して,オフラインレンダリング技術との差が縮まっていくと,こうしたシナジー効果の事例はますます増えていくのではないだろうか。
GTC公式Webサイト(英語)
- この記事のURL: