« 金平糖。 | トップページ | 喋るXSI様。 »

2008年10月 3日 (金)

海。

海面らしきものを作ってみたんですがね。


XSI Ocean using ICE deformation from junki the junkie on Vimeo.
(Vimeo のサイト上で見ればフルスクリーンやダウンロードもできます)

いやー難しいですね。やはり(狙ってないとは言え)リアルじゃないし、あるスタイルにまとめきってもいないし、何かヘン、という感じがしますがまあ最初ということで。 なんでも時間かけないと無理だなあ。

氷をおべんきょしていくうちに、海面・水面というのは氷デフォーメーションのもっとも基本的でわかりやすい使い方かなあ、と思ってね。しくみはごくごく単純で、これまでよくやってた RenderTree 上でフラクタル模様を重ねて Displacement にぶっ込むという方法を、そのまんま氷 Tree でやったというだけのことです。 

恥ずかしいが昔のものも晒しておこう。↓これはたしか 2002年、XSI のたぶん ver2.02 で作った海。


XSI Ocean 2002 from junki the junkie on Vimeo.

まさに上記の方法で作ったやつ。フラクタルを大小4種類くらい重ねたんじゃなかったかな。波の大きな動きはエンベロープだったと思う。しぶきパーティクルも手動で足してある。 ううむ、古い。そしてひどい。 恥ずかしい Orz

↓これはまあ、もうちょっとマシか・・・。


Floating lantern scene made with XSI from junki the junkie on Vimeo.

これもまったく同じ方法で作ったんだったと思います。。



↓そして今回のICE で作った氷ツリーはこれ。  まさにそのまんまです。

Sunset4_icetree

氷でやるとビューポート上で様子を確認しながら作業できるので、非常にありがたいです。Grid のモデル解像度もいつでも変えられるしね。本当は氷パーティクルでしぶきも足したかったんだけど、ひとまずここまでにしておいた。 波の盛り上がったピークだけ検出してそこからパーティクルを発生させるってできますかね。誰か教えてください。



氷で海面と言えば、なにやらこんなコンパウンドが出ています。
Gersnter Wave Compound
http://www.xsi-blog.com/0001-purchase


Gerstner Waves 101 from pboucher on Vimeo.



Gerstner Waves 102 from pboucher on Vimeo.

お、これは売り物なんですね。もしかして世界初の売り物 ICE コンパウンド? $40(US)はちょっと高いか。でもすごく良さそうだなあ。

もっと複雑なサンプルを見せてくれるとありがたいんですがね。ちゃんと海面っぽい感じになるまで調整していく過程を見たい。でもきっと、今回やったフツーな Turbulize とこれを組み合わせれば、かなり行けそうな予感。

三角波っていうんですか、とんがった波ができるのがとても良い。俺の海面にはこれが決定的に欠けているからなあ。 波のピークに向かって最初はゆるやか → 最後は急激に駆け上がるという傾きをフラクタル模様の中で表現できれば今回の方法でも三角波が作れると思うんだけど、まあそこまで本格的に海をやるならこのコンパウンドみたいなのを買った方がいいでしょうね。 RealFlow まで行くと高いしな。


おや? 同じアルゴリズムらしきものを使ってる人が他にも居た。
http://community.softimage.com/showthread.php?t=2554

Gerstner Wave って言ってるから同じ原理なんでしょうね。試しに使ってみたら、シンプルな波のゆらゆらにはなるけど、これをどう組み合わせて海面っぽくしていけばいいのかまだよくわからない。解説してくんないかな・・・。





一方、氷以外で実際に形状をデフォーメーションさせる方法としては、このプラグインがお手軽かと思いました。
XSI Perlin Noise Deform
http://www.motionblur.it/

なにかとお世話になっている、イタリアの Michele Sandroni さんが作ったやつですね。
それを使って海面らしきものを作ってみたのが、これ↓


Disaster : XSI ocean made with Perlin Noise Defrom plugin from junki the junkie on Vimeo.

Perlin Noise を発生させて頂点を変形させています。考え方は全く同じで、波の大きさ違いの複数の Perlin Noise Deform オペレータをスタックに積むだけです。ただしこの場合、前の結果に次の結果を加算していくと思うので、複数の混ぜ方は氷ツリーで言うところの Add のみ、ということになると思います。 ノイズの模様アニメーションもできるし、模様のオフセット(シフト)もできるし、特定の範囲以外の値をクリップすることもできます。速度の面ではマルチスレッドな氷にかなわないでしょうが、この使いやすさ、パラメータの分かりやすさ、スヴァらしいです。 ランダムにしたい、でも Deform > Randomize じゃただのデタラメなランダムになっちまう、ちょっとは自然界の法則らしきものを取り入れて「傾向のある」ランダムにしたい。 そんなときに使うとよろしいかと思います。 地形などを生成するのにも使えます。 ううむ、いつもありがとう Michele さん。ビールおごります。



