彼女のこと。 / 1996年11月28日
実はウチにも居たりする。

ちなみにマテリアルは調整済み・Photoshopで色調補正。
どんなんかなー、というただそれだけの興味本位でポッチリ購入。
もちろん特に使う予定もなく、関連アイテムも所有していないので単なる持ち腐れだ。
非道な家主の元に来たものである(←自分で言う)。
美人かどうか、可愛いかどうか、は人の好みそれぞれだから置いといて、
実際にロードしてみるとその造形の素晴らしさ、テクスチャのクオリティに驚く。
そしてフィギュア自体の出来の落差に二度驚く。この落差はじぇーむず以上かもしれない。
まあじぇーむずも大概だし、じぇしーはそれ以上だけど。
とりあえずデフォルトのマテリアルはふざけてるとしか思えない出来なので、
マテリアルルームでちょっと真面目に手を入れる。
なーんか、どこかで見たような感じかなー。誰に似てるんだろ。
見せ方とかキャラクター性とか魅力とかを考慮せず、ただ見栄えを変えるだけなら
彼女はPoserの機能を駆使すればそれだけで化けるフィギュアだと思った。
だけど、それはとてもとても悲観的で皮肉な見方をするならば、
Poser向け……というより、Poserユーザー向けではないというようにも感じられる。
ユーザーはどういう意図で、どのように見せるかをキッチリと求められる。
そしてそれに応えている人の絵の中では、彼女はとても魅力的だ。
ひょっとしたら、彼女はPoserユーザーにとって試金石なのかもしれない。
ちょくちょく付き合っていけば、何かしら身に付くんではないかと思う。
■頂いたコメント■

ちなみにマテリアルは調整済み・Photoshopで色調補正。
どんなんかなー、というただそれだけの興味本位でポッチリ購入。
もちろん特に使う予定もなく、関連アイテムも所有していないので単なる持ち腐れだ。
非道な家主の元に来たものである(←自分で言う)。
美人かどうか、可愛いかどうか、は人の好みそれぞれだから置いといて、
実際にロードしてみるとその造形の素晴らしさ、テクスチャのクオリティに驚く。
そしてフィギュア自体の出来の落差に二度驚く。この落差はじぇーむず以上かもしれない。
まあじぇーむずも大概だし、じぇしーはそれ以上だけど。
とりあえずデフォルトのマテリアルはふざけてるとしか思えない出来なので、
マテリアルルームでちょっと真面目に手を入れる。
なーんか、どこかで見たような感じかなー。誰に似てるんだろ。
見せ方とかキャラクター性とか魅力とかを考慮せず、ただ見栄えを変えるだけなら
彼女はPoserの機能を駆使すればそれだけで化けるフィギュアだと思った。
だけど、それはとてもとても悲観的で皮肉な見方をするならば、
Poser向け……というより、Poserユーザー向けではないというようにも感じられる。
ユーザーはどういう意図で、どのように見せるかをキッチリと求められる。
そしてそれに応えている人の絵の中では、彼女はとても魅力的だ。
ひょっとしたら、彼女はPoserユーザーにとって試金石なのかもしれない。
ちょくちょく付き合っていけば、何かしら身に付くんではないかと思う。
■頂いたコメント■
›› Read More
ちゃいな。 / 1996年11月17日

