出来上がりの絵

カメラ手前から水の玉が飛んでくる

それを手がキャッチして、水滴が激しく飛びます

水滴と共にボトルがひねりながら登場

ボトルキメ、水面がゆれる。

ミネラルウォーターの仕事が入った時のことです。ビンに入った水を作ることになったのですが、この時に水面の表現が問題になります。

出来上がりの絵を見ていただくと判りますが、手の中からビュンッとボトルが出現する演出なのですが、当然それだけの勢いで出てくるので、中の水もそれなりに動かなければ不自然です。

まじめに考えると、通常はこのような水面というのはアニメーションの内容によってはかなりモデリングの難しいものになります。

そこで、この時に思いついたのが、以下の手法です。

XSIのレンダ-ツリーで出来るようになったテクニックに、透明物体の屈折率をマッピングでコントロールするというものがあります。
Softimageでも他のソフトでも、違う屈折率の質感をマッピングのマスク処理で、切り分けるというのは出来ますが、この場合、そのハーフマスクの部分は屈折率の違う絵がダブっているだけですね。
ですが、XSIのRenderTreeでRefractIndexにマッピングをつなげると、段階的に変化する屈折率を設定することが出来ます。

このテクニックを使って、「あたかも水面があるように見える表現が出来るのではないか。」と思った訳です。

まずは下の絵のような絵をPhotoshopを使って作ります。
それを、AfterEffectsをつかって、波が最初は激しく、徐々に弱まって行く一連の絵を作ります。



これをレンダ-ツリーの中でPhongのRefractionIndexにつなげてやれば良い訳です。

RenderTreeの図


ツリーの一番上にあるのが今回のお話に成っている部分です。

という感じにつながっています。1.33というのは水の屈折率ですね。張っている絵のハーフな部分は表面張力によって曲がっている水面の表現の為についています。
正面からの投射なので、表だけではなく裏側にもマッピングされます。ですので、「正面も裏も屈折している部分」、「どちらか一方が屈折している部分」、 「両方とも屈折していない部分」の3つわかれます。この時のどちらか一方が屈折している部分が、擬似的に「水の表面」に見える事になります。
今回のようにそれが主役では無いけれども、動いていないと不自然・・・という場合にはかなり有効な手法だと思います。

ツリーの他の部分はよくやる手ですが、ボトルの厚みを表現したいために、輪郭部分(2段目)と首の部分(3段目)の2箇所が他の部分よりも厚く、質感の色成分(今回はブルー)が他よりも感じられるようにしたもの。

一番下が、ラベル部分の質感になります。ラベルは紙で出来ているので、まったく違った質感になるため、今回は別Phongでつくり、最終的にラベルのマスクを使って、ミキシングしてボトルのモデルにリンクさせています。



XSIのRenderTreeがなければ今回の表現はかなり難しかったと思います。XSIがあって、よかった・・・・ちなみに、水滴も別レンダリングですが、XSIのParticleにBlobShaderを使って表現しています。

水面部分の拡大ムービー(QT 456Kbyte)


Fake Water Surface
RenderTree:マッピングで水面があるように見せる