前から気になっていたのですが、こんなのもありますね。
http://www.kai-wolter.com/resources/xsi/ocean-in-xsi

Kai Wolterさんという人が作ったプラグインです。 どこの国の人だろう? ページを見ると、すごい TD / プログラマだということがわかります。 で、このプラグインのビデオを見ると、ううむ、すげー良さそう。いい感じの三角波もできているし、形状を反映してウェイトマップを自動で生成してくれるそうで、RenderTree の中でも使えるし、パーティクルの Emission にも使えるし。

ただ、ページの最後に書いてありますが、近いうちに一般公開する予定は無いそうで、代わりに ICE ノードで再現する方法を調べているそうです。やっぱり氷になれば速度の面でも有利ですからねえ。でも Kaiさん、このままでもいいですよ、氷じゃなくていいから是非使わせてください。






古きよき方法、つまり RenderTreeでやるのであれば、いくつかチュートリアルもあります。俺も昔、この辺を見て作ったような気がします。

基本はこれか。完成品のデキはアレですが、画像付きで丁寧に解説してあるのでしくみや考え方を理解するには良いと思います。

http://www.garryrunke.com/tutorials/Water-Tutorial.html


オンライン上の NetView にあるやつ。
http://www.softimage.com/xsinet/default.asp?pg=http://www.softimage.com/xsinet/L04_body/content/render/default.htm


これもまさに同じ。
http://www.highend3d.com/xsi/downloads/shaders/697.html

う・・・このシーン、開こうとすると落ちる・・・。 ロード中のログを見るとなんと XSI ver1.0 で作られているようで、たしかにファイルの日付も 2000年になっている・・・。 おそらく今どきの XSI ではもう開けないのでしょう。でも zip を解凍して出てくるファイルの中に RenderTree のスクリーンショットが入っているので、それを見ればコンセプトはわかるでしょう。 でかいフラクタルと小さいフラクタルをいっぱい用意して混ぜてるだけです。


自分ではやったことないんだけど、Lumeシェーダにも Lume Ocean Surface というのがありますね。
http://www.rowu-media.nl/content/web/tutorials/Lume/Lume_Portal.html
http://www.xsibase.com/forum/index.php?board=6;action=display;threadid=21113

Lume も、いつか試そうと思っていて未だに手が付かず・・・ Orz



そういえば昔、Psunami for XSI ってのもありましたね。どうなったんだろう。 AfterFX の Psunami で連番作って XSI でマッピングというパターンも昔はよくやったものでした。




.

|

« 金平糖。 | トップページ | 喋るXSI様。 »

コメント

http://www.xsibase.com/forum/index.php?board=12;action=display;threadid=25754
2年ほど前のスレッドですがBA Fractalを使ったテクニックが載っており
ムービーとscnが生きてるので参考になるかと。
それにしても海は要求されるものが多くて困ります。
ICEがマルチコア対応で速度的には改善されてますがワタシの頭の処理能力が追いつけません・・
>そういえば昔、Psunami for XSI ってのもありましたね。
懐かしい!眠っているPsunamiのサンプルシーン掘り起こしたら2002年で時が止まってます。

投稿: BirdCage | 2008年10月 7日 (火) 13時30分

Birdcage さん、どうもどうも。
リンクありがとございます。なにやら当時読んだ覚えがある気がするんですが、ブックマークはされてませんでした。いいスレッドです。保存しますた。

うん、まさにこの RenderTreeですな。上の灯篭流しのシーンなどはまさにまっっったく同じ方法で作ったと記憶しています。BA_Fractal4D を使って。  大きな波のシーンは、しくみは全く同じだけど BAではなく XSI 標準の Fractal を使ったような記憶が・・・。

でもこの人は Displacement に BA_Frac 1個だけでやってますね。1個でもけっこうそれっぽくなるんだなあ。



>それにしても海は要求されるものが多くて困ります。

「なんとなく海作って」という時ならまあなんとかなるけど、特定の見え方、特定の芝居が必要になるとすげー難しいですよねえ。。。 氷で精進しましょう。 Birdcage さまの海はどこかで見れませんか?


>懐かしい!眠っているPsunamiのサンプルシーン掘り起こしたら2002年で時が止まってます。

ずいぶん貴重なものをお持ちですね・・・w  Phoenix Tools でしたっけ? SI|3D の頃に MetaMesh とかのプラグイン作ってたのも Phoenix だったかなあ。忘れちゃったなあ。当時はけっこう使ったんだけどなあ。
その頃のデータは CD-ROM に焼いて持っているのもありますが、今は読み出せるかすらあやしいな・・・。

SI|3D の、ええと確かイマジカ? リンクス?から出していたシェーダ群は、名前なんだっけー
レンダーなんちゃら・・・・ いや、なんちゃらレンダー、違ったかな・・・・。 SI3D標準ではできない「すき間」を突いたシェーダ群だったような・・・。 異方性反射ができたり、ライトとの絡みの関係とかで色んな便利なことができたんだったっけなあ。違ったっけ。

