« 2008年08月 | メイン | 2008年10月 »
2008年09月28日
R11〜Mac版の問題点 [ CINEMA 4D R11 ]
もう慣れてしまってましたが、R11はMac版特有の問題がいくつかあります。そのうち直るんじゃないかとは思いますが、忘れないように書いとこう。
◆ショートカットが化ける
Cocoa化されたせいか、ショートカットキーを入力したときの挙動が変わってます。従来、テキストが日本語モードだとキー入力をインプットメソッド(ことえり等)が横取りしていたんですが、R11ではそのままCINEMA 4Dが受け取ってしまいます。コマンドマネージャの「ショートカットフィルタ」に入力してみると確認できますが、キーを二回以上続けて打つと、化けたショートカットの中に「BS」つまり「削除」コマンドが混じるので、そのとき選択されているものが削除されたりします。超危険。
日本語モードだけじゃなく、USモードでも「Alt + E」など、欧文の発音記号を重ね打ちするのに使われる組み合わせだと、やはり化けます。
とりあえずの回避方法としては、常に「ことえり」の英字モードを使うと大丈夫です。
◆GIのキャッシュファイルが認識されない(PPCのみ)
GIのイラディアンシュキャッシュモードはキャッシュファイルが保存されますが、PPCのMacではなんでかこれが認識されず、保存されていても読み込まれません。毎回再計算されちゃう。Intel MacやWindowsは問題ないので、G5のみということになりますが。あと、アニメーションのキャッシュファイルはG5でもちゃんと認識されてる。なんでこういう不思議なバグが出来るんだろう?
◆太字が太くない
R11ではレンダリング設定がシーンファイルごとに保存できるようになり、親子階層化して子階層には差分だけ記録してあとは親から継承っていう便利な機能がついたんですが、このとき「子階層で変更した項目」というのが太字で表示されるようになっています。が、Macのフォントは太字になってもWindowsほどはっきり変わりません。日本語フォントに至っては、元々線が多いので太くしようがないらしく、太字になってるのが判別できません。太字じゃなく色が変わるようにならんもんかな(ってここに書いてもしょうがないけど)。
2008年09月19日
MAXONユーザ・ミーティング2008 続報 [ CINEMA 4D R11 ]
定員いっぱいになったようで、参加受付は締め切られてます。
僕のデモはGIとMOCCAの二本立てになります。制作予定のチュートリアルいろいろの中から、目玉をふたつってことですね。
グローバルイルミネーションはチュートリアルの内容もだいたい固まってるんで、デモでもそれをなぞるような感じになります。新GIの操作のわかりやすさとかをメインで。
キャラクタアニメーションのほうは、チュートリアルどうなるかまだ全然未定です。なので、現時点でCINEMA 4DとMOCCAでできることをかいつまんで紹介、みたいなことになると思います。わかりやすいネタから突っ込んだネタまでいろいろ仕込んで行って、お客さんの顔色をうかがいながら進めようかと。もう参加受付終っちゃってるのにアレですが、サンプルムービーをMAXONのサイトにのっけてもらいました。まあ来れない人にもおすそわけってことで。
2008年09月16日
MOCCA〜リアルタイムでスカート揺れ [ CINEMA 4D R11 ]