しばらく潜伏して(という程でもないか)こんなブツを作っておりました。
Aさん専用に作るつもりが、何をトチ狂ったか汎用性を持たせようとするから後の祭り。
じぇーむずとこーじは不完全クローンだわ、G2は靴を履くと足の指を置き忘れるわ、
マグネット地獄だったり、意外とまいこーさん短足だったり(笑)
とりあえずチャイナっぽく見えるダイナミッククロスです。よかったら使ってやって下さい。
ご使用の際にはReadMeファイルとシミュレーションメモをご一読下さい。
そのほか、厚かましくも載せきれなかった注意書きなどを。
・自分用に作ったブツなので * 容 赦 な く ハ イ ポ リ ゴ ン * です。
シミュレーションの際はそれなりに覚悟して下さい。
ちなみに自分の環境(PowerMac G5 2.5 Dual/Poser 6 SR2-122)では上下とも
計算開始から終了までに5分程かかります。
・シミュレーション後にモデラで加工修正するのを前提に作ってありますので、
厚みも継ぎ目もありません。よきにはからってください。
・精度向上のため三角ポリゴンを使用しているので、角度によってはスムースシェーディングが
綺麗にならない場合があります。レタッチなどで誤魔化して下さい。
・袖口は裏を向いているので「ノーマル_前」にチェックが入っています。
これを外すと綺麗にレンダリングされません。
またこの部分のポリゴンを反転させてシミュレーションを実行すると
問答無用でPoserが強制終了します。
・長袍はフォーマル服(だそう)です。あまり激しく動かず行儀良くして下さい。
……なんか、使う人いるのか? って感じだなぁ(笑)
***
ダイナミッククロスは今でも遅い・精度が悪い・よく分からないというレッテルを貼られて
充分に使われていないように自分などには思われる。
よく分からないというのは絶対的なテキストが存在していないからで
(多分P5のマニュアルが一番分かりやすいと思う)、それは発売元に一端の責任があるが
速度や精度については使う側にもある程度問題がある。
物理的に有りえない状況を計算させようとしたり、
布というには不適切なオブジェクトをクロス化したり、
自分のマシンパワーを把握しないまま無闇に負荷を増やしたり、してはいないだろうか?
シミュレータはつまり計算機だから、多少ヘンな使い方をしても律義に計算してくれる。
今のアップデータ(P6 SR122)ではエラー回避も随分有能になってきたが、
無理な計算をさせればそれだけ時間がかかるのは道理である。
要は、何度も言及しているが接触・貫通させてはいけない、ということだ。
自分の見た目にとってではなく、シミュレータの視点から見て、である。
衝突オフセットと衝突深度の意味と、どのように衝突判定がされているかを把握すれば
そんなに難しいことではない。(といっても、それを理解するのがまず難関なんだけど)
シミュレータは何でも吐き出してくれる夢の機能ではなくて、
現実の物理法則の一部を(時には疑似的に)再現する計算機である。
その限界がどこにあるかを把握するのが習熟の第一歩ではないだろうか。
まあ、どんなことについてもそうだけど。
そういう意味では、DCとDHはとてもPoserらしい機能だと言えるかもしれない。

で、自分はと言えばAさんに専用テクスを強要されているのであった。
(端切れ屋にでも行ってこようかな……)
■頂いたコメント■
›› Read More
アンビエント・オクルージョン / 1996年11月05日
ライティングのまとめ、最後に取り上げるのはアンビエント・オクルージョンだ。
Poserでは環境閉塞という名前で呼ばれているが、この微妙な翻訳はPoserだけのものなので、
3DCGで一般的な「アンビエント・オクルージョン(Ambient Occlusion、以下AO)」と
呼ぶことにする。直訳すると「環境光の遮断」というところだろうか。
AOは正確にはライティングに関わる技術ではなく、拡散IBLライトの回のクイズで答えたように
マテリアル(材質設定)の一種である。ただ、拡散IBLライトを使用する時には必須といっても
過言ではないので、ここで基本的な使い方をまとめておくことにする。
AOを使うには二通りの方法がある。まずは基本的な、マテリアルとしての使い方から。
まずはマテリアルルームに入り、AOを適用したいマテリアルを選択して、ウィンドウ右の
Wacro「環境閉塞のセットアップ」をクリックする。
すると現在選択しているマテリアルの拡散値と鏡面値に「環境閉塞」というノードが接続され、
レンダリングオプションの「レイトレーシング」のチェックが(手動設定の場合)
ONに変更される。

とりあえず、そのままテストレンダしてみよう。
AOを適用したマテリアルの、周囲が狭くなっている箇所に影が落ちているはずだ。

このように、AOは「狭くなっている部分を自然に暗くする」という材質設定である。
Wacroを使用せずにAOを適用する場合は、新規ノード>ライト>レイトレース>環境閉塞で
ノードを作成し、拡散値と鏡面値に接続しよう。
代替拡散色や代替鏡面色に何らかのノードを接続している場合は、そちらの入力にも
AOノードを接続してAOの計算結果を反映させるようにしておくといい。

