background

一年越しのネタ。

061031-1

Aさん隠れ弟属性発動中。なんちて。

去年の時点でアイデアだけはあったけど、Bさんが居なかったんでそのままお蔵入りになってたネタ。それにしてもシミュレーション6回はさすがに時間がかかるなぁ(笑)
カボチャは去年RDNAで配っていたものをShade上で繋ぎ直してブーリアンモデリングで穴を開けた。このブーリアンモデリング、計算精度がもっと向上しないとポリゴンモデラとしては使えたものじゃないように思う。フリーのポリゴン編集ツールがあるからまだなんとか修正して使えるけど。

Tipsに掛かり切りで、最近絵を作ってないなぁ。

とりあえずroseさん宅でチラリとご紹介頂いたM3用ケープ。

061031-2

闇部隊の諸先輩方のご要望にて、烏男のDCを汎用小道具に仕立てたもの。
DCの計算結果をモーフにしこたま仕込むというある種暴力的な作りなので、扱いが難しいというか用途限定されているような気がするので配布まで至ってない。もし使ってやってもいいという奇特な方がいらっしゃいましたらご一報を。
インバネスっぽく見える襟プロップ付き。


T2さんのブログでG2アップデート版が出たとのこと。
James/Koji/G2対応の何か作ろうかな~。



レイトレースシャドウ。

2006年10月29日(Sun)

環境閉塞(AO)の、その前に。
忘れていたわけではないけれど、実は忘れたかったりするレイトレースシャドウ。
何故なら未だよく分からない部分があったりするからで(笑)。

Poserでの名称はレイトレース影だが、そのセンスがやっぱり自分的にアレなので(笑)以降統一してレイトレースシャドウと呼ぶことにする。

レイトレースシャドウはシャドウマップと並んで、影を描画する手法の一つだ。レイトレースシャドウを使用するには、ライトの特性パレットで「レイトレース影」を選択し、さらにレンダリングオプションで「影を投影」と「レイトレーシング」にチェックを入れる。

その原理は以前シャドウマップの回で説明したように、視点からレイ(光線)を飛ばし、レイが物体表面に衝突したところでその地点と光源との間の障害物の有無を調べる。計算はピクセル毎(本当はシェーディングレートによって分割されたマイクロポリゴン毎)に行われるので、シャドウマップより時間はかかるものの、より精密な描画が可能だ。

126-1

レイトレースシャドウの品質がいまいちだと思う時は、パラメータを調節してみよう。

まずはパラメータパレットにある影の精度。これは当然のごとくレイトレースシャドウでは使用しない。なぜならこれはシャドウマップを生成するときの縦横のピクセル数だからである。ちなみにレイトレースシャドウはレンダリング中に計算されるので、レイトレースシャドウに切り替えるとレンダリング開始時の「影の計算中…」というダイアログが表示されなくなる。

次に特性パレットにある影のにじみ半径。これはシャドウマップとは異なりデフォルトでは0になっているが、値を入れるとシャドウマップと同様にソフトシャドウを描画することができる。シャドウマップにおけるソフトシャドウはZ値にぼかしフィルタをかけることで実現するが、レイトレースシャドウの場合は、物体表面から光源が見えるかどうかを調べる時に、その光源の存在する方角に設定しただけの誤差を持たせることで曖昧さを実現する。これによってシャドウマップの均一なぼかしとは異なり、影の発生源との距離によってにじみ具合が変化するような、よりリアルな影を描画できる。

126-2

従って、このにじみ半径の設定単位は角度だと推測される。

影のぼけ方がざらざらしている時に調整するのは、シェーディングレートだ。レイトレースシャドウはマイクロポリゴン毎に影かどうかの判定を行っているので、単純にマイクロポリゴンの分割を小さくしてサンプリング数を増やせば品質は向上する。
(ちょっと怪しい話だが、ピクセルサンプリングではソフトシャドウの品質は向上しない)
ただし、シェーディングレートはレンダリング速度にがっつりと影響するので、PCの能力と相談しながら設定するようにしよう。品質に関わるのは影を受けるオブジェクトのシェーディングレートなので、そのオブジェクトだけ設定を小さくしてみるのもいいだろう。
(詳細は本宅Tips「レンダリング設定について」参照)

影のにじみ半径を0にしている場合でも、影の輪郭にノイズが発生することがある。これを調整するのが「影の偏り」だ。シャドウマップの場合、「影の偏り」は階段状のノイズを抑制するためのZ値抽出時のオブジェクトをオフセットさせるパラメータだった。レイトレースシャドウでは、これは「レイバイアス」というパラメータとなる。
(同一パラメータに全く異なる複数の意味を与えるのはUI上どうかと思うのだが……)

レイバイアスはレイトレースの重要なパラメータの一つで、レイが物体表面に衝突したときに、「そこから一定距離進むまではあらゆる計算を行わない」という距離を設定する。なので、この値を小さくするとよりタイトに影の描画をすることができるのだ。大きくすると障害物を判定する基準位置がオブジェクト表面からズレてしまうため、輪郭が不正確になるだけでなく、シャドウマップと同じように接地しているはずのオブジェクトの影が浮いてしまうことになる。

126-3

だったらレイバイアスはいつも小さく設定すればいいのかというと、そうでもない。
(ちなみにレイバイアスを0にすると地獄絵図が展開される)
オブジェクトによっては、レイバイアスを大きく設定しなければならない状況も存在する。それは「非平面ポリゴン」がある場合だ。

非平面ポリゴンとは文字通り、4つの頂点が同一平面上にないポリゴンのことだ。これが実は3DCG的に、非常に厄介な存在なんである。普段Poserを使っている時にはこの非平面ポリゴンを意識することはあまりないが、それはスムースシェーディングによってなだらかな陰影付けをされているからであって、内部的には非平面ポリゴンは三角ポリゴン2枚に分割され、くっきりと折れ曲がっている。

126-5

これが問題になるのがレイトレースを使用した時だ。レイトレースの機能はそのほとんどが、レイが物体の表面に衝突してから周囲の状況を調べることで実現している。ところが非平面ポリゴンの場合、レイが非平面ポリゴン自身の陰に入ってしまいそこを「障害物あり」だと判断してしまうのだ。

126-5

