日本でハリウッドVFXを制作! 「経産省アイディアボックス」 結果:  
●まとめエントリはこちら ●FAQ ●お問い合わせは左のメールフォームから

2010年1月11日月曜日

パーティクル・エクスプレッションを作るときの思考手順(2)

エントリ「パーティクル・エクスプレッションを作るときの思考手順」にて、エクスプレッションを作成するときに考えるべき着目点その順序を考えてみましたが、

あとで考えてみると初心者には、これでもしっくり来ない部分がありました。
まるっきりMayaが初めてでパーティクルも始めたばかりの人には理解できない部分がありました。

それは、「(1)パーティクル誕生時と消滅時の状態をどうしたいのかを決める。」の部分ですが、これには、前提となる知識が、もう少し必要な気がしました。


パーティクルのエクスプレッションは何かのアトリビュートを操作するために使われるわけですが、そのアトリビュートを特定するには、自分が何をコントロール使用としているのかを知らなければ特定することも出来ません。


それは表現しようとしている対象をいかにパーティクルシステムで再現するのかという手法に関連があります。

パーティクルは主に、現実の現象を再現するために使われます。
パーティクルシステムは物理の考え方を利用したシステムで、よりリアリティーのある動きと見た目を創り出すことを目的としています。

しかしながら、映像製作の現場で求められるのは
「正確な物理現象の再現」ではなく
「信じられる物理現象の再現」=「リアリティーのある映像」です。
多くの場合、目的は監督が「望む映像を創る」ことです。


実作業では、正確な物理現象に従って再現しても、望む映像が作れるとは限りません。
むしろ、そうでないことのほうが多いです。
タイミングや、スピード、形状が同じでもカメラの動きやアングルによって見た目も変わります。
現実のものを撮影してもそうなることはあり、「現実=望む映像」ではありません。

そのためには、現実の現象を再現する意外に、より望む映像に近づけるための努力が必要なことがわかります。



----------------------------------------
(1)CGでは、正確な手法だけを追究することはない。

正確な物理現象だけを追究することは、
1)生み出される「動き」や「見た目」を直接コントロールすることが複雑で難しくなる。
2)計算時間が膨大になる。現実のスケジュールや機材に見合わない。
という問題が生じます。

いくら機材や人材を沢山、確保できても、まともに組み合っていては一つのショットを完成させることも怪しくなります。

例えば、正確な「雲」の見た目を作ろうとすれば地球シミュレーションのような大規模なシステムが必要になるわけですが、映画などで必要としているのは見た目だけです。
極端な話、2Dの絵でも問題ないわけで、絵であれば色合いや、形も簡単に変更できます。
3Dのシミュレーションはこの両者の間にあるような感じです。

よく大手のプロダクションが複雑で大規模なシステムを開発したことが話題になります。
「より」正確な物理現象を参考にしたことが書かれていたりしますが、これも「程度の違い」だけで、「正確な物理現象を正確に再現すること」を目指しているわけではありません。

「いままでのシステム」では、偽物感があるので「より信じられる物」にするための手段の一つとして「正確な物理現象の考え方」をもう少し取り入れたということです。
システム全体のほんの一部にすぎません。
それ以上に、それらをいかにコントロールしやすくするかに重点が置かれています。


パーティクルではなく、物理シミュレーションのシステムの例ですが、「2012」のシステム開発の話「【倉地紀子のデジタル映像最前線レポート】映画『2012』 CG シミュレーションの新境地(3)」にそれを見ることができます。


----------------------------------------
(2)ごまかし=スプライト

ここでパーティクルシステムでの作業について話を戻します。

たとえばパーティクルを使って、「立ち上る煙」を作りたいとします。




「煙が垂直に立ち昇り、上に行くに従って拡散していく。」
そんな映像を作るとします。


これを科学的に分析すると、煙の拡散は、正確には「ブラウン運動」により起こります。
これに温度による空気の対流が加わり、上に昇っていく事になります。
さらに風などにより別方向の動きが加わり、空気の密度の違いや乱気流による複雑な動き画生じてきます。

パーティクルシステムで「ブラウン運動」を再現することは可能でしょうが、それが自分の望む拡散具合を生み出すにはかなりの計算時間と設定の手間が必要となるでしょう。

したがって、プロダクションでは、通常はそのような作り方はしません。


ある程度の「煙粒子の群れ」を空間から切り出した「固まり」として扱い、その固まりの一つ一つをパーティクルに1粒子として扱い、「見た目」と「動き」を考えるようにします。