それでは、AOがどのようにして周囲を「狭い」と判別しているのか、その仕組みを見てみよう。
レイトレーシングを使用しているとき、カメラの視点から画面の各ピクセルに向かって
レイ(視線)が飛ばされる。そのレイはAOの適用されているオブジェクトに衝突すると、
その地点から半球状のランダムな方向に、サンプル用のレイを数本飛ばす。
サンプルレイは設定された一定の距離を進み、その間に何らかのオブジェクトに衝突すると
「障害物アリ」だと判断する。そして、サンプルレイがどれだけ障害物アリになったかで
その地点の密集度を判断し、その狭い分だけを黒く塗りつぶすのだ。
そしてこれを画面に映る全てのピクセルについて繰り返す。

ここで、最大距離はサンプルレイが探索の為に進む距離(単位は環境設定による)、
サンプルはレイの衝突地点から飛ばすサンプルレイの本数である。
サンプルを増やすと精度は向上するが、当然レンダリング時間は伸びるので注意しよう。
強度は塗りつぶす強さで、値を1にするとサンプルレイが全て「障害物アリ」になったとき
その地点を完全な黒色に塗りつぶす。
ここで注意したいのが前回説明した非平面ポリゴンとレイバイアスである。
非平面ポリゴン上で上記のような障害物判定を行うと、Poserのレイトレースは
非平面ポリゴン自身を障害物だと判断してしまうので、すべて「障害物アリ」、つまり
強度が1なら真っ黒に塗りつぶされてしまうことになる。そこで、レイバイアスで
レイが非平面の谷間を脱出するまでサンプルレイを飛ばさないように設定してやるのだ。

レイバイアスの単位も自分が環境設定で設定している単位による。
距離は非平面を脱出できるぐらいあれば充分である。あまり大きく設定しすぎると、
サンプルレイを飛ばす基準位置が本当に判定しなければならない障害物より遠ざかってしまう。
ノイズが発生しない距離でなるべく小さめにするといいだろう。

マテリアルルームでAOを設定する場合、品質を細かくセッティングできるのが利点だが、
逆に適用したいマテリアルに全てにノードを追加しなければならないので結構な手間になる。
特に拡散IBLライトを使用すると、全ての材質に影を落とす必要が出てくるので
これがかなり面倒臭い。そういうときは、マテリアルではなくライトにAOを設定する。

ライトの特性パレットで環境閉塞のチェックをONにすると、マテリアル設定に関わらず
全てのオブジェクトにAOの効果が適用される。この時、最大距離、レイバイアス、
そしてサンプル数はシーンAOオプションダイアログで、強度は上のダイヤルで設定する。
AOをライトに適用する場合、計算はライトごとに行われるので
AOの適用されたライトが当たらない部分にはAOの効果は適用されない。
だからといってシーン内にやたらと多くのライトを読み込み、そのすべてにAOを適用すると
レンダリング時間が飛躍的に増大するので、その場合はマテリアルで適用するようにしよう。
ライトの特性パレットでAOを適用するメリットは、すべてのオブジェクトに対する設定を
一括で指定できるところだ。ただし、シーン内のオブジェクトの大きさに差がある場合、
最大距離やレイバイアスをどのオブジェクトに合わせるかで効果はガラリと変わってしまう。
小さいオブジェクトに合わせると大きなオブジェクトには不十分だし、
大きなオブジェクトに合わせると小さなオブジェクトには暗過ぎるばかりか、
非平面ポリゴンがある場合にはノイズを回避できなくなる。
また、ライトとマテリアルの両方でAOを適用した場合、効果は二重に適用されてしまう。
レイバイアスや最大距離を似たような数値で設定すると、暗くなり過ぎるので気をつけよう。
逆に拡散IBLライトを使用する時など、ライトのAOは背景小道具のような大きなオブジェクトを
基準に数値を設定し、人物の服や目鼻など小さなパーツの陰影はマテリアル側のAOで
描画するなど、効果的に使い分けるといいだろう。
また、ライトにAOを適用した場合、あまり効果を適用したくない部分(特に髪など
非常に入り組んだところ)まで懇切丁寧に計算するので、レンダリング時間がとてつもなく
かかってしまうことになる。
もし、髪の毛などどうしてもAOを適用したくないオブジェクトがあるのなら、その
オブジェクトの特性パレットで「レイトレースで表示」のチェックを外してしまうのも有効だ。
「レイトレースで表示」のチェックが外れているオブジェクトはレイからは見えなくなり、
あらゆるレイトレーシング計算の対象外になる。