と昔ツールを懐かしんでみる。

投稿: junki | 2008年10月 7日 (火) 15時04分

>Birdcage さまの海はどこかで見れませんか?
ビデオを掘り起こせばありそうですが・・ちょっと探してみます。

あと独逸のこの記事もICE使用でかなり参考になります。
記事中ほどのOweiさんのScnです。
http://xsiforum.de/thread.php?threadid=5499&page=3

>SI|3D の、ええと確かイマジカ? リンクス?から出していたシェーダ群は、名前なんだっけー
イマジカだとSpeedRenderくらいしか思い浮かばないっす、違うかなー。
http://www.edharriss.com/shaders/imagica/imagica.htm

投稿: BirdCage | 2008年10月 7日 (火) 17時00分

>ビデオを掘り起こせばありそうですが・・ちょっと探してみます。

超見たいです。是非発掘してください。



>あと独逸のこの記事もICE使用でかなり参考になります。

超参考になりました! マジでありがとうございます。 独逸語は読めないけど画像と Scene ファイルでわかりました。Birdcage さん、独逸フォーラムも巡回してるんすか。

ってことでさっそくまた海をいじくってます。なるほどなあ、Fcurve でやればいいのか。うむ、ちゃんと波がとんがってくれた。 でもピークをとんがらせるとポリゴンがバキバキしますねえ。三角形分割してみようかな。

波のピークのみのマスクを取り出すやり方も、まさにこれを真似してなんとかやれそうです。上に置いたダミーグリッドとの距離を見て近いところほどウェイトマップの値を上げている。なるほどなあ。  しかし微妙なグラデーションにするのが難しいのと、グリッドとの距離が近くなる(波が高くなる)のは必ずしも波が鋭角になったときだけではなく、大波が来てベース全体が盛り上がった時にも近くなるわけで、白波発生システムとしては不完全かもしれません。 ダミーグリッドにも同じ値の大波デフォーメーションを与えて「逃がしてやる」ことによって大波による白波発生を抑制するってのも試してみようと思います。 あと、Curvature と Tension も使えそうな気がします。
http://community.softimage.com/downloads.php?do=cat&id=20


>イマジカだとSpeedRenderくらいしか思い浮かばないっす、違うかなー。

それだ! 超すっきりしました。
ああなつかしい SpeedRender。直訳すると「レンダーを急かす」ですね(「速いレンダー」ではない)。 でもレンダリングスピードには何も関係なかったような・・・・。

投稿: junki | 2008年10月 8日 (水) 00時39分

解決に向けて前進できているようで何よりですー
独逸の技術力は世界一ィィィ、oweiさんに感謝。

>独逸フォーラムも巡回してるんすか。

一般的なXSIフォーラムはユーザ登録してごそごそ漁ってますが大抵は
Baseの記事引っ張ってきて感想述べているくらいなのでさらっと見程度で、
独逸フォーラムはBaseやメーリングリストでも目立った人がいるのでちょこちょこと。
正直アラビアフォーラムとか何書いてあるかまったくわからないですが
スレッドの伸び具合をみてイケてる情報か判断してます。

>レンダリングスピードには何も関係なかったような・・・・。
何も知らずにダウンロードした時にはイマジカがとうとうレンダラー作ったのか!
と勘違いしてました。試しに使ってたらXSIの1.5が出て移行しちゃったのでそれっきりですね。

投稿: BirdCage | 2008年10月 9日 (木) 17時11分

BirdCage さま、すげー情報収集能力だ。参りましたマジで。

日本にはそういう感じのフォーラム、ないですねえ。



ところで。

あのう、よろしければメーリングリストの入り方を教えて頂けませんでしょうか。
Softimage のページも見たのですが、何だかしくみがよくわかりませんでした。
なにとぞっ。

投稿: junki | 2008年10月10日 (金) 00時42分

http://groups.google.ca/group/xsi_list?hl=en
DiscussionsのView Allでも幸せになれますがゴルァメールすればもっと幸せになれます。

投稿: BirdCage | 2008年10月10日 (金) 01時56分

BirdCageさん、ありがとうございます。ここはメーリングリストのログを読むだけのところなんですね。何か書こうと思ったら、やっぱりこのサイトじゃなくてメーリングリストの方に登録しなければいけないみたいですね。その方法がよくわからなかったんですよ。SI本家のページを見ると、なにやらメールの本文に「登録してくれ」とか「リスト出せ」みたいに専用のコマンドを書いて送るように見えます。今度やってみます。

投稿: junki | 2008年10月10日 (金) 14時36分

コメントを書く



(ウェブ上には掲載しません)




トラックバック


この記事へのトラックバック一覧です: 海。:

« 金平糖。 | トップページ | 喋るXSI様。 »