レイトレース系の機能を使用した時に時々現れる、奇妙な斑点の正体がこれだ。反射ならその部分だけ反射像が異なってしまい、環境閉塞やレイトレースシャドウならそこだけ完全な影として真っ黒に描画してしまうのである。

126-6

というわけで、これを回避する為にはレイバイアスを大きく設定し、レイが非平面ポリゴンの陰の領域を脱出するまで判定を行わないようにしなければならない。設定値自体はその非平面ポリゴンの大きさや非平面具合によるので、テストレンダしながら最適値を探るしかないのである。

ほかにも、レイトレースシャドウはスムースポリゴンによる変形を描画できなかったり、トリムマップの解釈に微妙なバグがあったりと、やや扱いにコツが要る点も多い。が、その精密さやシーン内のオブジェクトサイズに依存せずに同品質の影を落とせる点などシャドウマップでは実現できないメリットも大きい。自分の作りたい影の内容に応じて、シャドウマップと使い分けるようにするといいだろう。

■頂いたコメント■



ちょっぴり実験

2006年10月22日(Sun)

Tips用に拡散IBLライトをいじっていて、Poserでライトプローブ画像を背景に使えないものかと考えてみた。

背景ノードはもちろんウィンドウに画像をただ貼り付けるだけなので、やっぱり大きな球体にマッピングするのが一番良いかなと。ただ、ライトプローブイメージを球体マッピングするには、UVをその形に展開しないといけないわけで。

ShadeのEugridシリーズの中に、極が一つしかない球体(自由曲面)を作成するプログラムがあったので、直径20メートルぐらいの球を作ってポリゴン変換する。自由曲面から変換したポリゴンにはUVが自由曲面に沿って自動的に貼られているので、それをそのままPoserに読み込んでみる。

061022-1

極や面の向きなどを変えてテクスチャを貼ってみたところ。

061022-2

で、同じ画像で拡散IBLライトを使ってみる。

061022-3

だいたい合っているような感じだ。ただ、どうしても画像の解像度が足りないので(上の画像は50%に縮小している)粗くなってしまう。

061022-4

被写界深度で背景用の球体をぼかしてみたところ。当然ながら被写界深度を使うとこの画質でも時間がかかってしまうわけで。しかも画像のフチとかアレだし(笑)。このあたり、P7で改善されるといいんだけど……どうかな。

061022-5

別撮りして背景だけPhotoshopでぼかしを入れてみる。確かにきれいにはなるけど、あんまり意味がないような……。
あと、この球体だとやっぱり歪みが大きくて、側面に近付くと歪曲してしまっている。

061022-6

後ろを振り向くと異次元への入り口があったり(笑)

061022-7

まあ雰囲気だけを要求するなら、これでもアリかな~、ってところかな。HexagonのUV展開の画面に下絵を読み込めるなら、ちゃんと計算式で比率を求めて手でUV展開するのが一番いいのかもしれない。

ま、たぶんやらないけど。



もうすぐハロウィンで。

2006年10月21日(Sat)

それっぽい絵を作ろうかと思ったけど、いまいちイメージが浮かばないんだな。どうも煮詰まってるような気がして仕方ない。

翼展に出展した烏男の絵を少し手直ししてレンダロにUPした。というかレンダロにUPするために手直ししたというか。どこを手直ししたかというと、まあ……DAZに躍らされているなぁ、という感じで(笑)
さすがにあちらではWarecrowも知名度があるというか、普通に変身途中と解釈してもらえてなんだか安堵。まあ知らない人はわざわざコメント入れたりしないだろうけど(笑)
ちなみに西洋でcrowと言えば大体はcrowでもjackdawでもなくravenのことである。このへんは狼男のことをハイイロオオカミ男とかエゾオオカミ男とか言わないのと同じである。ま、どうでもいいマメ知識。

Poser7英語版が今秋発売だとか。この前米コンパラでPoser5無料配布版を落とした人は今Poser6のUPグレード版を買うとタダでPoser7がゲットできるそうな。Poser6のUPグレード版が130ドル。一万五千円でイチ早くPoser7が入手できるということだろうが、果たして。
自分は日本語版が出てから購入を検討することになるだろうが、今のところ新機能に魅力を感じないというのが本音のところだろうか。

Poser7に望むこと……は、いっぱいありすぎて書ききれない。

一番感じているのは、コードを最初から書き直して欲しいということだ。さらに言うなら、cr2とかpz3とかの古臭い構造をイチから作り直して欲しい。もう下位互換なんか考えなくていいから。Poserというソフトのことを考えるなら、これからのことを考えるべきだと思う。上位互換だけしっかりサポートしてくれればいい。ついでに吐き出されるファイルがテキストベースで、仕様を公開してくれるならもう言うことない。

もちろん、これはリリース間近と思われるPoser7では到底不可能なわけだけども(笑)

あとは多言語対応かな。内部名と外部名の線引きをハッキリさせて、何語が含まれていてもちゃんと動くように元(英語版)から対応すれば、日本語の変な翻訳仕様もいい加減終わらせることができると思うけど。

あとはインターフェイスとか。
正直自分にとって、returnキーでOK、escキーでキャンセルが入らなければそれはダイアログボックスとは言わない。文字列のコピー&ペーストやドラッグ&ドロップができなければテキストボックスとは言わない。文字のはみ出しなんかもっての他である(Windows版はどうか知らないけど)。
OSの提供するAPIを無視するなら、せめてダイアログボックスぐらいはまともに作って欲しいものだ。

あと日本語版には日本語で書かれたマニュアル(嫌味)。ついでに英語版マニュアルのPDFも入っていると嬉しいんだけど。

まだまだあるけど、こういう要望ってイーフロ(日)に出したところで反映されるんだろうか。フォーラムは閑古鳥だし、未だにPoser7もG2もSR3もアナウンスないし。いっそ「Poser7からは日本語版は出しません、コンパラ以外ではアップデータも配布しません」とアナウンスしてくれれば見切りもつけやすいんだけど。

とりあえず自分は今のP6で結構満足している。折角書いたレンダリングやマテリアルのTips群が、無駄にならないよう祈るばかりだ。

いや、けっこう切実なんだけど(笑)

061020


