トレンド&テクノロジー / サイエンスCG最前線!
第7回:SimulationとVisualization(後編)
- Maya
- コラム
- 中級者
- 建築・製造・広告
こんにちは。サイアメントの瀬尾です。
前回はSIGGRAPHでの受賞の話をきっかけに、SimulationとVisualizationとの違いや、どちらが偉いのか、というような話をしました。
今回もまた文字だらけになってしまいそうですので、少しでも華やかにさせるために、受賞作品をもう一度貼り付けておきますね!(ちゃっかり宣伝)
※日本語版もあります!
誰がやるの?
前回の記事の最後で私はこう書きました。
----
と言うわけで、SimulationとVisualizationは表裏一体と言いますか、どちらも大切なものなのです。
…で、あるが故にさらなる先入観も生じやすくなるのですが、長くなってきてしまったので続きは次回で!
----
さて、その「先入観」とは何でしょうか。今回はここから始めましょう。
実はヒントは前回の最初のほうで既に書きました。
コメント・感想の例がその先入観を説明してくれます。前回紹介したコメント・感想は、どれも私が講演などで映像を見て頂いたときに直接言われたことばかりなのですが、SIGGRAPHの会場で英語で頂いた感想にも、Simulationに関するもの、Visualizationに関するもの、どちらもありました。
つまり、Simulationをやる人とVisualizationをやる人は同じ人、という先入観です。
実際、同じ人がどちらもやっていることも多々あります。分子シミュレーションを行っている研究者の先生方が、PyMOL や VMD などの分子可視化用のソフトウェアを用いてVisualizationを行ったり、有限要素法を用いた物理シミュレーションを行っている方が ParaView や AVS などの可視化ソフトウェア用いてVisualizationを行ったり。
Simulationを行える先生方が『既存の』可視化ソフトウェアを用いてVisualizationも行う、というパターンです。
「分子データの可視化」とか「有限要素法データの可視化」に強かったり特化しているソフトウェアをうまく使いこなせばそれでVisualizationは十分、ということもあるかと思います。
ちなみに逆パターンはだいぶ辛いです。Visualizationを専門にしている人がSimulationも出来るかと言われると、なかなかそうもいきません。
Simulationはソフトウェアを使いこなすのではなく自分たちである程度フルスクラッチで書き上げる必要があることが多いためです。MayaでもUnityでもUnreal Engineでも物理シミュレーションは可能ですが、学術レベルで使うことは想定されていないはずですし、物理シミュレーションライブラリも、コードを自分たちで書かなければなかなか使い倒すことが出来ません。
私の場合は自分が医師免許を持っているということもあり、今回のUT-Heart可視化映像を見せると、VisualizationだけでなくSimulationの部分にも携わっている、と思われてしまうことが割と多いです。Simulation出来る人がVisualizationも出来て、この映像はその結果だよね、と。私が担当したのはあくまでもVisualizationの部分なのですが。
Visualizationのプロが作った映像やソフトウェアを見て「こ、これは今まで見てきたどんなVisualizationとも全く違うレベルで凄い!どれだけ凄いVisualizationのプロが手がけたのだ??」と、Simulationに関する質問が1つも出なくなるくらいになるかどうかが、Visualization部分で突き抜けることが出来たかどうかの指標になり得るのかもしれません。
但し、ここでいう「凄い」というのは、ただただ派手に見えたり綺麗だったりすることでは全くありません。見た目だけ格好よくしても本質の部分が見えなくなってしまっては意味がありません。
「今までここ見たかったのだけれども、わかりやすい見せ方が全然無くて。でもこの手があったとは!」とか前回も少し例に出しましたが「そうそう、普段医療機器使っているとまさにこんな順番で見えてくるんだよね!」とか「この表示をするのに今までメチャクチャ時間かかっていて調整が難しかったのだけれども、これだったらクリック3回だけで出来ちゃうなんて革命的!」とか、そのようなことが出来てこそ、Simulationのプロだけでは出来ない、SimulationとVisualizationが対等に並んだ相乗効果の結果となります。
どっちが難しいの?
Simulation出来る人はある程度Visualizationも出来ることが多いけれども、Visualization出来る人がSimulationも行うのはなかなか難しい、ということを考えると、Simulationのほうが難しい気がしてきます。
…が、本当にそうでしょうか?
前述のとおり、Visualizationはツールがある程度最初から用意されていることも多く、であるからこそSimulation出来る人がある程度Visualization出来る(ことが割と多い)、という側面もあります。
Visualizationも、本当にフルスクラッチで0から作ろうとすると相当大変です。オブジェクトを360度どの方向からも自由に動かせて、拡大縮小も平行移動もヌルヌル出来るようにするだけでも、UIの実装は大変ですし、立体感を持たせようとするとどうしてもレンダリングが必要になりますが、レンダラー(…とまではいかなくても、ある程度のシェーディング)をフルスクラッチで書くのはなかなかに骨の折れる作業です。Mayaなどで、何気なく頂点選択をしたりポリゴンを動かしたりしていますが、これだってリアルタイムで場合によっては数千万頂点からユーザーがクリックした特定の頂点を選択出来るように誰かが相当頑張ってプログラムを書いているわけで、この裏には涙ぐましい数々のアルゴリズムの工夫があるはずです。
映像を作りたかったらMayaやらHoudiniやらに、リアルタイムにグリグリ動くものを作りたかったらUnityやらUnreal Engineやらにデータを何とか流し込めれば、最低限のものはほぼ勝手にソフトウェア側がやってくれます。Unreal Engineなんて、とりあえず何も考えずにオブジェクト配置しただけで「えー!最初からこんなに綺麗なの???」というレベルのものが出来てしまいますから。そして、普段Simulationのプログラムをバリバリ書いていらっしゃる方であれば、Visualizationに使うソフトウェアのデータ受け渡しの仕様さえ理解できれば、データの流し込みの部分は自分たちでも書けてしまうと思います。
ただ、やはり、その後のマジなVisualizationとでもいえば良いでしょうか。痒いところに手が届く表示方法であったり、圧倒的に使いやすい操作方法だったり、というところまでやろうとすると、プログラミングスキルだけではない部分もとても大事になってきます。
というわけで、難しさの意味がそもそも異なるため、どちらが難しい、ということは一概には言えないはずですが、どちらの分野の専門でもない人が、SimulationまたはVisualizationについての論文や解説を読む場合、Simulationは難しい行列式やら数学の記号やらがぎっしり並んでいるのに対し、Visualization…の中でも、「こんな見せ方をしたらわかりやすくなりました」的なものの場合は、図を見れば「おー、確かにー!」と何となくわかって気になれることが多いため(もちろん、例えばPhysically Based Shadingの高速化手法、みたいなものの場合はがっつり数式の嵐ですが、これはどちらかというとSimulationの部類かなと思います)、Simulationのほうが難しく感じられやすいような気がします。
そしてもう1つの存在
Visualizationには2つの側面がある、と思っています。
これも実は前回既に書いていることなのですが、
1つはSimulation側に対するフィードバック。Simulationを行う人が、Visualization結果を見てSimulation結果を検証したり、改良を加えたりします。
そしてもう1つは、最終的なVisualization結果を用いる側。ちょっとわかりにくいかもしれませんが、例えば今回のUT-Heart可視化映像であれば、映像を見る人、つまり一般の方や患者さんなど。手術シミュレーションのソフトウェアであれば、Simulationを開発している人ではなく、手術計画を立てる側、つまり外科の先生など。こちら側の人たちをUserと呼ぶことにしましょう。
つまり流れとしては、
Simulation→Visualization→User
となります。
もちろん、学術レベルでは、User = Simulationする人、という場合も多いかと思いますが、映像やソフトウェアとして、つまり商品として世の中に出る場合には、UserがSimulationする人ともVisualizationする人とも異なる場合のほうが多いように思います。
Visualizationには、Simulation側やVisualization側自身に向けてのVisualizationと、Userに向けてのVisualizationの2種類があるわけですね。
今回のUT-Heart可視化映像であれば、「そもそも心臓ってどんな形しているの?」「この心臓シミュレーションで何がわかって、何の役に立つの?」というような疑問や興味に応えることを第一の目的にしていますから、Userに向けてのVisualizationが主体になります。
と言いつつ、裏ではSimulationする人、Visualizationを専門にしている人のどちらもが納得し、心臓を扱っている医療関係者も納得して下さるような映像制作をひたすら考えたわけですので、どちら側の人も対象にした映像だったわけです。
私の場合は、Userに向けてのVisualizationが一番の専門になるかと思います。それも一般の人、或いは医療関係者がUserの場合を最も得意としています。
Simulationそのものについては全く分からないことが多いですが、医療関係のものであれば、Simulation結果についてはそれなりに理解出来ると思っています。
Visualizationも0からフルスクラッチでソフトウェアから作り上げることは全く出来ませんが、Simulation内容が医療関係のことであれば、そのSimulation結果について医者や医療関係者、或いは一般の人にとって、どんなVisualizationがあれば喜ぶか、役に立つかをそれなりに理解してVisualizationを行ったり、デザイナーやエンジニアに対してVisualizationについての適切な指示を与えることが出来ると思っています。
UT-Heart映像制作における私の具体的な仕事内容は、第4回、第5回をご覧頂ければざっくりとお分かり頂けるかと思いますが、最終的なUserの視点に立った上でSimulation結果を理解し、そこからどのようなVisualizationが出来るかどうかを考え、場合によってはSimulation側にさらに細かいSimulationをお願いしたり、Visualizationに携わるデザイナーが作業しやすいようなセットアップをしたり、Simulationデータを扱う仕組みをエンジニアに説明した上で構築してもらったりと、全体の指揮を執ることが出来るかどうかが最も重要でした。
まとめ
以上、かなり長くなってしまいましたが、SimulationとVisualizationの違いやそれぞれの役割など、少しでもおわかり頂けましたでしょうか。
ここまで読んで頂いた上で、今回のSIGGRAPHでのBEST VISUALIZATION OR VISUALIZATIONの受賞理由を自分なりに考えてみますと、
医用画像撮影
↓
心臓3DCGモデル作成
↓
極めて高精度のシミュレーション
↓
ビジュアリゼーション
↓
エンタメ要素を取り入れた映像化
という一連の流れを、それぞれの分野の専門家がそれぞれに最大限の能力を発揮し、最初から最後まで繋げることが出来た、それも、世界に類を見ないクオリティで実現出来た、というところが大きかったのではないかな、と思います。
トロフィーだけが”OR”ではなく”AND”になって、”BEST VISUALIZATION AND SIMULATION”になっていたのも、この一連の流れ全体を評価して下さった…のかも?しれません。
今後は映像だけに拘らず、それぞれの分野について、どれも一流ではないけれども全てを繋げることで、特に医療の分野において、真にCGが実際の医療現場で役立つような、そんな世界を作っていければ、と思っております。