「固まり」を小さな箱形として切り出す「ボクセル」の考え方(Mayaでは「Fluid」システム)はより正確ですが、かなりの時間を要します。(参照:流体物理シミュレーションの基本的な流れ


そこでもっと簡単な方法として、Mayaのパーティクルでは、以下の手段が用意されており、実際のプロダクションでもよく使われます。 (Mayaのもとからある機能を使う方法の場合)

ボリュームマテリアル」:particle Cloud
見た目の調整が簡単ですが、リアリティーは今ひとつです。
(参照:weblog_hm2STUDIOパーティクル クラウドを使った煙」)

スプライト」:映像のシーケンス・イメージ、もしくは固定イメージ
実際の煙の映像を使う事ができるので腕次第で、よりリアルな物を作る事ができます。



----------------------------------------
(3)スプライトの利用から生じる弊害

ここではよく使われる「スプライト」を考えてみます。

まず、前回の考え方に従って、パーティクル単体を考えます。
デフォルトの設定では、「透明度」と「サイズ」がすべてのパーティクルにおいて、同じです。

これでは火元から発生した煙とはるか上空の煙の見た目がまったく同じになり、煙で出来た柱か、チューブのように見えます。
フィールドなどを使って苦労して拡散したとしても、綿の固まりが散らばっていくようにしか見えません。

これは「スプライト」という手段を「煙」に使う際に生じる弊害です。


冒頭で述べた、「(1)パーティクル誕生時と消滅時の状態をどうしたいのかを決める。」に関して考えてみます。

パーティクル個々の「見た目」は、再現したいものによって様々な手法ととることができます。

「状態」というのは「動き」であり「見た目」でもあるのですが、「動き」関する物はほぼ同じ手法を用いることができますが、「見た目」はその手法が様々なので、コントロールする手段もそれに応じていろいろな方法が必要となってきます。


他のソフトは知りませんが、Mayaのパーティクルでリアルな物を作ろうとしたら、それに関係する不可欠な知識やテクニック、そしてスクリプティングの技術がなければできることは限定されてしまいます。


----------------------------------------
(4)エクスプレッションの出番

さて「煙」を再現するに当たり、「スプライト」で作られる「見た目」を調整する必要があります。

ここでエクスプレッションの出番になります。

動きはシミュレーションをそのまま使う事はできるかもしれませんが、「見た目」については、よりこまかな調整が必要となります。

エクスプレッションが「スプライト」というアイデアと「リアリティーのある最終映像」の間にあるこのギャップをうめる手段です。

ここで先日のジェームスキャメロンの言葉を思い出します。
「技術は、いくら新しかろうと、ユニークであろうと、それ自体は世の中において何の価値も存在意義も無い。
新しい、ユニークな技術が世の中において価値や存在意義を生み出すのは、該当技術の使い手(価値創造者)が、該当技術のみが醸成できる問題解決とその先にある感動を信じながら有形無形のモノづくりに命を賭けて打ち込んだ時である」」
(参照リンク:「【NO.2832】3D映像がビジネスを変える」)



それをアーティストである自分の役割と考え、自分でなんとかするか、R&Dなどの開発部門の責任と考え、作りやすいツールを作り出してくれるのを待つのかといった違いは出てきますが、何かしなくてはそのままでは、何も生み出されません。
もう一押し必要です。



----------------------------------------
(5)スプライトを利用するときの、エクスプレッションを考える

さて「スプライトを使って煙を作る」場合には、
「(1)パーティクル誕生時と消滅時の状態をどうしたいのかを決める。」
において、パーティクルの粒子の状態で、考えることは


実際の煙との違いを考える必要がある。
目に見えないほどの細かな動きは別として、

まず実際の煙の様子を観察してみると以下の特徴があります。
●発生時に小さく濃い煙
●消滅時には、大きく広がって薄い煙になり見えなくなる。


これを以下の二つを組み合わせることで創り出します。
●個々のスプライトイメージ
●パーティクル特性の調節


単純に考えると、煙の固まりを空間から切り出した物=スプライトイメージなので、発生時にはそのサイズを小さくし、消滅時には大きくすればよいことがわかります。
また透明度も同じく、発生時には濃く、消滅時には透明になれば良いと言うことになります。

ここではじめて、個々のスプライトを操作するためにつかうべきアトリビュートが「サイズ」と「透明度」であることがわかります。

最初に述べたようにまったくの初心者はスプライトというものがどのようにパーティクルシステムに関連してくるのか知りません。
たとえ、スプライトを使うことは知っていてもどんなアトリビュートを調整していいのかもわかりません。
しかしスプライトが使われている理由をしり、自分がコントロール使用としている対象が何かを冷静に見極めればそのアトリビュートを特定するのは簡単です。



----------------------------------------
実際の作業では、もう少し考えるべき事があります。
スプライトイメージは、空間の一部を切り出した物ですが、空間を完全にマス目に区分けした一部ではありません。

使われ方は、個々のスプライトをオーバーラップさせて、全体の煙の形を作り出しています。

そのオーバーラップする部分とオーバーラップしない部分の見え方をどのように整えるかも考える必要があります。

それはパーティクルどうしの拡散や透明度のコントロールだけに止まらず、スプライトイメージがどんなものかによっても異なってきます。

これらを調整することが、個々のアーティストもしくは基本のセットアップを作る開発者の役割となってきます。


----------------------------------------
また「煙」すべてが全て同じ手法で作れるわけではありません。

「たばこの煙」などになるとスプライトの技法は使えません。
それはデティールのスケールが、個々のスプライトよりも細かな領域になり、もっとこまかな粒子の動きを追う必要があるからです。

そしてここまで細かくなると、スプライトのように一部を全体をつくるために使うことはできません。

こうなるとより、物理的現象をより考慮に入れたシステムが必要となります。
MayaではParticleのポイントやストリークを使ってコンプで調整するか、Fluidシステムを使うことになります。

Fluidシステムを使うと、必要とされる知識や技法はまた異なってきます。

これがCGで映像を作る際のやっかいな点でもあり、おもしろいところでもあります。

我々は、そういったただの知識や技術を、調整し、リアリティーのある映像を仕上げているのです。
それは監督やプロデューサーには出来ないことで、彼ら画必要としていることです。
それは飯を食っていける理由でもあるわけです。
 

0 件のコメント:

コメントを投稿