またの名を当たって砕けろ編・りたーんず。例によって、以下のやり方は自分なりのやり方であって、決してこれが正解というわけでもこの通りにやれば必ずうまくいくというわけでもないので、そのへんは予めご了承頂きたい。

前回まとめた拡散IBLライトの特徴は、

  • IBLとは背景画像を使って周囲から受ける光(環境光)を表現するもの
  • HDRIではないので、単独でライティングするには光量が足りない
  • 背景は描画できない
  • 鏡面反射や反射が描画できない

ということだった。これらのポイントから、拡散IBLライトは「主に環境光成分だけに使用し、メインの光源としては別のライトを使う」ようにすればいいということがわかる。

■晴天の屋外

晴れた日の屋外は光に満ちている。メインの光源となる太陽だけではなく、大気中で乱反射した青い光や地面からの照り返しだけでも、室内より明るいことが多い。これらの環境光成分を拡散IBLライトに担当させることにして、まずはメインの光源である太陽を無限光ライトで設定する。

ライト1かライト3を選択して他のライトを消し、色は白、明るさを100%にして角度を決める。影の濃さはもちろん1で、できればくっきりした影が描画できるレイトレース影を使う。

125-1

太陽が決まったら、ライブラリの「ライト>IBL異方性反射(くどいけど誤訳)」の中から地面や空などがシーンに合うものを選んで適用する。このプリセットを使うとライト2が拡散IBLライトになり、他のライトはオフになるので、まずは太陽のライトをオンにして、軽くテストレンダしてみよう。まだ環境閉塞は必要ないので、ライト2の「環境閉塞」のチェックは外しておくといい。

レンダリングすると、眩しすぎて話にならない結果になるはずだ。

125-2

そこで、太陽と環境光のライトのそれぞれの明るさを調整する。目安となるのは、影が落ちた部分の明るさだ。この部分が適切な明るさになるように、環境光にしたライト2の明るさを下げる。だいたい50~60%あたりが目安だろう。

125-3

次に太陽の明るさを調整する。全体の調子を見渡して、色飛びが発生しないようにすればいい。全体の明るさが決まったら、ライト2(拡散IBL)の環境閉塞を調整する(詳細は後日)。レンダリングオプションで「影のレンダリング」をオフにすると調整しやすいだろう。

125-4 (環境閉塞を調整したところ)

ちなみに太陽にレイトレース影を使用している場合、そのライトに環境閉塞を使う必要はない。晴れた日の太陽のような強烈な光源は狭いところにもしっかり光が届くし、レイトレース影はシャドウマップに比べて遥かに正確に影を描画するからだ。

■曇天の屋外

空が完全に白い雲で覆われている日は全体に薄暗く、また影もぼんやりとしか落ちない。このときメインとなる光源は、太陽光を内部で乱反射してうっすら輝く雲全体となる。その光は地平に近いほど弱く、天頂に近付くほど強くなる。また、太陽のある位置は明るい。全体の照度が低い為、地面や周囲からの照り返しはほとんどない。

この場合、空全体の中でも「主に太陽方向から届く光」を無限光ライト1つに割り当て、その他の空全体と周囲の環境光を拡散IBLライトに担当させる。そして太陽光を弱めに、環境光を強めに調整する。影はほとんどを環境閉塞で描画させ、足りない部分は太陽光の影をシャドウマップにし、ぼかしを強めにかけることで対応する。

手順は晴天時のライティングとほぼ同じだ。まず太陽方向の成分を調整し、できればうまく影がぼけるようにシャドウマップサイズと影のにじみ半径を調整する。

125-5

次に拡散IBLライトを適用する。曇りの日なので、できれば彩度の低い画像がいい。適当な画像がない場合は、今ある画像を加工してしまおう。

125-6

で、各ライトの調整に入るのだが、今度は拡散IBLライトの明るさを先に決めてしまおう。基準は、拡散IBLライト単独で、最終的に狙った明るさよりもやや暗くなるぐらいがいい。ここではだいたい70%ぐらいにする。

それから無限光をオンにして明るさを落とす。拡散IBLライト単独のときよりも、ややメリハリが出るような感じにするといいだろう。ここでは30%ぐらいの値にしている。

125-7

環境閉塞の調整は晴天のライティングとは異なり、ほとんどの影をこれでまかなう為、最大距離を大きめに取るといいだろう。また太陽の無限光も、シャドウマップを使用するので環境閉塞にチェックを入れて適用しておく。

■室内

室内にも色々あるが、蛍光灯がメインの照明である一般家屋の夜のシーンを考えてみよう。夜なので、外から入ってくる光はほとんどない。環境光となるのは蛍光灯などによる照り返しで、色は家具や壁紙などに大きく左右されるが、蛍光灯のやや緑を帯びた光で黄色~茶色っぽい色味になるだろう。夜は絶対的な光量が少く全体に暗いはずなのだが、人間の目には補正機能がついているので暗いとは感じない。その分メインの照明と環境光の明度差が少なく、日中より平坦な調子になる。

厄介なのはメインの照明である蛍光灯のライトを何にするかだ。Poserには面光源に該当するものはないので、背景を合成でなく小道具で表現するならポイントライトで影をぼかすか、スポットライトの角度を広げて部屋全体に光が回るようにする。いっそ背景小道具だけ別にライティングした方が手間が少ないかもしれない。人物など近景を撮るだけなら無限光を使用できる。照明はできるだけ現実的な配置にし、部屋によっては隣室の照明やスタンドライトなど複数の光源を置くといいだろう。

125-8

■応用

シーンの状況にピッタリ合うものがプリセットの中にない場合は、思い切って自分で作ってしまうのもいいだろう。簡単なのは、既存の画像に着色することだ。例えば夕暮れなら、昼間の画像を使用してライトを青紫にする。すると投影される色は青紫を乗算した色になるので、太陽のライトに赤みをつけて調整すれば夕暮れになる。

125-9

また、ペイントソフトでイチから書き起こすのもそれほど難しいことではない。前回の画像と方角の対照図で示したように、だいたいの方角と色さえ合っていれば厳密に塗り分けたりする必要はないので、写真や絵を切り貼りしただけでも充分使用に堪える。

