2010/12/01更新
創世記を支えた研究者たち③:Fedkiw氏による水・煙・炎などの表現

Foster氏やStam氏のCG流体シミュレーション手法を踏まえつつ、水・煙・炎などといった具体的な自然物の表現手法を研究し、効率的に美しい流体の映像を作り出すことを可能にしたのが、スタンフォード大学のRonald Fedkiw(ロナルド・フィデキウ)氏らだった。

たとえば、煙の動きの生成にセミ・ラグランジアン法をそのまま適用すると、時間が経つにつれて煙の渦が消滅してしまうという不都合が起こる。セミ・ラグランジアン法はあくまで近似的な解法であるため、数値的誤差を生みやすく、このような誤差が一定以上溜まると、前述のようにビジュアル的な不都合が出てくるのだ。Fedkiw氏らはこれを解決するために、渦を消滅させない仮想的な力(Velocity Confinement Force)を外力として加えながらナビエ・ストークスの方程式を解くという手法を提案した。

"Visual Simulation of Smoke"
(Ronald Fedkiw, Jos Stam, Henrik Wann Jensen SIGGRAPH2001)
Image courtesy:Henrik Wann Jensen


現実世界の煙の動きは小さなスケールの渦を含んでいるが、Stam氏のセミ・ラグランジアン法をそのまま用いて煙の動きを記述したナビエ・ストークスの方程式を解こうとすると、数値的誤差が積み重なって煙の渦が消滅してしまう。Fedkiw氏らは渦を消滅させない仮想的な力(Velocity Confinement Force)を外力として加えながらナビエ・ストークスの方程式を解く方法を導入することによってこの問題を解決し、細かい渦を含んだリアルな煙の動きを作り出すことを可能にした(上画像)。この論文の手法はまたたく間にVFX分野に取り入れられた。今日の映画プロジェクトなどで用いられている流体シミュレーションによる煙の生成のほとんどが、この論文のアルゴリズムを採用している。

また、流体と空気、あるいは異なった物理的特性をもった流体どうしの間の美しい“境界面”を作り出すことも、美しい流体の映像を作り出すための重要なポイントとなる。水であれば水面、炎であれば青色・オレンジ色・赤色といった異なる色の領域の境目が、この“境界面”にあたる。前述したように、ナビエ・ストークスの方程式はタイムステップごとにボクセル単位で速度ベクトルを算出するため、滑らかな境界面の動きを作り出すためには、タイムステップの幅も、領域全体のボクセルへの分割数も、かなり細かい設定にしなければならない。だが、このような細かい設定にすると方程式を解くための計算時間は著しく増大する。この問題を解決するために導入されたのが、レベルセットとよばれる手法(Level Set Method)だ。この手法では、境界面からの符号付の距離(境界面のどちら側にあるかでプラスまたはマイナスの値をとる)を値とする連続した関数を設定し、この関数を用いて境界面付近の流体の細かい動きを解析する。“レベル”とはまさにこの“距離”のことを意味しており、“レベル・0(ゼロ)”の関数が境界面に相当する。いったんレベル・ゼロの関数がうまく設定されれば、ナビエ・ストークスの方程式を解かずとも、この関数を時間軸に沿ってアップデートしてゆくことによって境界面の動きが作り出せるというのがこの手法の基本的な考え方だ。連続した関数によって表される境界面の形状は滑らかで、なおかつレベル・ゼロの関数をアップデートする計算はナビエ・ストークスの方程式を解く計算よりもはるかに計算負荷が軽いため、より細かいタイムステップで実行することができる。その結果として、境界面の形状も、動きも滑らかにできるというのがこの手法の利点だ。液体表面などを生成するためには、極めて有効な手法といえる。

さらに、異なった物理特性をもった流体同士の境界面の動きをうまく作り出すために、ゴースト・セルとよばれる境界面の両側の流体の特性を併せもった仮想的なボクセルが導入された(Ghost Cell Method)。ゴースト・セルの考え方を用いると、通常の流体シミュレーションでは不可能だった炎の生成時の発火(酸素と気体燃料とが化学反応を起こして炎の核となる部分を生成する)という工程などもシミュレートすることが可能となる。

"Physics-Based Modeling and Animation of Fire"
(Duc Quang Nguyen, Ronald Fedkiw, Henrik Wann Jensen SIGGRAPH2002)
Image courtesy:Henrik Wann Jensen


流体シミュレーションを用いた自然物の表現のなかでも、最も高度なテクニックが必要とされるのが炎だといえる。その炎の生成から消滅までを物理的に正確にシミュレートした手法が2002年にFedikiw氏の研究室から発表され、大きな話題となった(上画像)。ゴースト・セルの考え方をうまく活用し、"発火"の工程を物理的に正確にモデル化したことの意義は特に大きい。ちなみに、この発火の工程をシミュレートした炎の表現を映画VFXにおいて最初に実現したのはDouble Negative社で、同社はBridson氏らが開発した流体シミュレーション・システムSquirtを用いて、映画『ヘルボーイ/ゴールデン・アーミー』(2008)内の炎を担当した。