ただ、例えば髪の「レイトレースで表示」のチェックを外した場合、当然頭皮なども
髪が存在しないものとしてAOの判定を行うので、若干リアリティは低下するだろう。
また、影にレイトレースシャドウを使用している場合は、影も落とさなくなってしまうので
要注意。
***
さて、長らく続いたライティングのまとめも今回で一応終わりということになる。
もちろん新しく知ったネタや未検証だった部分など、今までと同じく思い出したように
取り上げることもあるだろうが、まずはこれで一区切り。
とりあえず一通りのことは網羅できたと思うが、少しはお役に立てただろうか。
まだまだ自分も未熟だし、出来ない手法、解明できていない現象、伝えきれていない言葉が
山のように残っている。それでも、何かほんの少しでも誰かの絵作りに影響を与えられたなら、
そして喜んでもらえたのなら、こんなに幸せなことはないと思う。
果たして。
これがもともとレタッチTipsの前フリだったなんて、今更誰が信じるだろうか(爆)
■頂いたコメント■
Poserでは環境閉塞という名前で呼ばれているが、この微妙な翻訳はPoserだけのものなので、
3DCGで一般的な「アンビエント・オクルージョン(Ambient Occlusion、以下AO)」と
呼ぶことにする。直訳すると「環境光の遮断」というところだろうか。
AOは正確にはライティングに関わる技術ではなく、拡散IBLライトの回のクイズで答えたように
マテリアル(材質設定)の一種である。ただ、拡散IBLライトを使用する時には必須といっても
過言ではないので、ここで基本的な使い方をまとめておくことにする。
AOを使うには二通りの方法がある。まずは基本的な、マテリアルとしての使い方から。
まずはマテリアルルームに入り、AOを適用したいマテリアルを選択して、ウィンドウ右の
Wacro「環境閉塞のセットアップ」をクリックする。
すると現在選択しているマテリアルの拡散値と鏡面値に「環境閉塞」というノードが接続され、
レンダリングオプションの「レイトレーシング」のチェックが(手動設定の場合)
ONに変更される。

とりあえず、そのままテストレンダしてみよう。
AOを適用したマテリアルの、周囲が狭くなっている箇所に影が落ちているはずだ。

このように、AOは「狭くなっている部分を自然に暗くする」という材質設定である。
Wacroを使用せずにAOを適用する場合は、新規ノード>ライト>レイトレース>環境閉塞で
ノードを作成し、拡散値と鏡面値に接続しよう。
代替拡散色や代替鏡面色に何らかのノードを接続している場合は、そちらの入力にも
AOノードを接続してAOの計算結果を反映させるようにしておくといい。

それでは、AOがどのようにして周囲を「狭い」と判別しているのか、その仕組みを見てみよう。
レイトレーシングを使用しているとき、カメラの視点から画面の各ピクセルに向かって
レイ(視線)が飛ばされる。そのレイはAOの適用されているオブジェクトに衝突すると、
その地点から半球状のランダムな方向に、サンプル用のレイを数本飛ばす。
サンプルレイは設定された一定の距離を進み、その間に何らかのオブジェクトに衝突すると
「障害物アリ」だと判断する。そして、サンプルレイがどれだけ障害物アリになったかで
その地点の密集度を判断し、その狭い分だけを黒く塗りつぶすのだ。
そしてこれを画面に映る全てのピクセルについて繰り返す。

ここで、最大距離はサンプルレイが探索の為に進む距離(単位は環境設定による)、
サンプルはレイの衝突地点から飛ばすサンプルレイの本数である。
サンプルを増やすと精度は向上するが、当然レンダリング時間は伸びるので注意しよう。
強度は塗りつぶす強さで、値を1にするとサンプルレイが全て「障害物アリ」になったとき
その地点を完全な黒色に塗りつぶす。
ここで注意したいのが前回説明した非平面ポリゴンとレイバイアスである。
非平面ポリゴン上で上記のような障害物判定を行うと、Poserのレイトレースは
非平面ポリゴン自身を障害物だと判断してしまうので、すべて「障害物アリ」、つまり
強度が1なら真っ黒に塗りつぶされてしまうことになる。そこで、レイバイアスで
レイが非平面の谷間を脱出するまでサンプルレイを飛ばさないように設定してやるのだ。