ところで、拡散IBLライトを使って撮った絵は、当然ながらやや色かぶりしている。晴天の画像を使ったなら青っぽいし、室内の画像を使ったなら黄緑っぽい。画像処理の分野では嫌われる色かぶりだが、3DCGでは逆にそれっぽく見えたりするので、レンダ後に画像処理ソフトで補正をかける時も、それを活かすように補正するといいだろう。晴れの日ならよりオーバー気味に、曇りの日ならより眠たく補正するのも効果的だ。やり過ぎはよくないが、ほどよく強調したほうがそれらしい。

125-10

拡散IBLライトを使う時のコツは、そのシーンにどんな光が存在するかをできるだけ具体的(どれぐらいの強さで、どんな色なのか、また影はどう現れているか)にイメージし、それを適切に各ライトに役割分担することだ。そのためには、普段から身の回りを意識して観察することが役に立つだろう。


果たして。
あと環境閉塞のことをチラっと書いたら、ライティングTipsも終わりかな~。

■頂いたコメント■



前回3DCGにおける一般的なIBLの説明をしたので、今回はPoserの拡散IBLライトについて。

拡散IBLライトを使用するには、ライブラリのライトのカテゴリから「IBL」または「IBL異方性反射(←誤訳)」を開き、シーンの状況に一番近い雰囲気の絵を選んで適用する。手動でセットするには、まずIBLにしたいライト以外のライトを全てオフにし、特性パレットで拡散IBLを選択して影をオフにする。それからライトの色を白にして、マテリアルルームでライトのカラーにイメージマップノードを接続すればいい。場合によっては特性パレットの環境閉塞にチェックを入れる。

Poserの拡散IBLライトは、シーン全体を包むような巨大な球体があると考え、そこに画像を貼り付ける。そしてその画像の色がライトの色となって、その方向を向いたオブジェクトの面に照射される。ここまでは通常のIBLと同じである。実際には厳密に色分けされるわけではなく、その方向の周辺にある色の影響も受けている。画像と方角の対応は次のような感じだ。

124-1

ここでいう前後左右上下とは、シーン全体を包む球体の前後左右上下のことである。これは固定で、前といえばZ軸の+方向、上はY軸の+方向、右はX軸の+方向になる。ライトをどちらに向けても照射される光の方向が回転するわけではないので要注意。光の方向を変えたいなら、画像自体を反転するなどの工夫をこらさなければならない。

ところで拡散IBLライトは「あらゆる方向から照らされるライト」なので、普通に使うならば影をオフにしなければならない。すると当然ながらあらゆるところが照らされてしまうわけで、その結果どこにも影のないのっぺりした絵ができてしまう。

そこで、拡散IBLライトの影を描画するには環境閉塞を使用する。環境閉塞の詳しい説明はまた別の機会に譲るが、「なんか狭いところを黒く塗りつぶす」機能だと思えばいい。環境閉塞はレイトレース系のシェーダなので、使用する時はレンダリングオプションで「レイトレース使用」にチェックを入れよう。

124-2

画像ファイルの形式は、Poserのイメージマップノードが対応している形式ならなんでもいい。……ちなみにHDRIのファイル形式の一つであるHDR形式(拡張子.hdr)には対応していない。

これは、通常のIBLとPoserの拡散IBLライトの一つ目の違いである。元々HDRIは従来の約1776万色では表現できない現実の光を表現するために考案された形式だ。だから当然、HDRIでないファイル形式の画像を使用したIBLでは、充分な光量が得られない。

124-3 (全く同じ設定でIBLの画像だけを変更した例。画像以外の光源は使用していない)

そんなわけで、HDRIに対応していないPoserの拡散IBLライトも、単体で使用するに足る程のクオリティは期待できないことがわかるのである(もっとも、HDRIを使用するソフトでも、IBLのみでは直接光の成分が不十分なので別のライトを併用することが多いのだけど)。

二つ目の違いは、拡散IBLライトはあくまでもライトであって背景ではない、という点だ。

本来のIBLの利点の一つは、背景画像をライティングに使用することで近景オブジェクトと背景のライティングを違和感なく一致させることができる点である。ところがPoserの背景ルートノードには、プローブ画像をマッピングする機能がない。ウィンドウを1枚の板ポリゴンに見立て、画像を(通常は)UVマッピングしているだけだ。

さらにPoserの反射は、レイトレース反射ですら背景ルートノードを参照しない。接続されたイメージマップノードの内容を、(通常は)オブジェクト自身のUV情報に基づいてマッピングしているだけなのだ。(通常は、と断るのは、イメージマップノードはUV以外のマッピングも可能だからである)

ということは、拡散IBLライトでは背景とライティングの一致も、背景のリアルな写り込みも実現できないということになる。これは大きなデメリットである。

また、拡散IBLライトはあくまでもライトであって、レンダリング方式が変わるわけではないのも大きな違いの一つだ。

IBLはグローバルイルミネーションを実現する手法の一つである。なので、IBLを使用する他の多くのソフトはGIを実現できるレンダラを備えている。しかしFireflyはレイトレース系シェーダを使えるだけで、実質スキャンラインレンダラである。だから他のソフトなら可能な二次反射光の計算も、Poserには計算できないのだ。

たとえば背景を遮るような大きな赤い壁に周囲を囲まれたオブジェクトがあるとき、普通ならオブジェクトは壁の赤い色の影響を受け、遮られたIBLの画像の影響は受けないはずである。ところがPoserでは(「集める」ノードを使えば壁の色の影響を描画することはできるものの)そんなことはお構いなしに拡散IBLライトの画像の影響を受けてしまう。これは人物を単体でレンダする場合などはいいが、オブジェクトが密集しているシーンなどでは注意が必要だ。シーンの状況に合わせて、画像そのものに加工する必要があるだろう。

もう一つ、違いというわけではないが致命的な特徴がある。拡散IBLライトでは、ライトやオブジェクトのマテリアル設定に関わらず、鏡面反射と反射が描画されないのだ。上2つの画像はPoserの基本小道具そのままだが、ハイライトが出ていないのがわかるだろう。ただ拡散IBLライトを使用した画像がいまいちリアリティに欠ける、最大の理由がこれである。特に肌や瞳の輝き、金属物のマテリアルなどは違いが顕著で、素材感が失われてしまうのだ。

124-4