普通に考えるとスカート等の「揺れもの」にはクロスシミュレーションを使いそうなところですが、実際Clothildeでやってみるとあまり芳しい結果になりません。揺れ具合には「理想的な形」があるもんで、ただ揺れりゃいいってわけじゃないからです。Clothildeだと、パラメータの設定にかかる手間暇やシミュレーションの計算速度を現実的な範囲に収めようとすると、ゴミ袋みたいなのがビラビラ動いてるようなのにしかなんないです。
じゃClohtildeがダメなのかっていうと、そうとも言えません(ダメなとこは確かにいろいろありますが)。他のソフトのクロスシミュレーションのデモ見ても(Syflexとか)、ジャージみたいのとか、シルクの一枚布のドレスとか、折り目がなくて布地の厚みも均一なやつばっかりです。「理想的な形」に追い込むのが難しい=結果オーライになりがち、というのは、ある程度はクロスシミュレーションの原理的な限界なんじゃないかと思います。プギャー
で、ですね。俺はスカートがひらひらしたらプリーツがパカパカ開いたりしてほしいんですよ。全体がふにゃふにゃ曲がるんじゃなく、コシのあるところは形が残ったままであってほしいんですよ。んでもって、モーションつけてる最中いちいちダイナミクス計算ボタン押してじっと待ちたくないんですよ。リアルタイムで動けよ。
って、そんなことできるの? MOCCAで?
できます。 →mp4ムービー
この秘密は今度のユーザーミーティングで!
ってヒキにしようかと思ったけど、来れない人に怒られそうなので原理だけ説明すると。
(1)まずモーフで、スカートの揺れのパターンを作っておきます。前/後/左/右/上/右ねじり/左ねじり、計7つ。
(2)スプリングコンストレイントで、腰から下に「おもり」をぶら下げます。腰を動かすとこれが揺れるわけですね。
(3)揺れてる「おもり」の位置と角度をXPressoでモーフパターンに連結します。右に動いたら右にモーフ、というふうに。
(1)で作ったモーフパターンでは揺れにともなう布地の変形を手作業でモデリングするんで、完全に「理想的な形」にできます。どう動いたとしても、モデリングで規定した範囲から外れることはありません。(2)のスプリングコンストレイントは物理演算になりますが、クロスシミュレーションに比べると桁違いに計算が軽いです。上のムービーだと10FPS前後ですが、実はスカート揺れの計算はオンでもオフでもほとんど変わりません。全身のスキンとリグの計算量に比べれば誤差の範囲でしかないです。(3)のXPresso組むのは結構頭使いましたが、それは僕が数学できないからだと思います。
これだけだと衝突判定がないので、足を上げるとスカートを突き抜けちゃいますが、そこはまた別に「足を上げた状態」をモーフで作って腿のジョイントの角度に連結してやればいいだけなので、揺れよりももっと簡単です。
こんな単純なトリックで、クロスシミュレーションより良い結果を劇的に速く得られるんですねえ。実はコレ、以前からCD Character ToolsでやってたことをまんまMOCCAに移植したものです。スプリングの機能はMOCCAのほうがちょっと良かったです。統合アプリならスプリングダイナミクスやモーフは当然あるはずなんで、他のソフトでも同じことできますね。というか、僕が知らないだけでもう誰かやってると思う。いわゆる車輪の再発明か。俺プギャー
2008年09月11日
スフィリカルデフォーム [ CINEMA 4D R11 ]
MOCCAいじってて気がついたんですが、スキン変形にスフィリカルデフォームがついてました。MIKOTOで有名なアレですか!? 僕が気付いてなかっただけで、R10からずっとついてたみたいです。
スキンのタイプはデフォルトは「線形(Linear)」になってますが、これを「球体(Spherical)」にするとスフィリカルデフォームになります。

ボーン変形を単純に線形補間した場合、関節を曲げたときに内側が潰れたり、バンク軸でひねったときに真ん中が痩せたりといった問題が起きます。特に人間の上腕や前腕なんかはプラスマイナス90度ぐらいひねることができるんで、単純に2つのボーンにウェイトを分けただけでめいっぱいひねると、真ん中がねじ切られそうなぐらい絞られてしまいます。
この「絞り」を避けるために、「ひねる部位のボーンをメッシュが輪切りされてる数だけ分割してウェイトを100%でかける」、「ひねる角度に連動するモーフで補正する」といった工夫も使われていますが、ソフトの機能のほうでより高度な変形メソッドを使って根本的な解決を図ろうとするものもあり、このスフィリカルデフォームもそのひとつです。

で、部位によっては従来通りの線形デフォームのほうが都合が良いこともありますが、そのへんさすがにMAXONはぬかりがなく、ウェイトマップを使うことで頂点ごとに任意の比率で線形デフォームとスフィリカルデフォームをブレンドできるようになっています(両方使うとそのぶん重くなるはずですが)。
他にもいろんなソフトが線形補間以外の手法を導入してるみたいですね。最近「Dual Quaternion」が話題になったので、ソレでググるといろいろ出てきます。塩肉さんの掲示板とか。
ググってたらXSI7の紹介ビデオがあって、その中の「Linear Blend and Dual Quaternion Skinning」っていうやつがLinearとDual Quaternionをウェイトマップでブレンドしてるんですが、これと同じことがMOCCAでもできます(作業のレスポンスはなんだか遅いですが)。

