自分で写真を撮ってみる。gtofuji@gmail.comこのテキストはR14用です。4Dを使っているユーザーは照明基礎を参照して下さい。1ライトオブジェクトこれからライトについて説明します。それではサンプル041aを開いて、「ビューをレンダリング」してみて下さい。図041-1最初の一歩とはいえ、何とも殺風景な絵です。このシーンにはまだライトオブジェクトがありません。ライトがないのになぜオブジェクトが見えているのでしょうか。ライトがなければ何も見えないはずなのに。それは、「デフォルトライト」という仮のライトが働いているからです。何も見えないと不便なので、ライトがない場合は自動的にカメラの左側にデフォルトライトが発生してシーンを照明するようになっています。デフォルトライトはオブジェクトに表示されないので、明るさや色を変更できません。ライトオブジェクトを追加したり、GI(グローバルイルミネーション)設定すると自動的に消えます。デフォルトライト」のチェックを外して下さい。ライト」を選択して、シーンにライトオブジェクトを追加しましょう。4Dのメニューには7種類のライトが用意されていますが、全て同じオブジェクトです。設定が違っていたり、エクスプレッションがついているだけなので、どのライトから始めても目的とするライトを作れます。追加したライトはシーンの原点(つまり床の中心)に発生します。名前を「light」に変更し、「light_base」オブジェクトの子にし、位置を合わせ、「ビューをレンダリング」してみて下さい。図041-3まだまだですが、ライトの位置がカメラから天井に移動したことで、少しは立体感がでました。ここでオブジェクトの位置を合わせるために、「reset_pos_rot」というカスタムスクリプトを使いました。/」というショートカットが割り当てられています。これをインストールするには、以下のページの説明にしたがって下さい。次に、ライトが影を落とすように設定します。4Dのライトには3種類の影がありますが、一番よく使うのは「エリア」です。「シャドウマップ」は、一番計算が速いので昔はよく使いましたが、「細かい影を描けない」とか「無限遠光に使えない」等の欠点があるので現在はほとんど使いません。「レイトレース」は、エリアより速い代わりに「影のエッジがシャープすぎる」という欠点があります。したがって、弱い光源を大量(数百個以上)に置く場合等に使います。それでは、「light」を選択し、属性マネージャの「一般」タブで「影のタイプ」を「エリア」に変更し、「ビューをレンダリング」して下さい。図041-4影の中が真っ黒ですが、影が生じたことで床に対する接地感がでました。従来であれば、この影の中に陰影を付けるため、補助的なライトを何個か追加しました。Prime」ではこの手法を使いますが、GIを使えばより簡単に正確な陰影を表現できます。したがって、今回は補助ライトを追加せずに、話を次に進めます。現在の影をよく見ると形がいびつです。これは、エリアライトの形状と向きがシーンに合っていないからです。現在エリアライトは正方形で、垂直に立っています。これでは自然な影になりません。ライトの「詳細」タブで「エリア形状」を「球」に変更して下さい。「エリア形状」を「球」にしておけば、ライトの方向を気にする必要がありません。したがって、ライトの「放射タイプ」が「全方向」の場合、普通はエリア形状を「球」にします。「詳細」タブで「サイズX、Y、Z」を「100」に変更して下さい。これは、エリアライトの上端が天井に干渉するのを防ぐためです。エリアライトの一部がオブジェクトの内部に入った場合、その部分は「シーン全体に対して影を落とす」ことになり、結果的に砂目状のノイズが発生します。次に、ライトから放射された光が減衰するように設定します。R12以降、レンダリングの計算をリニア空間で実行するようになっているので、光の減衰は現実と同じように「(距離の)2乗に反比例」を選択します。R11以前のファイルを開いた場合等はリニア空間を使わない古い設定になってしまうので、必ずプロジェクト設定を開いて、「リニアワークフロー」をチェックし、「入力カラープロフィル」を「リニア」に切り替えて下さい。「300」に変更し、「ビューをレンダリング」して下さい。図041-6依然として影の中は真っ黒ですが、壁の上部に比べて床が暗くなり、ライトの存在感が増しました。これでライトの設定は終わりです。3DCGにおけるライトの働きは、簡単に言うなら「光を放射すること」ですが、もう少し詳しく言うと「直接光を出すこと」です。現実世界でもライトは直接光を放射するのでこの点は同じです。現実世界では、壁に当たった光は自然と反射され「間接光」になります。この間接光による照明が「間接照明」ですが、「レイトレーシング」の計算では壁に当たった光はそこで消えてしまいます。間接光は発生せず、したがって間接照明も表現されないわけです。これが、「影(陰)の中が真っ黒」である理由です。これは、絵的には大問題なのですが、ライトオブジェクトの仕事は「直接光」を出すことだけであり、その後「間接光」がどうなるかまでは決められません。理由は、間接光の性質が「マテリアル」に大きく左右されるからです。そこで、次のステップでは間接照明を扱うための機能である「GI(グローバルイルミネーション)」について説明し、影の問題を解決します。間接光とマテリアルの関係については、次の章や、「GI基礎」の講習で詳しく説明します。4GI(グローバルイルミネーション)次に、GIを使ってレンダリングしてみます。GIという言葉の元々の意味は、「光が持っている性質を全て(グローバルに)計算して、自然な照明(イルミネーション)を再現する」ということでした。したがって、基本的にはレイトレーシングによる光の鏡面反射や屈折の表現もGIに含まれます。現在3DCGの世界で使われる「GI」という言葉はもう少し限定されていて、パストレーシングによる「オブジェクト間の光の相互反射」または「間接照明」を意味します。いうわけで、このテキストでも「GI」と「間接照明」をほぼ同義の言葉として使います。技術の進歩とともに「GI」という言葉の意味も変っていくと思われるので、この点は注意してください。それでは、レンダリング設定で「特殊効果」から「グローバルイルミネーション」を選択し、「ビューをレンダリング」して下さい。図041-7「明るすぎる」という問題があるものの、ずいぶんリアルな絵になりました。GIの計算は、レイトレーシングの計算に比べて時間がかかります。私のMacBookAirでは、ステップ3の計算に2秒しかかかりませんでしたが、GIの計算には13秒もかかりました。一般的に、GIの計算には単純なレイトレーシングの計算の数十倍の時間がかかります。ステップ3のシーンで影のタイプを「レイトレース」にすると1秒以下で計算が終わります。ここ数年で「単純なレイトレーシング」を使う機会はかなり減りました。モーションブラー」といった特殊効果を使うことが多くなり、これらは、GI程ではないにしてもやはり「単純なレイトレーシング」の数倍の計算時間がかかります。これらの計算には「分散レイトレーシング」という技術を使うのですが、ここでは「複雑なレイトレーシング」と呼ぶことにしましょう。複雑なレイトレーシングを組み合わせてシーンを作っていくと、いつの間にかGIを使うのと変らない計算時間がかかるようになり、「これならGIを使っても大差ないな」という「消極的な理由」から私はGIを使うことが多くなりました。一度GIを使ってしまうともうレイトレーシングには戻れません。GIで得られる自然な絵をレイトレーシングの機能だけで得るのは不可能だからです。GIを使った方が簡単にシーンを作成できます。これは、現実には存在しない「補助的なライト」や「補助的なマテリアル、テクスチャ」を置く必要がないからです。GIを使いこなすための基本は、「GIの設定を最適化する」ことにつきます。ところがこれが難しい。GIの設定が難しいのは次のような理由があるからです。GIの計算に向いたシーンと向かないシーンでは、計算時間に数十倍の差が出る。仕事を始める前にこれを見切れないと納期や予算を見積もれません。現状ではGIを使えない場合もよくあるので、こういう場合は速い段階で仕事の内容を変えるか、断る必要があります。どんなシーンであれ、適切な設定と不適切な設定では、計算時間に数百倍の差が出る。4Dのデフォルト設定やマニュアルに書いてある設定は全く役に立ちません。このテキストでは、格段に実用的な設定を説明しますが、それでも万能ではありません。最適な設定は、シーンの構成や仕事の内容によって大きく変わるからです。この部分は各ユーザが努力して調整するしかありません。このような性質から、GIの計算において「速いコンピュータを買う」というのはほとんど意味がありません。「速い」と言ってもせいぜい5倍です。これを10台買っても50倍に過ぎません。速いコンピュータを10台並べても、「最適な設定」には全くかなわないのです。速いコンピュータを買うと「コンピュータが速いから、GIの設定は適当でいいだろう」という「慢心」や「油断」が生じ、ロクな絵を作れない場合がよくあります。GIの多くのパラメータに「最適値」があり、それより大きくしても小さくしても計算時間が長くなる。ここがGIの一番難しいところです。href="042.html">で詳しく解説します。アニメーションを作るのが難しい静止画もアニメーションも基本的な設定方法は同じです。GIのアニメーションでは計算誤差による「ちらつき」が発生するので、これを抑えるためにより的確な設定が必要になります。GIのパラメータを理解する前にアニメーションを作っても全く勉強にならないので、まずは自由自在に静止画を作れるようになることを目標とするといいでしょう。532bitの画像フォーマット(HDR)ここでは、ステップ4で残っていた「明るすぎる」という問題を解決します。「明るすぎる」という問題は、画像フォーマットを32bit(HDR等)にすることで簡単に解決できます。従来の8bitや16bitの画像フォーマット(JPEGやPNG、QuickTime等)を使う場合、シーンの明るさはレンダリング前に調整しておく必要がありました。理由は、これらのフォーマットが「白より明るい色を記録できない」からです。言い換えると、これらのフォーマットで絵の中の白く飛んでしまった部分を後から調整するのは不可能でした。32bitのフォーマットを使うと、この「白く飛んでしまった部分」を後からどうにでも調整できるのです。それではやってみましょう。レンダリング設定の「保存」タブで、「ファイル」に適切なファイル名を指定し、「フォーマット」を「Radiance(HDR)」に変更し、「画像表示にレンダリング」を実行します。図041-8ここで画像表示ウインドウを見ると、ステップ4でレンダリングした「明るすぎる」画像が表示されているはずです。ウインドウ右にあるフィルタ機能を有効にし、「露出」の値をたとえば「-1」にすると、全体が暗くなり、球体の上部や壁の上部等の白く飛んでいた部分の色が正しく表示されるはずです。図041-9また、露出の値をプラスにすれば、立方体の陰の中の暗い部分が明るくなります。ここでガンマを変更することもできます。このように明るさを大きく変更しても階調が粗くなることはありません。このように、HDRを使えばシーンの明るさを気にせず作業を進められます。4Dの画像表示でもできますし、PhotoshopやAfterEffects等の画像編集ソフトでもできます。したがって、アニメーションを作る場合でも、いきなりQuickTime等でムービーファイルを書き出すのではなく、一度HDRの連番画像で保存し、各種の調整をした後でムービーに変換した方が効率よく作業を進められると思います。