もっとも、鏡面反射について言えばこの仕様(バグではない)は順当なものだ。そもそもIBLでは鏡面反射という成分は存在しない。なぜなら鏡面反射とは物体表面の「光源の反射像」を疑似的に表現したものであり、反射が正しくレンダリングされ、かつ光源がちゃんと描画されるならば、鏡面反射は必要ないものだからである。前述のShadeの画像では、壺と机の光沢(鏡面反射)は0に設定されている。右側のHDRIフォーマットに現れている光沢は、少しだけ適用された反射値によるものだ。

しかしこれはIBL、しかもHDRIによって光源が反射像として描画される場合の話である。HDRIに対応しておらず、さらに反射も描画されない、ではどうやっても光沢を表現できない。仕様上の設計ミスというべきか、このあたりどうもP5→P6の開発に奇妙な躓きがあるように思われるところだ。

とまあ、嘆くだけではPoserと自分自身の創作意欲を腐らせるだけである。Poserの拡散IBLライトは、文字通り「拡散」色だけ「画像に基づいてライティング」する「ライト」なのだということ。これらの特性を踏まえて、次は実践編に移りたいと思う。

ところで。

解答.答えは(ア)無限光。
拡散IBLライトはシーン内に特定の位置を持たず、また照射範囲も持たず、どんな場所でも同じように照らし出す。物体の表面がどんな明るさ(色)になるかは、ただオブジェクトの面の向きとライトの色(画像)によって決定する。この特性にもっとも近い特性を持つのは無限光ライトである。
向きを持たない点では(ウ)ポイントライトも近いと言えるが、その他の特性が一致しない。(エ)環境閉塞(AO)はライトではなく、マテリアルシェーダ(色付け機能)の一つであり、IBLに併用することが多い機能である。

……実は、拡散IBLライトは影をオンにすると無限光と同じ影を描画する。理屈的には影を描画してはいけないはずなのだが、このことからも拡散IBLライトが無限光ライトを拡張した機能であることがわかるのである(笑)。

■頂いたコメント■



ちいさい秋。

2006年10月12日(Thu)

ぱいんさんに頂いた千羽鶴のお返しネタ。

061012

そんな秋晴れの朝。

幸運なことに、自分は今も五体満足のまま健康な生活を送っている。だから生まれた時から全盲と診断された人が、夢の中でさえ「見える」という感覚を理解できるかどうかなど自分にはわからない。それ以上の言及は避けたいと思う。

とりあえずギャグじゃないネタはオトすのが難しいということがわかった(ぉ)

そいでもって永遠に未定と思われていたウィードの目のテクスチャが決まった。一応ちゃんと目も開いててテクスチャも貼ってある。と言ってもほとんど写ってないけど(笑)
久し振りに見る素顔に「あれ、こんな顔だったんだ」と違和感を覚えることひとしきりである(ひでぇ)。

ファンタジーなキャラを扱ってて楽しいことの一つは、髪や目の色に変化をつけることができる点だろう。バランスも考えないといけないから、面倒臭い作業でもあるけど。それでもMATファイルを適用しながらテストレンダを繰り返すのは、百面相を見ているようで面白い。

P5以上で既存のテクスチャの色味を変えるなら、HSVノードがお勧めだ。HSVノードはそのまんま、接続されたノードの色相・彩度・輝度を変更するノードだ。アプリケーションを切り替えなくてもその場でちょっとした色味の変更などはできてしまうので、手軽に試したい時や急ぐ時には便利だと思われる。詳しいことは本宅のTipsでまとめたいと考えているが(最近更新の間が開いているなぁ)……まあ、そのうち。

ちなみにAさんの折鶴はこれがオチなので、これ以上続かないので悪しからず(笑)。



翼ある者展が一段落

2006年10月09日(Mon)

投稿期間が無事終了、コメントの受付が15日一杯ということで一段落。皆様お疲れさまでした。拙作に頂いたコメントは、一つ一つ噛みしめながら拝読しております。

自分の作った絵に対していちいち制作過程を載せるのは、往生際が悪いような、自己顕示欲が強いんじゃないかみたいな気持ちになったりすることもなくはない。が、自分が他人の話を聞いて参考にすることがよくあるので(純粋に読み物として興味深いし)続けていきたいな~と思ってたり。

というわけで。

06109-1

「どうやって作ったのか?」とお尋ねの声も頂いたが、なんのことはない。そのまんまレンダしたものをガリガリ色調補正しただけであったりする(笑)

ちなみにライトは0灯。緑のライトで照らしているわけではない。もちろんごく普通のレンダ結果をレタッチすることでも同様の効果は得られるだろうが、今回は最初からマテリアルで再現することが目的の一つだった。

昔、MacintoshにはAfter Darkというスクリーンセーバーがあった(今でもあるみたいだけど)。羽の生えたオーブントースターが飛んでくるやつ、と言えば幾人かの方は懐かしい思いに駆られるかも知れない。その中に、妖精を模した光の粒が乱舞する、美しいモジュールがあった。もう名前も思い出せないが、その無機的で幻想的な光景は今でも印象に残っている。その「印象」そのものをモチーフとして、意識の狭間に滑り込む、根源的な存在を表現したいというのが今回のテーマだ。最初に充てていた邦題は「畸形信仰」だったが、やや障りがあるので異形崇拝となった。平たく言えばマト○ックス+ファンタジー、まんまである。

起用したフィギュアはG2 James。理由はもちろん、こんな時でもなければ使わない手持ちのフィギュアの中で一番、体の造形が美しいからである。特に肘・膝、また指先や足首から先など、関節を跨ぐ腱が表現されている男性フィギュアは皆無に等しい。筋肉に対して特に思い入れがない自分にとって、ただ破綻しないだけのソーセージのような肉体は美の範疇に入らないのである(暴言)。

なわけでとにかくポーズをつける。構図が大体決まっていたので、画面比率とメインカメラを先に固定し、サブカメラやポーズカメラでポーズを決める。翼は非生物的な曲線が描けるDreamer Wingを使用する。ちなみにこの翼、いわゆる「両面ポリゴンの呪い(笑)」がかかっている。そのまま使用すると三角形のノイズが出てしまうので、マテリアルルームで「ノーマル_前」にチェックを入れるか、P5なら面反転ポリゴンの削除などの対策を打とう(詳しくは拙宅Tipsを参照)。まあ、今回自分の場合はウラもオモテも関係なかったんだけど。