Fedkiw氏の功績は前述のような理論面だけにとどまらず、研究室で考案された新たな手法の数々を自らの手で映画プロジェクトにおける実用化に結び付けていったところにもある。

世界で最初に流体シミュレーションを導入した映画プロジェクトは『パーフェクト・ストーム』(2000)で、その偉業はVFXを担当したIndustrial Light & Magic(ILM)社に海洋学の分野の研究者であるJohn Anderson(ジョン・アンダーソン)氏が加わることによって成し遂げられた(注)。Anderson氏はその後もILM社が手がけた映画プロジェクトに流体シミュレーションや変形シミュレーションといった物理的に正確なシミュレーション技術を導入していったが、やがてPixar Animation Studios社に移籍した。

(注)ここで用いられた手法は3Dの流体シミュレーションではなく、2Dの流体シミュレーションだった。この手法では、まず流体の底面にあたる領域を正方形のセルに分割し、2Dのナビエ・ストークスの方程式を解いて各セルにおける圧力を算出した。そしてこの圧力を用いて流体の底面に対する“高さ”を算出し、海洋のサーフェースを作り出した。

この移籍を期に、それまでのAnderson氏の役割を引き継ぐかのようにILM社の技術サポートを開始したのがFedkiw氏だった。Foster氏やAnderson氏らと違い、Fedkiw氏の場合はあくまでスタンフォード大学の研究者・教育者としての立場を貫いており、自身が映像プロダクションに加わることは決してなかったようだ。しかし、Fedkiw氏の研究室で生み出された新技術が確実に映画プロジェクトで実用化されるような、太いパイプをILM社との間に築いていった。大学がこのような映像プロダクションとのパイプの構築に成功したのはFedkiw氏の研究室が最初であったといえ、この成功例は、その後数々の研究者に大きな影響を与えることになった。

今回紹介するBridson氏は、Fedkiw氏の研究室の第一期生にあたる。研究室の発足当時から、すでにFedkiw氏はILM社との間のパイプの構築にまっしぐらだったようで、Bridson氏が論文発表した手法も『スター・ウォーズ:エピソード2』(2002)などで用いられたという。Bridson氏は、この時期の体験は同氏の人生における最も貴重な“学習”であったと語っており、現在の同氏の活躍はまさにFedkiw氏の志を受け継いだものといえるのだ。

アカデミックな資質を開花させた環境

前置きが長くなったが、ここからようやく本題であるBridson氏の歩みを追ってゆく。Bridson氏はカナダ出身だ。現在のBridson氏同様に、父親もカナダの大学で科学者として教鞭をとっていた。専門は化学分野であったようだが、理論的なモデルのビジュアライゼーションを目的に、自宅でもよくコンピュータを用いて作業を行っていたようだ。父親のそのような姿を見て、Bridson氏は子供ながらに自分でも同じことをやってみたいと思うようになったそうだ。その願いを叶えるべく、父親は8歳になったばかりのBridson氏に、ニュートン力学のような簡単な物理シミュレーションのプログラムや、3DCGのワイヤフレームモデルをレンダリングするプログラムなどを、BASIC言語を用いて作成する方法を教え込んだ。

それ以来、物理シミュレーションのプログラムを作成し、その結果を8ビットのホーム・コンピュータ上で確認する作業はBridson氏の日課のようになり、より複雑な現象をシミュレートして視覚化することに夢中になっていった。“複雑”といっても、Bridson氏が惹かれたのは顕微鏡や望遠鏡などを用いなければ確認できないような特殊なスケールの現象ではなく、人間がごく普通の日常生活のなかで目にする神秘的な現象だった。“流体”はその代表的なもので、その動きの“豊かさ”や“美しさ”がBridson氏を魅惑したという。

シミュレーションでは“豊かさ”や“美しさ”のような要素を“数値的”に表現しなくてはならない。そのためには、より深い数学的な知識や技が必要となる。それゆえに、Bridson氏が大学でまず選択したのは応用数学やScientific Computing(注)といった領域だった。カナダのウォータールー大学において1999年に修士課程を修了するまでの間、Bridson氏はこれらの領域での学習を通して、シミュレーションの方程式を解くための“数学的な技”を徹底して磨いたといえる。そして、その次の段階として、Bridson氏はアメリカのスタンフォード大学に渡った。

(注)別名Computational Scienceともよばれ、特定の物理現象や自然現象をコンピュータを用いて解析するために有効な数学的手法の考案を目指す。物理シミュレーションでは、エネルギー保存を表す特定の物理方程式を解いてその動きを算出する。これらの物理方程式を効率的に解くための手法の数々は、この分野の研究成果に基づいている。