レイバイアスの単位も自分が環境設定で設定している単位による。
距離は非平面を脱出できるぐらいあれば充分である。あまり大きく設定しすぎると、
サンプルレイを飛ばす基準位置が本当に判定しなければならない障害物より遠ざかってしまう。
ノイズが発生しない距離でなるべく小さめにするといいだろう。

マテリアルルームでAOを設定する場合、品質を細かくセッティングできるのが利点だが、
逆に適用したいマテリアルに全てにノードを追加しなければならないので結構な手間になる。
特に拡散IBLライトを使用すると、全ての材質に影を落とす必要が出てくるので
これがかなり面倒臭い。そういうときは、マテリアルではなくライトにAOを設定する。

ライトの特性パレットで環境閉塞のチェックをONにすると、マテリアル設定に関わらず
全てのオブジェクトにAOの効果が適用される。この時、最大距離、レイバイアス、
そしてサンプル数はシーンAOオプションダイアログで、強度は上のダイヤルで設定する。
AOをライトに適用する場合、計算はライトごとに行われるので
AOの適用されたライトが当たらない部分にはAOの効果は適用されない。
だからといってシーン内にやたらと多くのライトを読み込み、そのすべてにAOを適用すると
レンダリング時間が飛躍的に増大するので、その場合はマテリアルで適用するようにしよう。
ライトの特性パレットでAOを適用するメリットは、すべてのオブジェクトに対する設定を
一括で指定できるところだ。ただし、シーン内のオブジェクトの大きさに差がある場合、
最大距離やレイバイアスをどのオブジェクトに合わせるかで効果はガラリと変わってしまう。
小さいオブジェクトに合わせると大きなオブジェクトには不十分だし、
大きなオブジェクトに合わせると小さなオブジェクトには暗過ぎるばかりか、
非平面ポリゴンがある場合にはノイズを回避できなくなる。
また、ライトとマテリアルの両方でAOを適用した場合、効果は二重に適用されてしまう。
レイバイアスや最大距離を似たような数値で設定すると、暗くなり過ぎるので気をつけよう。
逆に拡散IBLライトを使用する時など、ライトのAOは背景小道具のような大きなオブジェクトを
基準に数値を設定し、人物の服や目鼻など小さなパーツの陰影はマテリアル側のAOで
描画するなど、効果的に使い分けるといいだろう。
また、ライトにAOを適用した場合、あまり効果を適用したくない部分(特に髪など
非常に入り組んだところ)まで懇切丁寧に計算するので、レンダリング時間がとてつもなく
かかってしまうことになる。
もし、髪の毛などどうしてもAOを適用したくないオブジェクトがあるのなら、その
オブジェクトの特性パレットで「レイトレースで表示」のチェックを外してしまうのも有効だ。
「レイトレースで表示」のチェックが外れているオブジェクトはレイからは見えなくなり、
あらゆるレイトレーシング計算の対象外になる。

ただ、例えば髪の「レイトレースで表示」のチェックを外した場合、当然頭皮なども
髪が存在しないものとしてAOの判定を行うので、若干リアリティは低下するだろう。
また、影にレイトレースシャドウを使用している場合は、影も落とさなくなってしまうので
要注意。
***
さて、長らく続いたライティングのまとめも今回で一応終わりということになる。
もちろん新しく知ったネタや未検証だった部分など、今までと同じく思い出したように
取り上げることもあるだろうが、まずはこれで一区切り。
とりあえず一通りのことは網羅できたと思うが、少しはお役に立てただろうか。
まだまだ自分も未熟だし、出来ない手法、解明できていない現象、伝えきれていない言葉が
山のように残っている。それでも、何かほんの少しでも誰かの絵作りに影響を与えられたなら、
そして喜んでもらえたのなら、こんなに幸せなことはないと思う。
果たして。
これがもともとレタッチTipsの前フリだったなんて、今更誰が信じるだろうか(爆)
■頂いたコメント■
›› Read More