で、ポーズが決まったらマテリアルを詰める。全てのライトをオフにして、背景も黒にして、自分から発光しているように設定する。

翼の部分は3Dテクスチャのノイズを使用した。

061009-2

まんべんなく分布したノイズにバイアス(Photoshopでいうトーンカーブ)をかけて暗くした後、四捨五入で0(完全に黒)と1(完全に白)に振り分けて点描を作る。それを環境値に接続し、全体に疎にしたかったので透明値にも接続する。細かいパラメータ自体はレンダリングしながら調整。テクスチャを全部消去してしまっているので、レンダリングの早いこと(笑)。

体の部分はエッジブレンドを使用して、視点に平行な面ほど発光率が高くなるようにする。また、底から浮かび上がるようにしたかったので、プローブライトを使用して若干下向きの面の光が強くなるようにする。プローブライトの特性自体は、まだ完全に把握しきれていないので詳しい説明はまたの機会に。

061009-3

髪の部分は体と同じように最初はテクスチャを使用していなかったのだが、やや毛先が煩わしかったので元のトランスマップを利用する。

061009-4

DAZフィギュアを使用しなかったもう一つの理由は、マテリアルグルーブが細分化されていて、ちょっとした変更を反映させるのが面倒だったからだったりする。ともかく出来たマテリアルはライブラリに登録して、使い回しが効くようにしておく。

シーンはこんな感じである。環境色が1なので、眩しいことこの上ない(笑)

061009-5

この状態ではポージングもままならないので、ポーズを再調整するときはライトを点けて、環境色をオフにして調整したりする。他の周囲のフィギュアも同様に、作成したマテリアルを適用して一体ずつレンダリングしていく。

で、レンダリング後は肩や脇腹などやや気になるところを修正して、周囲のフィギュアを適当に配置したらガシガシと補正を掛けていく。本当はもう少しあからさまに電脳的なイメージを重ねるつもりだったが、自分の引き出しにないものはどうひっくり返っても出せないのであった(反省)。

ところで、今回一番難儀したのは、実はファイルサイズである。単色だから一見軽そうに見えるかもしれないが、細かいノイズが多い(つまりエッジが立っている)絵はJPEGが苦手とするところ、さらに今回最も苦手な縦向きノイズだったりするからもう目も当てられない(JPEGは一般に横方向に変化のある画像の圧縮を苦手とする。試しに縦グラデーションと横グラデーションを同一設定で出力してみると差がよくわかる)。

普段自分は作品用としてはPhotoshopの90%~95%の画質を使用するのだが、これだとあっさり規定サイズをオーバーしてしまう。絵を縮小すると今回のポイントである点描が潰れてしまうし、かといって当然ぼかしなどをかけるわけにもいかない。

というわけで、1%刻みで画質を落として出力し、CGIに撥ねられなくなるまで投稿を繰り返したのであった(笑)。通った画質は78%、まあ許容範囲である。

ちなみにJPEGを使用するなら、画質100%を使用するのはハッキリ言って無駄である。100%とは圧縮しないという意味ではなく、原理的に劣化が完全に無くなることない。そしてファイルサイズ自体は、画質90%を越えたあたりから飛躍的に増大する。

試みに自分の絵を画質95%と100%でJPEG出力し、それを再度画像処理ソフトで開いてみよう。一方の画像を他方にコピーし、レイヤーモードを差の絶対値に変えてみる。

061009-6

そこに現れたものが増大したファイルサイズ分に含まれるデータである。あなたの目はそのデータをどう捉えるだろうか?

というわけで、画質はほどほどの数値に設定するのが、環境にも優しいCG描きなのである。

061009-7


翼ある者展、開催中~

2006年10月07日(Sat)

061007-1

皆さんそれぞれアイデアあり特色ありで、力作揃いの展覧会となってます。
参加せずに後悔するより、参加して後悔した方が(コラ)楽しいはず。
土日に余裕が有る人ならここからラストスパートでしょう。まだ間に合います♪

というわけで今回は翼展1枚目の反省。誰もツッコまないから先に自分でツッコんでおこう。
後ろで飛んでいる鳥、カラスに見えなくてごめんなさい(爆)
や、だって高かったんだものー(言訳)。セールも始まってなかったし~。

制作過程はいつも晒しているところなので、今回は絵が浮かばないorテーマが決まっている状態からの絵作りのことなんぞを。

プロの方なら日常茶飯事だろうが、趣味で絵を描いていると決められたテーマで絵作りする機会はなかなかない。テーマを与えられた時点でイメージが閃けば苦労はあまりないだろうが、そうでなければ「アイデアが浮かぶまで待つ」「なんとなく描く」のがほとんどではないだろうか。もちろん趣味なのだからそれで構わないのだが、その難点は容易にスランプに陥ってしまいがちなところだ。

表現というものは、どこかスポーツに似ている。繰り返し訓練しないと腕が鈍るし、漫然と反復したところでプラスにはならない。無理を通して多作が過ぎると枯渇してしまう(体を壊してしまう)し、トレーニングの方向性が偏っていれば歪なカタチになってしまう。そしてスランプになるとなかなか抜け出せない点も似ている。

だからこそ、イメージが閃かなかった時は敢えて「無理に」絵を作る方が良いと思う。それも、スポーツ選手がフォームを正すように、ひたすら理詰めで作るのがいい。作っている内に勘が戻ることもあるし、今までの自分に無かったものを出せるかも知れないからだ。そうして出来あがったものも人目に晒し、自分の作品として背負ってしまえば、それなりに愛着も責任感も湧く。より真面目に反省点を受け止めることができるのではないだろうか。

まあ偉そうに言ってるけど、要は今回スパっと絵が浮かびませんでした、と(笑)
幸い充分に時間があったので、じっくり展開することができたのが救いだったけど。

最初の段階では、自分は企画者でありプロデューサーであり、マネージャーだ。
企画者はまず簡単なアイデアを完成イメージなど考えずに無責任に紙に書いていく。「羽付き服を着て街を歩く女の子」「青っぽい妖精羽」「とにかく戦闘シーン」「○○(キャラ名)を使った絵」……そんな感じ。紙に書かれた言葉を改めて読むと、「こんな感じかな?」と落書き程度の絵が浮かぶ。企画者はそれをプロデューサーに提出する。