僕はもう3年ぐらいCD Character Toolsを使ってて、MOCCAは食わず嫌いしていたのですが(だって前科あるし)、実際触ってみたらなかなか良い感じです。インターフェイスデザインでは自身アーティストでもあるCactus Danのほうが上手いですが、プログラミングの底力がモロに出るたぐいのツールではMOCCA優位ですね。
2008年09月10日
新GI vs finalRender [ CINEMA 4D R11 /finalRender Stage-2 ]
Advanced Renderの旧GIと新GIを比較したら新GIが勝つに決まってるので、finalRenderと対決させてみました(ちなみにfinalRenderはR10.5のフォルダからR11のフォルダにただコピーしただけで動きましたが、R11でレンダリング設定ウィンドウの仕様が変わってる関係でハングアップする場合もあります)。
R11の新GIは、旧GIに比べるとfR(のAdaptive QMCモード)にかなり近くなったんで、なるべく近い設定になるようパラメータを合わせました。レンダリング所要時間も同じです(2GHz*2で90分)。照明にはどちらもフィジカルスカイを使用。場所:沖ノ鳥島/日時:9月7日15時です。
◆仕上がり画像で比較
これ↓がfinalRender。
これ↓がR11の新GI。
パッと見、フィジカルスカイの違いがいちばん目立ちますね。これでも多少すり合わせしたんですけど、空の色とか違い過ぎ。頑張ればもっと差は縮められると思うんですが、まあ「物理的に正確」なのが売りのフィジカルスカイにも味付けの差はかなりあるというのがわかって、これはこれで面白いかなと。
で、肝心のグローバルイルミネーションのクオリティですが、仕上がりの絵を見る限りでは特に大きな差はないように見えます。所要時間が同じならクオリティも同じぐらい、このシーンに関しては、実用上は互角と考えていいでしょうか。
ちょっと目立つ違いはさるぞうのエプロンのバンプマップの具合ですかね。fRよりも新GIのほうがきれいに陰影がついてます。が、元々fRのバンプの出具合はCINEMA 4D本体と違ってたので、グローバルイルミネーションとは関係ないかも。というか、どちらもケロっと間接照明でバンプ効いてますけど、これって結構すごいことなのでは? グローバルイルミネーションで得られた輝度を単純にスクリーン上に加算してるんじゃなく、サーフェスの法線方向も考慮して反映してるってことになります。
◆グローバルイルミネーション成分のみの画像で比較
このシーンはテクスチャが濃かったり反射が多かったりで、仕上がり画像だとグローバルイルミネーションのクオリティの差がわかりにくいので、グローバルイルミネーション成分だけで比較してみましょうかね。
finalRenderの場合は、Render Elementsで「GI」を出力すると、グローバルイルミネーション成分だけ取り出せます。
Global Optionの「Material Override」でマテリアルを真っ白にしちゃうという方法もありますが、それだとマテリアルによる光の変化が全く反映されないので、ちゃんと検証するならRender Elementsでやったほうがいいです。

で、fRのグローバルイルミネーション成分だけ見るとこうです。なんかあちこちノイズが乗ってて、これを本来の用途であるコンポジットの素材として使うのは無理っぽいですが、まあ検証用には十分ですかね。
R11の新GIのほうは、詳細タブにある「拡散照明のみ」をオンにすると、レンダリングされる絵がグローバルイルミネーション成分だけになります。
ちなみに旧GIだとマルチパスの「グローバルイルミネーション」チャンネルで取り出せたはずですが、新GIだとマルチパスの「グローバルイルミネーション」チャンネルはマテリアルのカラーが乗算されて出てきますね。ハテ?

新GIの拡散照明のみの画像はこれです。マテリアルに拡散反射成分がなくて透過や鏡面反射があると、そっちのほうを表示しますね。まあ透過や反射を通して間接的に見えるのも、結局は別のサーフェスのグローバルイルミネーション成分になるんですけども。
両者を比較すると、むむむ、fRより新GIのほうがきれいじゃね? fRはムラとか影抜けがあるけど、新GIにはないですよ。前述のとおり、フィジカルスカイの具合がかなり違うし、サンプルポイントの配分やスムージングのかかりかたも多少違うんで一概には言えないんですが、とりあえずコレに関しては「同じ時間かけて新GIのほうがきれいだった」ということに。漠然と感じられる「フォトリアル感」みたいなのも、新GIのほうがまさってるように思いますが、どうでしょうかね。こういうのは本当に写真みたいな絵が作れる人がテストしないと説得力ねえですけどもね。
◆新GIのチェック用モード
R11の新GIではさらに、イラディアンスキャッシュの「補間方式」を「なし」にすることで、グローバルイルミネーションのサンプルにスムージングをかけない「素」の状態が見れます。

見た感じPhotoshopの「ステンドグラス」フィルタみたいですが、サンプルポイントごとの輝度をボロノイ図として描いてものると思われます。この状態だと、サンプルポイントの配分の状態、サンプルポイントごとの輝度のばらつきが一目瞭然です。これを評価して、「サンプル精度を上げる/下げる」「サンプル密度を上げる/下げる」「スムージングの範囲を広げる/狭める」といった判断をするわけです。
スムージングがかかった後の状態だとサンプル分布の具合がわかりにくいので、従来はプレパスのレンダリング中じーっと見張ってたりしたんですが、こういう状態で絵が出力されるとじっくり判断できます。静止画に関しては、最終レンダリングよりテストレンダリングのほうが時間かかったりするので、こういうチェック用の便利な機能があると助かりますね。ベンチマーク的な数字には現れない「生産性」です。