プロデューサーはまず予算や期間、技術力といった観点から到底実現不可能なものにダメ出しして、次に狙いを訊いてくる。企画に見どころはあるか、独自性があるか、テーマに沿っているか、見た人の歓心を買うことができるか。企画者が明確なビジョンを打ち出せなかったらその時点で没になる。そして企画者とプロデューサーの戦いが二週間ぐらい断続的に続く。

最後の頃になるとマネージャーも顔を出してきて、「その絵を作ることが自分自身の向上に繋がるか、逆にデメリットはないか」というあたりを検討する。ついでに「完成まで時間と気力に都合がつくか」あたりも計算する。

今回最終的に出された企画(アイデア)は4つあった。一つは非常にネガティブなアイデアの上に女の子の絵で、もしかしたらネタがかぶる可能性があったのでパス。Kyotaroの芸風(笑)に合わないというマネージャー視点でもアウト。もう一つはWIZ#3から、天使軍団vsザザぽんチームの戦闘シーンだったが、登場人物が10人近くになる上ザザぽん以外は新キャラ、さらに天使も悪魔も冒険者に敵対するモンスターという世界観がゲームを知らない人にはうまく伝わらないだろう、というプロデューサー視点でパス。

残ったものの一つが「烏男が片羽を出してるところ」。獣人というあまりないであろうネタと、本格ファンタジーなところ、絵的に見栄えする点が勝因だ。と言いつつ、この時点では絵は少しも浮かんでなかったけど。

だもんで次はテーマそのものの掘り下げになる。烏の生態やら獣人の語源やらを調べたり、連想ゲームでメモ用紙に単語を列挙したり。黒・孤独・孤高・不吉・不安・死体・狡猾・知的・胡散臭い・夕陽・高いところ……等々。ついでにキャラのデザインなんかも描いてみる。獣人は普段は全く普通の人間で、人間社会で生活している。烏っぽくちょっとした光モノなどを帯びた洒落者で、流れ者の風体をしているだろう。黒ずくめだと見る人にとってわかりやすいだろう。短いマントと境界のない翼・旅人風の軽装・斜めに佩いた細剣など、ある意味ベタな記号を揃えつつイメージを固定していく。

このあたりでさらに1週間。展覧会まで10日程。ようやく「ありえない高所に一人佇む姿」という基本コンセプトが決まる。あとは、連想ゲームから抜き出したアイデアを盛り込みつつ、どうすれば効果的かを考えながら絵を作っていく。

というわけでようやくPoser起動。
ロングショットになることが分かっていたのでキャラ作りは程々に、手持ちの中からイメージに合う服を着せる。で、片腕を非表示にして羽をペアレントし、適当にポーズを取らせる。

061007-2

最初は立ちポーズだったのだが、しゃがんでいた方が飄々とした性格が強調されるように思えたのでそのように。高さを強調して背景に建物を入れようと考えていたが、俯瞰にすると町並みを全部描写しないといけないので(笑)水平に近い角度からのカメラアングルにする。

片翼というのは微妙に悩んだところだ。獣人が「化け切ったら完全にケモノ」なことを知らないと、片翼は別の方向でインパクトが強い。だが背中から生えているものではないし、両方翼だとなんかカッコ悪い。両方とも腕だったらそもそも翼絵にならない(笑)。だので、最初は遠くの建物に影が落ちて大烏の姿が移っている、という描写を考えていた。

この状態でテストレンダしたあと、Photoshopで落書きして最終的なイメージを決定。

061007-3

それをPoserの背景ピクチャに読み込んで、細かいポーズやカメラ、ライティングなどを決定。でもって遠景の建物プロップを並べる。

ライティングを詰める内に、遠景に影を落とそうとすると構図的にかなり無理をしなければいけないことがわかってきた。仕方ないので一日ぐらい迷った末に、影で説明描写することを諦める。もう少し自分に技術があれば、破綻なく作り上げることができたかもしれない。だが迷いがとれたことで、ようやく絵が「自分のもの」になってくる。あとはもうひたすら作り上げていくだけである。

Shadeでシミュレーション用のクロスを作り、Poserでシミュレート後さらにShadeでフチや厚みをつける。ついでにほとんど写らない(笑)指輪、細剣用ベルト、袖口やブローチを作って、違和感がないようにマテリアルを揃える。

061007-4

その後、後髪をマグネットで曲げたり服のはみ出しを修正したら、ようやく本番レンダ。
近景・遠景と別々に撮り、近景はさらにテクスチャフィルタリングONにして羽や髪を部分撮りして合成に使う。背景の雲は丁度良いものがなかったので(夕方の雲の写真って逆光のものがほとんどなんだなー)、色調補正したものを2枚重ねている。

061007-5

さらに翼部分を拡大したsongbird(笑)を何パターンかレンダし、大きさを変えながら重ねて不穏な雰囲気を出す。

061007-6

今回は翼の角度がイマイチ自分的に決まっていないこと、やっぱりカラスがカラスっぽくないこと、ちょっとすっきりしすぎて華が乏しいあたりが自分的反省点。

無理矢理絵を作ることの最大のポイントは、後戻りしないこと、絵作り前にしっかり方針を練っておいて、後の工程はそれに合致しているかどうかを判断基準にすることだと思う。そして何より、どの工程で不満が残っていようと、次の段階では全力を出し切ることが重要だ。それは他者と共同作業をしている感覚に近い。途中で煮詰まったとしても、「じゃあヤメ」で済まさない。なぜダメなのか冷静に話し合う。そうすれば少しは前に進むし、いつかは結果に辿り着く。

それは楽しい作業ではないし、むしろ苦痛かもしれない。でもその苦痛は、絵が作れないという慢性的な苦痛よりよっぽど清々しいのではないかと思う。

そして仕上がった絵を見れば、自分はやはり絵を作ることが好きなのだと実感してしまうのだ。



拡散IBLライト・まずはCGの話

2006年10月05日(Thu)

問題.
次の(ア)~(エ)のうち、拡散IBLライトにもっとも近い性質を持つと思われるものを一つだけ選びなさい。

(ア)無限光 (イ)スポットライト (ウ)ポイントライト (エ)環境閉塞(AO)

というわけで、多少間が開いてしまったがようやく拡散IBLライトである。といっても、拡散IBLライトについては既に優れたテキストがネット上に存在する。原理的なところはほげほげさんのブログが詳しいし、T2さんのフォーラムには、本格的なIBLを使用する為のPythonスクリプトの紹介がある。 というわけで実は改めて自分が特筆するようなことはほとんどなかったりする(おいおい)。
とまあ、それだけでは手抜き臭い(笑)ので、自分なりのアプローチで「Poserでの」拡散IBLライトとそのライティング手法をまとめてみようと思う。

IBLはCG業界の中でもまだ比較的新しい技術だ。それを説明するためには、まずグローバルイルミネーション(Global Illumination、以下略GI)を説明しなければならない。GIは日本では大域照明とも訳される。その意味を一言で表すなら、「ライト(光源)以外の光も、より現実的に計算(=レンダリング)しよう」というものだ。

現実の世界は、ライトから発せられたもの以外にも様々な光に満ちている。窓から差し込む光の、床や壁からの照り返しで明るくなった室内。よく晴れた昼下がり、直射日光が当たらなくても充分に明るいビルの谷間。赤い傘を差せば顔が赤みがかって見え、カクテルの入ったグラスは複雑な光模様を描き出す。

123-1

照り返しとは拡散反射のことだ。Poserでも物質の色のことを拡散色・拡散値などと表すが、それは物質に吸収されずに、表面の微細な凹凸で乱反射した光の事を指す。(凹凸がなくてただ真っ直ぐに反射したら、それは鏡面反射や反射光そのものだ)

物質に色があるということは、つまりその色の光を乱反射しているということで、その物質表面で拡散した光も微弱ながら周囲を照らしているのである。それは頭上に広がる空も同じだ。空が青く見えるのは、太陽の光が大気中で乱反射し、青以外の光の波長が吸収されるからだ。言い換えれば日中は太陽の光以外に、空全体から空色の光が降り注いでいるのである。

グラスの光模様はどうだろう? レイトレースが使えるレンダラでは、光の反射や屈折でものの見え方が変わるところ、反射像や屈折像は描画することができる。が、実は反射・屈折する「光そのもの」を描画することはできないのだ。Poserのキャラクタに手鏡を持たせて、角度をつけて強い光を当ててみよう。手鏡で反射されたはずの光の輪は、どこを探しても見つからない。レイトレースは虫眼鏡で黒い紙を燃やすことができないのである(当たり前だって!)。

これら拡散反射光(間接光)や天空光、コースティクスなどはライトとその光を受けるオブジェクトだけを計算する従来のレンダラでは表現できない。疑似的に、フィルライトをいくつも用意して柔らかな間接光を表現するのが関の山だ。それに対して、周囲のオブジェクトも含めて二次反射光をとことん計算するのがGIだ。

GIレンダリングの手法にはいくつか種類がある。古くからメジャーなラジオシティ、Shadeでおなじみのパストレーシング、フォトンマッピングなど。パストレーシングとフォトンマッピングの特徴を組み合わせたものもあって、3ds MaxやMAYAにも使用されているmental rayのファイナルギャザリングや、Shade Proに付属する外部レンダラCALLISTOなどがそれにあたる。

GIレンダラの特徴は、リアルな絵が仕上がるかわりに、どれも時間がかかるということだ(笑)光の特性をよりリアルにシミュレーションするわけだから、まあ当然である。さらにライティングやレンダリングの設定項目を適切にコントロールしないと、時間はかかるけれども品質はいっこうに向上しない。ある意味シビアな世界なんである。

IBLはそんなGIにおいて、ライティングの手間を一気に引き受ける画期的な技術だ。IBLはイメージベースドライティング(Image Based Lighting)の略で、その名の通り画像ファイルの色や輝度情報に基づいてシーン内のライトと周囲からの照り返しを決定する。

イメージ的には、シーン全体を覆う大きな球体があって、そこに画像が張り付いていると考えればいい。そしてその球体から、画像の色と輝度を持った光がシーンに降り注ぐ。

123-2

この手法の何が画期的かというと、メインのオブジェクト以外の周囲の環境を作り込む必要がないこと、画像を取り換えるだけでライティングを一変できること、そして張り込んだ画像をそのまま、背景画像としても使用できることである。背景とライティングの不一致に悩む必要はもうないのだ。(本当に実用的な背景を得るには、かなり大きなサイズの画像が必要なのだけれども)

ところが一つ問題があって、画像から色の情報を得ることはできたものの、画像自体の光量がライティングに代用できるほどには足りなかったのである。もともと通常の画像形式では赤緑青各色8bit256階調、16,777,216色しか表現できない。たったこれだけで現実世界の豊かな光を表現しきるのは、とても無理な話だったのだ。

そこで、通常の24bit・16,777,216色を遥かに越え、階調を可変的に記録することができるHDRI(Hyper Dynamic Range Image)という画像形式が新たに考案された。このフォーマットを使うと、露光のアンダーな情報もオーバーな情報も一緒に格納できる。それでもってIBLはより繊細な表現が可能になったのである。

と、ここまでが本来のIBLの話。

Poserの拡散IBLライトは、このIBLの「画像から周囲の光を求める」という部分を疑似的に再現したものである。どのへんがどのように疑似的なのか。というところで、長くなったので続きはまた次回。

ついでに解答も次回(笑)


えー、業務連絡ー。業務連絡ー。
今晩からいよいよ翼ある者展が始まります。
投稿期間は日曜の晩23時59分までですので、皆さん奮ってご参加下さい~。

■頂いたコメント■





Menu

Profile

Kyotaro

確定名:Kyotaro
ネタを探しているらしい。

Categories

Calendar

09 | 2006/10 | 11
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 - - - -

Comments

Archives

Track back

RSS feed

Links

Search

※2011年4月6日のサーバ障害の為、エントリのアドレスが以前のものからズレています。当Blogのエントリにリンクを張っておられた方は、お手数ですがアドレスのご確認をお願い致します。

※Internet Explorer非推奨。