Skip to content

カテゴリ: 基礎

Cinema 4Dベーシック前編

Cinema 4Dベーシックでは、Cinema 4Dを触ったことがない方向けのトレーニングになっていて以下のことを学びます。

  • Chapter 1. Cinema 4D のレイアウトについて
  • Chapter 2. モデリングの下準備
  • Chapter 3. フレームのモデリング
  • Chapter 4. クッションのモデリング
  • Chapter 5. マテリアル
  • Chapter 6. 背景作成

チュートリアルでは下記の画像のデザイナーズチェアのモデリングから、マテリアル設定、ライティング、レンダリングを行います。

スクリーンショット 2016-06-27 10.10.52

R16 マテリアル基礎01- 基本的なチャンネル

R16 マテリアル基礎

レベル/ 対象者:基礎/CINEMA 4Dを少し使える人。
対象ソフトウエア、プラグイン:CINEMA 4D R16
冨士 俊雄/ gtofuji@gmail.com
章番号 題名 内容、及び関連する章 作成日/注記
025 1_基本的なチャンネル 2015.5.7

Step 1

はじめに

  一般的に、「絵」の品質は多くの設定の組み合わせによって決まります。これは別に3DCGに限ったことではなく、絵画や写真の場合も同じです。どの設定が一番重要か、またどの設定が一番難しいかは、制作者の考えや作品によって大きく変わりますが、大体次のような順番になると私は考えています。1. 照明とカメラ

絵を作る時に一番基本となるのは、「照明」と「カメラ」です。これは、「光」と「目」に対応します。この二つがなければ、そもそも絵は成立しません。

そして、この二つを自分のイメージ通りに設定できれば、他に何の設定もしなくても、十分な品質の絵を作ることができます。

逆に、もしこの二つの設定がおかしければ、他の部分をどんなにていねいに設定しても、いい絵を作ることはできません。

美術の授業では、最初に「石膏デッサン」を行いますが、これは照明とカメラだけで絵を作るための訓練だと言えます。

図025-1

サンプル025a のフレーム0

 

2. マテリアルとアニメーション

照明とカメラの次に重要なのは、「マテリアル(質感、材料)」です。

照明とカメラは、シーン(劇場や舞台)に属するもので、オブジェクト(演技者)の属性ではありません。それに対して、マテリアルは個々のオブジェクトの質感を説明します。

また、映像を作る場合は「アニメーション(演技)」もオブジェクトを説明するための重要な属性です。

マテリアルとアニメーションをイメージ通りに設定できれば、多様な表現が可能になります。映像の場合は、「音」も同じぐらい重要なのですが、これはCINEMA 4Dでは作れません。

美術の授業では、次の段階で「静物デッサン」を行いますが、これはガラスや布、金属、果物といった多様な質感を描き分けるための訓練だと言えます。

図025-2a、b

左は、中央の球体にガラスのマテリアルを(フレーム1)、右は発光するマテリアルを適用した例(フレーム2)。

 

 

3. テクスチャとモデリング

オブジェクトの「ディティール(詳細)」を説明するための補助的な属性が「テクスチャ」と「モデリング」です。これは、言ってみれば演技者が着ている衣装や舞台のセットのようなものです。

ただし、ここで言う「テクスチャ(模様)」は、手で描いたりカメラで撮影したテクスチャに限定します。ノイズやグラデーション等のシェーダで作ったテクスチャは、マテリアルの側に含めます。

また、ここで言う「モデリング」は、特に「細部のモデリング」に限定します。オブジェクトを作って組み合わせること自体は含めません。

テクスチャやモデリングは、リアルな絵を作るために不可欠ですが、「照明」や「マテリアル」に優先するものではありません。

図025-3a、b

左は、中央の球体に画像を適用した例(フレーム3)。右は詳細なモデリングを追加した例(フレーム4)。右の絵のポリゴンを見る(025-3c)

 

この章では、マテリアルマネージャと、よく使うチャンネルについて説明します。

 

 

Step 2

マテリアルマネージャとレイヤ

 CINEMA 4Dでは、マテリアルマネージャを使ってマテリアルを作成し、管理します。マテリアルの基本的な操作方法は次の通りです。 図025-4

1. 新規マテリアルを作るには、マテリアルマネージャのメニューから「ファイル -> 新規マテリアル」を選択します。

また、空いている部分をダブルクリックして作ることもできます。

マテリアルのプレビューをダブルクリックすると、「マテリアル編集」ウインドウが開きます。マテリアル編集は古いインターフェイスですが、マテリアル専用に作られているので、素早く作業できます。

2. マテリアルの名前を変えたい場合は、名前をダブルクリックします。

また、マテリアル編集や属性マネージャで変更することもできます。

3. マテリアルを複製するには、「controlキー」を押しながらマテリアルをドラッグします。

また、普通にコピー&ペーストすることもできます。

4. マテリアルを消去したい場合は、「deleteキー」を押します。

シーンに使われていないマテリアルを消去したい場合は「ファンクション -> 未使用マテリアルを消去」を使います。

5. マテリアルをオブジェクトに適用するには、マテリアルをオブジェクトマネージャに表示されたオブジェクト名の上にドラッグ&ドロップします。

また、エディターのオブジェクトに直接ドラッグ&ドロップしても構いません。

6. オブジェクトに既にマテリアルが適用されている場合、マテリアルをテクスチャタグの上にドラッグ&ドロップすると、リンクが置き換えられます。

7. オブジェクトに適用されているテクスチャタグを選択すると、リンクされているマテリアルがオレンジ色の枠で囲まれます。

逆にマテリアルからリンクされているオブジェクトを調べたい場合は、マテリアル編集の「適用オブジェクト」ページを使います。

8. エディター上で、オブジェクトにはマテリアルのプレビューが表示されますが、これの解像度を上げたい場合や、アニメーションを反映させたい場合はマテリアル編集の「エディタ」ページを使います。

9. マテリアル編集のプレビューの大きさや表示を変えたい場合は、プレビューを右クリックします。

 

マテリアルをグループ分けしたい場合は、「レイヤ」機能を使います。

CINEMA 4Dのレイヤは、オブジェクトやマテリアル、タグ、キー等すべての機能を一元的に管理できますが、特にマテリアルはレイヤ以外に管理する方法がないのでよく使います。

図025-5

 

1. グループを作りたい場合は、まずマテリアルを選択し、マテリアルマネージャのメニューから「ファンクション -> 新規レイヤに追加」を選択します。

すると、マテリアルマネージャにタブが表示され、タブの左上とマテリアルの左上に同じ色が付きます。

あるタブを選択すると、そのレイヤに含まれているマテリアルだけが表示されます。

また、左端にある「全て」タブを選択すると全てのマテリアルが表示され、「レイヤなし」を選択すると、レイヤに含まれていないマテリアルが全て表示されます。

2. レイヤの名前を変えたい場合は、タブをダブルクリックします。

また、レイヤマネージャでレイヤ名をダブルクリックしても構いません。

3. 別のマテリアルグループを作りたい場合は、同じように「ファンクション -> 新規レイヤに追加」を選択します。

4. 新しく作ったマテリアルを既存のレイヤに含めたい場合は、「ファンクション -> レイヤに追加」を選択するか、マテリアルをタブにドラッグアンドドロップします。

また、マテリアルをレイヤマネージャのレイヤ名にドラッグ&ドロップしたり、レイヤ名をマテリアルにドラッグ&ドロップしてレイヤに含めることもできます。

また、あるレイヤを選択した状態で新規マテリアルを作ると、初めからそのレイヤに含まれます。

5. レイヤ名の左にあるカラーボタンをダブルクリックするとレイヤのカラーを変更できます。

 

 

Step 3

カラー

  「カラー」チャンネルは、マテリアルの基本的な性質の一つです。マテリアルには多くのチャンネルがありますが、実は一本の光に注目した場合、その光には「前に進む(透過する)」か「止まる(消える)」か「後ろに戻る(反射される)」かの三つの選択肢しかありません。それに、RGBの色によって結果が変わるとか、透過、反射する時にあるルールにしたがって向きが変わるといった性質を組み合わせて、複雑なマテリアルを表現しているのです。

まず、カラーチャンネルは「ランダムに反射される光」を表現し、拡散反射(ディフューズ)ともいいます。

光は、基本的にはライトから飛んできますが、GI(グローバルイルミネーション)を使っている場合は、周囲のオブジェクト(マテリアル)からも飛んできます。

図025-6

サンプル025bのフレーム0

 

色に関しては、カラーチャンネルが白くても、青い光しか入ってこなければ、青い光しか反射されません。

また、カラーチャンネルが赤ければ、白い光が入ってきても、赤い光しか反射されません。

図025-7a、b

左はライトの色が(フレーム21)、右はカラーの色が最終的な色(絵の色)に影響している(フレーム22)。

 

次に、光がランダムに反射されるといっても、完全にランダムなわけではありません。マテリアルの表面に細かい凸凹があると、光をライトの方に反射しやすくなります。

キャッツアイなどはその極端な例ですが、布やセラミック等自然界に存在する多くのマテリアルもこの性質を少なからず持っています。

この性質を表現するには「オレン・ネイアー」という照明モデルに切り替え、「表面粗さ」の値を大きくします。

図025-8a、b

左は表面粗さが0(フレーム14)、右は200(フレーム15)。

現実世界において、全ての物質はカラーの性質を持っています。必ず設定して下さい。

 

 

Step 4

発光

 「発光」チャンネルも、マテリアルの基本的な性質の一つです。私はカラーチャンネルの説明で「光には三つの選択肢しかない」と書きましたが、発光はこれには含まれません。発光は「何も無いところから光が生まれる」現象です。いきなり光が生まれるので、光が飛んでいく方向は完全にランダムです。つまり、どこから見ても同じ色に見えます。

また、周囲から入射する光には影響されません。

図025_9

フレーム1

図025-10a、b

左はライトなし(フレーム23)、右はライトのカラーが青い場合(フレーム24)

 

現実世界において、全ての物質が発光の性質を持っているわけではありません。しかし、発光するものは小さくても目立ちます。これは発光するものが人間にとって有益だったり危険だったりするからです。

本来なら、発光するものはライトで表現するのですが、複雑な形をしていたり、数が多い場合は発光するマテリアルで表現する方が簡単です。GIを使えば、発光するマテリアルでシーンを照明できます。

絵作りにおいて、発光するマテリアルの働きはライトと同じです。

冒頭に書いたように、ライトはマテリアルよりも重要な設定ですから、そういう意味では、発光チャンネルはマテリアルの中でも最も重要なチャンネルだと言えます。

 

 

Step 5

透過、屈折

 透過チャンネル自体はR12から変わっていませんが、屈折によって自動的に生じる鏡面反射の性質を反射チャンネルで変更できるようになっています。「透過」は、「透過する光」を表現するチャンネルで、マテリアルの基本的な性質の一つです。

透過とは、マテリアルの屈折率が1.0の場合で光の方向は変わりません。背後のオブジェクトが透けて見えるので、網戸やストッキングのようなマテリアルを表現できます。

「屈折」は、屈折率が1.0以上(以下)の場合で、光の方向が変わると同時にフレネルの法則に従って鏡面反射が生じます。これは、ガラスや透明な液体を表現する場合に使います。

図025-11a、b

左は透過するマテリアル(フレーム2)。右は屈折するマテリアル(フレーム3)。

 

そして、透過は基本的な性質の中で一番設定が難しいチャンネルでもあります。

その理由はいろいろあるのですが、大体以下の通りです。

1. 内部が見えるので、内部まできちんとモデリングし、オブジェクトを閉じなければならない。

また、隣のオブジェクトと面が重なると汚くなるので、隙間を開けるか、食い込ませる必要がある。つまり、マテリアル以前にモデリングの段階で難しい。

図025-12a、b

左は内部に不正な面を含むオブジェクト(フレーム15)。右は正しいオブジェクト(フレーム16)。

 

2. 屈折が単独で起こることはなく、必ず反射(カラーや鏡面反射、スペキュラ)が生じる。しかもそれらの割合は、光が入射する角度に応じてフレネルの法則に従って変化する。

  図025-13a、b

左は屈折だけのマテリアル(フレーム3)。右は反射を含むマテリアル(フレーム13)。

 

3. 屈折と鏡面反射が同時に複数回起こるので、絵が複雑になり、どのパラメーターを修正していいのか判らない。

同時に、レンダリングが重くなり、試行錯誤に時間がかかる。

 

4. 簡略化した物理モデルを使っているため、「水が入ったグラス」等を普通に表現できない。

つまり、屈折率は本来物体の内部に指定するものだが、3DCGでは物体の表面に指定している。

その結果、一つの面が三つ以上の物体に接する場合を扱えない。

図025-14a、b

左は普通に作ったオブジェクト(フレーム18)。右は面をずらしたオブジェクト(フレーム19)。

 

5. 透過する距離によって効果が変わる「吸収色」という設定がある。

他のチャンネルでは特殊効果でしか使わないような機能を透過は普通に使う。

図025-15

フレーム20

 

透過する光は、必ずオブジェクトに「入る時」と「出る時」の2回計算されます。さらに、屈折がある場合光は「屈折」と「鏡面反射」の二本に分岐します。つまり、透過のレンダリングは、他のチャンネルよりも格段に重いのです。

特に鏡面反射は、放っておくと無限に計算がくり返され、レンダリングが終わらなくなります。これを防ぐために、CINEMA 4Dでは「レンダリング設定 -> オプション -> 鏡面反射の計算回数」をデフォルトで「5回以下」に制限しています。

しかし、これでも重いので、「オプション -> しきい値」の値を「0.5〜1.0」に上げることをお勧めします。光は屈折や鏡面反射を繰り返すうちに暗くなりますが、光がしきい値より暗くなると、そこで計算を打ち切るようになっています。

図025-16a、b

左はしきい値がデフォルトの0.1、レンダリング時間は88秒。右はしきい値が1.0、レンダリング時間は52秒(フレーム25)。

また、「ぼけた屈折」オプションを使うとすりガラスのような質感を表現できます。ただし、このオプションを使うと光がさらに分岐するため非常に計算が重くなります。

 図025-17a、b

左はぼけた屈折が0のマテリアル、レンダリング時間は35秒(フレーム19)。右はぼけた屈折が20のマテリアル、レンダリング時間は135秒(フレーム26)。

 

現実世界において、全ての物質が透過、屈折の性質を持っているわけではありません。しかし、透明なものは目立ちます。これも透明なものが人間にとって重要だからです。例えば、水や空気は透明です。また、人間の目も透明です。

ですから、透明なマテリアルを作る時には十分に時間をかけてください。

また、透明なマテリアルをリアルに作るには、写真を参考にするのが一番です。

 

R16 マテリアル基礎02- 反射

R16 マテリアル基礎

レベル/ 対象者:基礎/CINEMA 4Dを少し使える人。
対象ソフトウエア、プラグイン:CINEMA 4D R16
冨士 俊雄/ gtofuji@gmail.com
章番号 題名 内容、及び関連する章 作成日/注記
026 2_反射 2015.5.8

 

Step 1

はじめに

 鏡面反射は、R16で大きく変わりました。

まず、R15までの「鏡面反射」と「スペキュラ」チャンネルが消滅し、代わりに「反射」チャンネルが新設されました。この反射チャンネルの内部はレイヤシェーダと同じ作りになっていて、これが非常に作業性を損ねています。大きな問題点は以下の二つです。

1. 鏡面反射やスペキュラを作るのに手間がかかる。

R15までは、鏡面反射とスペキュラにはプリセットがあり、チャンネルを選択するだけで使えました。しかしR16には何もないので、毎回シェーダを作るところから始めなければなりません。

2. 反射チャンネルを複数選択、編集できない。

反射チャンネルの内部はマテリアルごとに違っているので、複数選択、編集ができません。

これらの問題は、いずれ改善されていくと思うのですが、それまでのつなぎとして以下のような対策を考えました。

1. よく使う鏡面反射やスペキュラをプリセットとして登録しておく。

2. 反射チャンネルの「全ての鏡面反射の明るさ」と「全てのスペキュラの明るさ」を複数選択、編集するためのXPressoを使う。

図026-1

サンプル026a

 

Step 2

拡散、鏡面反射

  「鏡面反射」もマテリアルの基本的な性質の一つで、「規則的に反射される光」を表現します。

その規則とは、「入射角と反射角が等しい」ということで、要は鏡の性質です。

鏡面反射は、金属やガラス、プラスチック、液体など、表面がツルツルのマテリアルには必ず発生します。 また、鏡面反射には以下のようなオプションを設定できます。

1. 反射される光の方向をランダムにする。

これは「表面粗さ」で変更します。

原理的に、鏡面反射を粗くしていくと、GIを適用したカラーチャンネルと同じになります。ただし、計算方法が違うので、計算が重く砂目状のノイズが発生します。

したがって、この機能は表面が「ちょっと粗い」金属やプラスチック、塗装面等を表現する場合に使ってください。

図026-2a、b

サンプル026b

左は表面粗さが0(フレーム1)のマテリアル。右は表面粗さが50(フレーム2)のマテリアル。

 

2. 入射角に応じて反射率を変える。

これは「フレネル」で変更します。

フレネルは、光の入射角によって反射率が変わる現象で、同時にその性質を発見した人物の名前です。

現実世界のマテリアルは全てフレネルの性質を持っていて、「正面から見るよりも、斜めから見た方が反射率は大きく」なります。

金属や木材等ではほとんどわかりませんが、透明なガラスやプラスチック、フィルムではフレネルが非常に重要になります。この性質に注意してください。

R15まで、フレネルはフレネルシェーダを使ってマニュアルで調整していましたが、R16では多くのプリセットが入っているので、ほとんどの場合ここから選択するだけで十分です。

図026-3a、b

左はフレネルなしのマテリアル(フレーム5)。右はフレネルありのマテリアル(フレーム6)。

また、フレネルには多くの金属のプリセットも入っています。

金属の場合、色を含めて反射率が変化するので、マニュアルで調整するのは大変なのですが、プリセットを使えば簡単にリアルなマテリアルを表現できます。

図026-4a、b

左はフレネルが金のマテリアル(フレーム9)。右はフレネルが銅のマテリアル(フレーム10)。

 

3. 反射角の方向のランダムさを、さらに縦方向(U方向)と横方向( V方向)で変える。

これは「異方性」モデルを使って表現します。

異方性は、マテリアルが持っている細かい繊維や傷が原因で発生します。場合によっては、結晶構造や髪の毛の束、木目のような構造で発生する場合もあり、現実世界でもよく見られます。

特に、建築やプロダクトの世界では意図的に傷をつけて異方性を持たせた材料を使うことが多く(これをヘアライン仕上げといいます)、このようなマテリアルを表現する場合に使います。

図026-5

フレーム7

 

4. 各設定をテクスチャでコントロールする。

R15まで、バンプやアルファはマテリアル全体に一つしか適用できませんでしたが、R16の反射チャンネルでは反射レイヤや内部の設定(性質)ごとにテクスチャでコントロールできるようになっています。

図026-6a、b

左は表面粗さにストライプ状のテクスチャを適用したマテリアル(フレーム3)。

右は鏡面反射レイヤそのものにマスクテクスチャを適用し、金色の鏡面反射レイヤに重ねたマテリアル(フレーム4)。

 

 

 

Step 3

反射、スペキュラ

 スペキュラも、R16で大きく変わりました。詳細については、前の鏡面反射を参照してください。

 

「スペキュラ」チャンネルは、実はマテリアルの基本的な性質ではありません。

「カラー」、「鏡面反射」、「スペキュラ」は、全て「反射される光」であり本質的には同じです。

カラーと鏡面反射の違いは、反射される方向が「ランダムか規則的か」ですが、これも表面粗さを大きくすると同じになってしまいます。

また、鏡面反射とスペキュラは両方とも規則的に反射される光です。

それでは何が違うのかというと、鏡面反射は全ての光を反射するのに対して、スペキュラはライトからの光しか反射しません。つまり、鏡面反射はスペキュラの機能を含んでいるのです。

これは、カラーがライトの光しか反射しないのとよく似ています。ただし、カラーはGIを適用することでライト以外の光も反射するようになります。

しかし、スペキュラにライト以外の光を反射させる方法はありません。

スペキュラという機能が生まれたのは、30年以上も前の話で、当時はコンピューターの速度が遅く、GIはおろか鏡面反射さえ満足に計算できませんでした。

その当時の技術で、少しでもマテリアルをリアルに見せるための方便としてスペキュラが開発されたのです。

したがって、鏡面反射やGIを普通に使えるようになった現在、スペキュラの存在意義はかなり薄れているといえます。

実際、ほとんどのシーンはスペキュラなしで作れますし、「規則的に光を反射する」という本来の目的でスペキュラを使うことはまずありません。

したがって、CINEMA 4Dを始めたばかりの人は「スペキュラを無視」して構いません。その代わり、鏡面反射をしっかり設定してください。

現在のスペキュラは、本来の目的から離れて「異方性」、「布」、「髪の毛(これはヘアマテリアルの中で使います)」等の「特殊効果」を表現するために使います。

 

まず、「スペキュラのみ」のマテリアルと「鏡面反射のみ」のマテリアルを比較すると、スペキュラのみのマテリアルにはその他のオブジェクトが、鏡面反射のみのマテリアルにはライトが映り込んでいないことがわかります。

図026-7a、b

左はスペキュラのみのマテリアル(フレーム21)。右は鏡面反射のみのマテリアル(フレーム22)。

これは、30年前の流儀が現在もデフォルトとして残っているからです。ライトは光を放射するにもかかわらず、カメラからも鏡面反射からも見えなくなっていて、ただスペキュラだけに反応します。

この問題は、ライトに可視光線を適用したり、ライトの位置に発光するマテリアルを置くことで簡単に解決できます。

こうすると、鏡面反射のみのマテリアルにもライトが写り込むので、もうスペキュラは要りません。

図026-8a、b

左はスペキュラのみのマテリアル(フレーム21)。右は鏡面反射のみのマテリアル(フレーム24)。

 

ところが、異方性などの特殊効果を使うと話が違ってきます。

異方性を計算するために鏡面反射に表面粗さをかけると、現在のコンピューターでも計算がかなり重くなります。

また、ライトの位置に非常に明るく発光するマテリアルを置いて、グラデーションを調整する必要があり、これはシーンに存在するマテリアル全てに影響します。

また、強い光がマテリアル内部に入った時に生じる回折や干渉(猫目石や真珠などのマテリアルで生じる)現象は単純な鏡面反射では再現できません。

このような特殊な状況では、スペキュラを併用した方が設定が楽で、計算が速く、きれいな絵ができます。

ただし、あくまでもメインは鏡面反射で、スペキュラは補助です。つまり、鏡面反射だけで最低限の絵ができるように設定し、足りない部分をスペキュラで補うわけです。

鏡面反射の設定が足りなかったり(ライトが鏡面反射しない等)、不正確であれば(フレネルがかかっていない等)、スペキュラをどう変えてもリアルな絵はできません。

図026-9a、b

左はスペキュラを含むマテリアル(フレーム7)。右は鏡面反射のみのマテリアル(フレーム25)。

スペキュラを細かくコントロールすると、布のような規則的な構造を持ったマテリアルや、メタリック塗装のように何層にも重なったマテリアルをリアルに表現できます。

図026-10a、b

左は布のマテリアル(フレーム27)。右はメタリック塗装のマテリアル(フレーム28)。

 

 

R16 マテリアル基礎03- 凹凸

R16 マテリアル基礎

レベル/ 対象者:基礎/CINEMA 4Dを少し使える人。
対象ソフトウエア、プラグイン:CINEMA 4D R16
 
冨士 俊雄/ gtofuji@gmail.com
章番号 題名 内容、及び関連する章 作成日/注記
027 3_凹凸   2015.5.19

Step 1

はじめに

 この章では、マテリアルの色ではなく凹凸を表現する機能について説明します。

 CINEMA 4Dのマテリアルには、凹凸を表現する機能が「バンプ」、「法線」、「変位」と三種類もあります。これらにはそれぞれ長所と短所があるので、状況に応じて適切な機能を使うようにしてください。

 オブジェクトの凸凹は、基本的にモデリングするものですが、「細かすぎる場合」や「アニメーションさせたい場合」はマテリアルで表現します。

 

1. バンプ
 バンプは、最も古くからある機能で、グレースケール画像を使ってマテリアル表面の「見た目の凸凹」を表現します。オブジェクトの形状は全く変化しません。
 簡単に細かい凸凹を表現できるので現在でもよく使います。

  図027-1a、b
サンプル027a
左はバンプを適用したマテリアル(フレーム1)。右は元になるバンプテクスチャ。

 

2. 法線
 法線は、バンプを拡張した機能で、RGB画像を使ってマテリアル表面の「見た目の凹凸」をより正確に表現します。オブジェクトの形状は全く変化しません。
 ただし、法線チャンネル用のテクスチャを作るのが面倒なので、ほとんど使いません。

  図027-2a、b
左は法線を適用したマテリアル(フレーム2)。右は元になる法線テクスチャ。

 

3. 変位
 変位は、バンプや法線と異なりオブジェクトの表面に「本当の凸凹」を作る機能です。
 オブジェクトを細かく分割する必要があり、重いですが、その分リアルなオブジェクトを表現できます。

  図027-3a、b
左は変位を適用したマテリアル(フレーム3)。右は元になる変位テクスチャ(バンプテクスチャと同じ)。

 

 

Step 2

バンプ

 木目、革や紙等細かくてランダムな凸凹は、ノイズシェーダや実写画像をバンプに適用することで十分に表現できます。

 複雑な形状のオブジェクトに細かくてランダムな実写画像を貼る場合、「立方体」投影を使うときれいに貼れます。
 また、ノイズシェーダを使うとつなぎ目や繰り返しのないテクスチャを表現できます。

  図027-4a、b
左はノイズシェーダをバンプに適用したマテリアル(フレーム4)。右はシェーダのプレビュー。

 

  図027-5a、b
左は皮の画像をバンプに適用したマテリアル(フレーム5)。右は元になる画像。

 

 

Step 3

法線

 法線は、少ないポリゴン数でリアルな外観を表現できるので、ゲームの世界で多用されています。
 しかし、法線を使うには実際に凸凹をモデリングする必要があり、CINEMA 4Dならいくらポリゴンが多くてもそのままレンダリングできるので、わざわざCINEMA 4D内部で法線テクスチャに変換することはありません。

 したがって、CINEMA 4Dで法線を使うのは以下のような場合に限られます。

3a. タイルの目地等、既にある法線テクスチャを使える場合。

3b. ZBrush等他のソフトでモデリングした情報を受け取る場合。

 ただし、可能であれば普通にモデリングしたり、変位を使ったほうがいい結果が得られます。

 

法線チャンネル用のテクスチャを作るには、実際にモデリングした凸凹をベースとなるオブジェクトと比較し、その差分を「テクスチャを焼成」タグを使ってRGB画像の形で記録します。

図027_6
サンプル027b
テクスチャを焼成タグを使って法線テクスチャを作る。

 

 

Step 4

変位

 変位チャンネルはマテリアルの機能ですが、「オブジェクトの形状を変える」という意味ではモデリングツールやデフォーマとしての働きも持っています。
 また、モデリングツールやデフォーマの場合と同じように、ポイントを動かして形状を変えるので、ポリゴンの分割数以上に細かい凸凹は表現できません。

 変位も古くからある機能です。昔はオブジェクトを十分細かく分割できず、使える状況が限られていましたが、CPUやOSが64bit化し、メモリーを大量に使えるようになった現在では手軽に使えます。

 変位を使う場合、シェーダであれ実写画像であれ変位テクスチャを用意する必要があります。そして、それをアルファチャンネルに適用すれば、簡単に変位した部分のマテリアルを塗り分けることができます。
 これも変位の利点の一つで、モデリングで形状を作る場合、ある部分のマテリアルを塗り分けるには、また別の作業が必要になります。

 図027-7
変位テクスチャをアルファチャンネルにも適用して、複数のマテリアルを重ねたオブジェクト(サンプル027aのフレーム6)。

 また、変位にはさらに三つのオプションがあります。

3a. 初期の変位は、バンプと同じようにグレースケール画像を使って上下の凸凹だけを表現していました。
 これに対して、現在の変位では法線と同じようにRGB画像を使って斜め方向の凸凹を表現できるようになっています。
 ただし、これも実際に凸凹をモデリングして差分を取る必要があり、面倒なのでほとんど使いません。

図027_8
サンプル027c
テクスチャを焼成タグを使って変位テクスチャを作る。

 

3b. 初期の変位は、オブジェクトのポイントをそのまま変位していました。
 これに対して、現在の変位にはレンダラーの内部でポリゴンを細分化する機能があります。
 これは「SPD(サブ・ポリゴン・ディスプレイスメント)」と呼ばれ、より多くのポリゴンを軽く扱えるのですが、バグが多いので使わないことをお勧めします。
 その代わり、SDS(サブ・ディビジョン・サーフェイス)で同じことができます。

  図027-9a、b
サンプル027d
左は元になる粗いオブジェクト。右は変位テクスチャ。

 

    図027-10a、b
左はSPDを使って細分化したオブジェクト(フレーム1)。右はSPDの代わりにSDSを使って細分化したオブジェクト(フレーム2)。

 

3c. 初期の変位は、マテリアルのチャンネルでだけ使えました。
 これに対して、現在の変位はデフォーマの中でも使えます。

 デフォーマには、「エディターで変形を確認できる」、「減衰機能を使える」、「XPressoで操作できる」等いろいろな利点があるので、現在ではほとんどの場合デフォーマの中で変位を使います。

 図027-11
SDSで細分化し、変位デフォーマで変形させたオブジェクト(フレーム3)。

 

 変位デフォーマにはSPDがないので、代わりに「SDS(サブディビジョンサーフェイス)」を使います。
 SDSはエディターとレンダラーで異なった分割数を指定できますが、レンダラーで細かめに分割しておくとSPDと同じように軽く多くのポリゴンを扱えます。

 また、変位デフォーマにはRGBの変位テクスチャを使うモードがないので、3a.の機能を使いたい場合は変位チャンネルを使うようにしてください。

 また、MoGraphの「シェーダ」イフェクターをデフォーマモード(ポイント)にすると、変位デフォーマと同じように使えます。
 シェーダイフェクターを使うと、「ディレイ」イフェクター等他のイフェクターの効果を重ねることができます。

 

R16 マテリアル基礎04- SSS:内部拡散反射

R16 マテリアル基礎

レベル/ 対象者:基礎/CINEMA 4Dを少し使える人。
対象ソフトウエア、プラグイン:CINEMA 4D R16
冨士 俊雄/ gtofuji@gmail.com
章番号 題名 内容、及び関連する章 作成日/注記
028 4_特殊効果 2015.5.13

Step 1

SSS:内部拡散反射

 内部拡散反射は、発光チャンネルの中で使う特殊効果シェーダです。ただし、独立したチャンネルと同じぐらい重要です。

内部拡散反射は、基本的にはカラーチャンネルと同じように働きます。つまり、外部から来た光を「ランダムに反射」します。したがって、反射される光は外部から来た光の色や強度に影響され、光が来なければ何も見えません。

内部拡散反射とカラーチャンネルの違いは、カラーチャンネルが光を外側にしか反射しないのに対して、内部拡散反射では一部の光を内部に透過し、内部でもランダムに反射することです。

そういう意味では、ぼけた屈折と鏡面反射を組み合わせて似たような表現をすることもできますが、内部拡散反射の方がずっと軽くきれいに表現できます。

この性質は非常に一般的で、実は金属以外の全ての物質は多かれ少なかれ内部拡散反射を持っています。私たち人間の体や、木材、布、プラスチック、セラミック等、薄くして強い光を後ろに置くと光が透けて見えるのが判ります。

特に内部拡散反射が多い人間の体やワックス、真珠等はこの効果を使わないとリアルに表現できません。

図028-1a、b

サンプル028a

左は内部拡散反射を指定したワックス(ロウ)のようなマテリアル(フレーム1)。右はそれをロウソクで照明した例(フレーム2)。

 

また、GIを使えば発光するマテリアルで内部拡散反射を表現することもできます。

 図028-2

フレーム3。

 

また、内部拡散反射をベースに、見る角度によって色が変わる複雑な鏡面反射を重ねれば真珠のマテリアルを表現できます。

 図028-3

フレーム4。

 

 

Step 2

背後からの照明

  背後からの照明は、発光チャンネルの中で使う特殊効果シェーダで、内部拡散反射に似ています。違うのは「内部」があるかないかです。

つまり、背後からの照明には内部がなく、すぐ裏側に「ランダムに反射」してしまうのです。

内部があるかないかという点で、内部拡散反射は閉じたオブジェクト(立体)に適用するマテリアルで、背後からの照明は開いたオブジェクト(平面)に適用するマテリアルだといえます。

実際、内部拡散反射を開いたオブジェクトに適用しても働きません。また、背後からの照明を閉じたオブジェクトに適用すると、前の面が後ろの面の影になります。つまり、正常に働きません。

例えば、ランプシェードのようにライトの周囲に置く開いたオブジェクトで、ライトからの光や影を裏側に出したい場合には背後からの照明を使うといいでしょう。

  図028-4a、b

左はカラーチャンネルのみのマテリアルを適用したランプシェード(フレーム5)。右は同じマテリアルの発光チャンネルに背後からの照明を追加した(フレーム6)。

ただし、背後からの照明は古い機能なのでGIに対応していません。GIの光を裏側に出したい場合はオブジェクトに厚みをつけ、内部拡散反射を使ってください。

 

 

Step 3

アルファ

 アルファチャンネルは、マテリアル全体に働くマスクで、使い方はPhotoshopのアルファチャンネルと同じです。

アルファを使うと複数のマテリアルを重ねられるので、非常によく使います。

下のマテリアルでは、ノイズシェーダをアルファチャンネルに適用してメタルペイントをランダムにはがし、アルミの上に重ねてあります。

図028-5

フレーム54。

 

さらに、下のマテリアルではオブジェクトの角だけをハゲさせるために、まず角のエッジを選択し、スプライン化しました。

次に、特殊効果の「プロクシマル」シェーダを使ってこのスプラインの周辺にマスクを生成し、ノイズで形をランダムにしました。

図028-6

フレーム51。

 

さらに、下のマテリアルでは中央の球体に突起を追加し、特殊効果の「アンビエントオクルージョン」シェーダを使って突起の先端にマスクを生成し、ノイズで形をランダムにしています。

図028-7

フレーム52。

 

 

Step 4

その他のチャンネル

1. 拡散

拡散チャンネルは、「カラー」、「発光」、「スペキュラ」、「鏡面反射」の4種類のチャンネルに働くマスクです。例えば、マテリアルの表面がハゲたり、サビたりすると、これらの性質が同時に失われます。

拡散がなくても、各チャンネルに同じテクスチャを入れれば同じマテリアルを表現できますし、実際R7まで拡散チャンネルはありませんでした。しかし拡散チャンネルを使えば、一枚のテクスチャでこのような表現ができます。

基本的なチャンネルではありませんが、マテリアルの微調整によく使います。

ただし、拡散チャンネルでマスクすると単に黒くなるだけで、その部分に下のマテリアルやサビのマテリアルを見せることができません。

したがって、明確にハゲやサビを表現したい場合は、同じマスクをアルファチャンネルに入れて別のマテリアルの上に重ねてください。

 図028-8

フレーム53。

 

2. 環境

環境チャンネルは、「鏡面反射」の代用品で、そういう意味では「スペキュラ」に似ています。

スペキュラはライトだけを「規則的に反射」しますが、環境は光の計算を全くせず、カメラの位置に合わせてそれらしく環境テクスチャを貼ります。

現在フォトリアルな絵を作るために環境を使うことは全くありませんが、次のようなケースではよく使います。

2a. モデリングの際にオブジェクトの形状を確認する。

図028_9

サンプル028b

 

2b. フライングロゴ等で、絵をシンプルにするために使う。

鏡面反射を使うと、周囲のオブジェクトが映り込んで読みにくくなる。

図028-10a、b

サンプル028c

左は環境で鏡面反射を表現したマテリアル(フレーム1)。右は普通に鏡面反射を使ったマテリアル(フレーム2)。

 

3. 霧

霧チャンネルは、オブジェクトの内部に霧を発生させます。この霧は環境オブジェクトの中にある霧と同じで、距離によって指定した色を他のオブジェクトのマテリアルに重ねます。

20年前まではよく使いましたが、濃度に変化をつけられないとか、透明なマテリアルをうまく扱えないなどの問題があり、現在では全く使いません。

霧を作りたい場合は、PyroClusterやサードパーティー製のボリュームシェーダーを使うようにしてください。

 

4. グロー

グローチャンネルは、3Dではなく2Dのポストイフェクトで、オブジェクトの周囲に光をにじませることができます。

15年前まではよく使いましたが、透過や鏡面反射に対応していない等の問題があり、現在では全く使いません。

グローをかけたい場合は、特殊効果の「グロー」や、サードパーティー製の3Dグローを使うようにしてください。

 

R16用GI基礎01: 関連する機能

gi_title

R16 GI基礎

レベル/ 対象者:基礎/CINEMA 4Dを少し使えて、GIの設定に困っている人
対象ソフトウエア、プラグイン:CINEMA 4D R16 Broadcast以上
冨士 俊雄/ gtofuji@gmail.com
章番号 題名 内容、及び関連する章やサンプルファイル 作成日/注記
071 1_関連する機能 オブジェクトバッファ、マスク、アルファチャンネル、コンポジットタグ、マルチパス、レイヤ、シングルパス、屈折コースティクス、反射コースティクス、シンプルな背景、グラデーションシェーダ、GIから見える、カメラから見える、鏡面反射/屈折から見える、AO、アンビエントオクルージョン、透過を考慮、GIアニメーションの設定 2015.1.24
Previous Next

Step 1

初めに

 CINEMA 4D R7でGI(グローバルイルミネーション、間接照明を表現する機能)が登場して10年以上経ちました。GIが出た当初はコンピュータが非力で、またGIの機能も十分でなかったため、なかなか仕事で使う機会はありませんでした。しかし現在では設定もレンダリングも簡単になり、私はアニメーションを含めてほとんどの仕事でGIを使っています。とは言っても世の中全体を見渡せば、まだまだ「GIは難しい」、「GIは遅い」と言っている人がたくさんいます。それにはおそらく二つ原因があります。

1. ソフトが悪い

確かに現在でもGIを使えない3DCGソフトがあります。またGI機能があっても、とても実用的とはいえないソフトもあります。しかし、CINEMA 4DのGI機能はR12以降十分実用的です。安心して使って下さい。

2. ユーザが悪い

GIは魔法ではありません。CADソフトから軸もUV座標もないポリゴンの塊を読み込んで、GIをかければすぐにフォトリアルな絵ができる、というような簡単なものではありません。

むしろ、GIはシーンをよりリアルにレンダリングするので、「構図、絵作り」、「照明、カメラ」、「背景、環境」、「マテリアル、アニメーション」、「モデリング、テクスチャ」、「レンダリング設定、コンポジット設定」などあらゆる段階で従来以上に丁寧な作業が必要になります。フォトリアルな絵は、それらの作業の結果です。

この講座では、GIの使い方について、サンプルを使って具体的に説明します。また後半では、TeamRenderを使ったGIアニメーションのレンダリングについて説明します。

最後に、コンピュータのパワー(計算速度)についてお話ししておきます。よく「GIが遅いのはコンピュータが遅いから」とか、「GIの計算には速いコンピュータが必要」という人がいます。これは間違いではありませんが、あまり意味がありません。

1. GIの設定が悪ければ、どんなに速いコンピュータを持ってきてもいい絵はできません。一番重要なのは、コンピュータのパワーではなくGIの設定です。

2. どんなに速いコンピュータを持ってきても、一台でGIのアニメーションをレンダリングするのは無理です。仕事の規模に応じて適切なネットワークレンダリング(NETやTeamRender)を組む必要があります。小さなコンピュータでもたくさん集まれば強力なネットワークレンダリングを構築できます。

 

 

Step 2

オブジェクトバッファ

 それでは、早速サンプルを開いてレンダリングしてみましょう(サンプル071a)。

図071-1

  レンダリング時間は「21秒」でした。このファイルは「R16 照明基礎」で使ったサンプルファイルを拡張したものです。これをベースにして、照明基礎では説明できなかった細かい設定について、この章と次の章で説明していきます。

まず、多くの仕事では後で行う合成の過程で、背景の全て、もしくは一部をマスクする必要があります。

そして、昔は「背景を置かずにアルファチャンネルを出す」という簡単な方法でマスクを取り出していました。しかしGIを使う場合、自然な照明や映り込みを表現するために全ての方向に背景(環境)を置く必要があります。つまり、そのままではアルファチャンネルを取り出せません。

このような場合、コンポジットタグを使えば背景をカメラから不可視にしてアルファチャンネルを取り出すことができます。しかしアルファチャンネルには「一枚しか取り出せない」、「空オブジェクトを抜けない」等の制約があるので、現在ではほとんど使いません。その代わりに「オブジェクトバッファ」という機能を使います。

オブジェクトバッファは、「指定したオブジェクトに対してマスクを付ける」という機能で、何枚でも作れます。空オブジェクトに関する制約もありません。また、指定したオブジェクトが屈折して見える部分にもマスクを付けてくれます(鏡面反射して見える部分には付きません)。

 

それではオブジェクトバッファを指定します。

図071-2

オブジェクトバッファを指定するには、まずマスクを付けたいオブジェクトに「コンポジット」タグを適用し、マスクのID(番号)を指定します。

次に、レンダリング設定でマルチパス機能を選択し、「オブジェクトバッファ」レイヤを追加し、コンポジットタグで指定したIDを入力します。一つのオブジェクトに複数のIDを付けることもできます。また、複数のマスクを出したい場合は、必要な数だけオブジェクトバッファレイヤを追加します。

レンダリングが終わったら、画像表示ウインドウの表示を「レイヤ」に切り替え、表示方法を「シングルパス」に設定します。この状態でRGBやマスクのプレビューをクリックすると、そのチャンネルだけが表示されます。

また、マルチパス機能を選択すると「レンダリング設定 -> 出力」ページにマルチパス画像の「名前」や「フォーマット」を指定する部分が表示されます。

 

Step 3

コースティクス

 次に、コースティクスについて説明します。コースティクスはマイナーな機能で、普通ほとんど気にする必要はありません。しかし、このサンプルはコントラストが高いHDR画像を背景に使っているため、建物の周囲のプールの中に「屈折コースティクス」による問題が生じています。修正しなければなりません。 図071-3まず屈折コースティクス機能そのものについて説明します。屈折コースティクスを使うと、GIの計算でマテリアルの「屈折」が正しく評価されます。下の図071-4aは屈折コースティクスあり、図071-4bは屈折コースティクスなしの絵です(サンプル071c)。

図071-4a

図071-4b

レンダリング時間は、屈折コースティクスを働かせるだけならほとんど変わりません。したがって、この機能はデフォルトで働くようになっています。しかし、きれいな屈折コースティックスを得るには、それなりに設定を上げる必要があります。この場合、屈折コースティックス有りが「168秒」、無しでは「45秒」でした。

上のサンプルぐらいならなんとかレンダリングできますが、さらにコントラストの強いシーンでは計算が難しくなり、ノイズやちらつきの原因となります。このような場合、その屈折コースティクスが絵的に必要であれば、設定を上げてレンダリングするしかありません。しかし、それほど重要でないのなら、屈折コースティクスを切ってしまうのも一つの手です。

それでは、屈折コースティクスを切って絵がどのように変化するか見てみましょう。下の図071-5aは屈折コースティクスあり、図071-5bは屈折コースティクスなしの絵です。

図071-5a

図071-5b

 屈折コースティックスを外すと、水がない状態の影ができます。これは不自然ですが、ノイズはなくなります。どちらがいいかは絵を見て判断するしかありません。

ちなみに、設定を上げると静止画として使える程度の絵を作ることができます。しかし、アニメーションにすると、やはりちらつくだろうと思います。レンダリング時間は「205秒」でした。

図071-6

 

コースティクスにはもう一つ「反射コースティクス」という機能があります。これは屈折コースティクスと似た機能で、GIの計算でマテリアルの「鏡面反射」が正しく評価されます。しかし、この機能は屈折コースティクスより計算が難しく、ノイズも目立つのでデフォルトでは働かないようになっています。下の図071-7aは反射コースティクスあり、図071-7bは反射コースティクスなしの絵です。

図071-7a

図071-7b

 金属の鏡面反射を特に強調したいような場合にのみ、覚悟して使うといいでしょう。レンダリング時間は、反射コースティックス有りが「129秒」、無しが「32秒」でした(サンプル071c2)。

 

Step 4

シンプルな背景

 次に、空オブジェクトにグラデーションシェーダを適用したシンプルな環境(背景)について説明します。「R16 照明基礎」ではIBL(イメージベースドライティング、画像を使った背景)について説明しましたが、リアルな写真よりもシンプルな背景を使った方が判りやすい絵を作れる場合がよくあります。例えば、機械やプロダクトの仕事で部品だけの絵やカットモデルを作る場合などです。また、建築や内装の仕事でも、カットモデルや天井を省略した絵を作る場合、環境はシンプルな方が適しています。その他、シンプルな背景は、GIの設定が簡単でレンダリングも速いので、制作途中のオブジェクトやマテリアルのチェックにもよく使います。それではシンプルな背景を作ってみましょう。

図071-8

 まず新規マテリアルを作成し、発光チャンネルにグラデーションシェーダを追加します。そして、グラデーションの向きを縦に変更し、適当なグラデーションを指定します。これを空オブジェクトに適用すれば、シンプルな背景が完成です。

ただし、シンプルすぎて立体感や構造がよくわからない絵になってしまいました。そこで、空オブジェクトを回転させ、照明を偏らせます。また、「床」オブジェクトを追加し、下から来る光を制限します。

これで少しよくなりました。床オブジェクトを追加する場合は、空オブジェクトに適用したオブジェクトバッファと同じIDのオブジェクトバッファを適用することを忘れないで下さい。

次に、マスクを作っておけば背景の色は後からどうにでも変えられます。しかし、背景は白(もしくはある特定の色)と決まっている場合も多いでしょう。そのような場合は、GIの照明に使う背景とレンダリングする背景を分けることによって、背景を合成する手間を省けます。

背景の表示を切り分けるには「コンポジット」タグを使います。

GIの照明に使う空オブジェクトは、「GIから見える」だけをオンにして他は全て切ります。またレンダリングに使う空オブジェクトは、「カメラから見える」と「鏡面反射/屈折から見える」だけをオンにして、他は全て切ります。また、床オブジェクトは「GIから見える」と「鏡面反射/屈折から見える」だけをオンにして、他は全て切ります(サンプル071d)。

また、あえて背景に極端な色を適用し、オブジェクトの面を強調するような使い方もできます(サンプル071e)。

 

図071-9

 

 

Step 5

アンビエントオクルージョン

 もう一つ、オブジェクトの立体感や構造を強調するための機能として「アンビエントオクルージョン」があります。GIは、間接光を計算してシーン全体を明るくしていくため、ややもすると絵が眠くなりがちです。アンビエントオクルージョン(AO)は、基本的にはGIの機能ではなくマテリアルの性質を変える「シェーダー」ですが、眠くなったGIの絵をシャープにする目的でも使えます。事実上、「GIを使う場合、必ずAOも使う」と考えて差し支えありません。それではAOを追加してみましょう。

図071-10

 オブジェクトの面が内側に折れている部分や目地等が暗い線で強調され、立体感や構造がよりわかりやすくなりました.

下の図071-11aはAO有り、図071-11bはAO無しの絵です(サンプル071f)。

図071-11a

図071-11b

 

AOの基本的な働きは、「周囲を壁に囲まれた、奥まった部分の性質を変える」ことです。普通は、奥まった部分を暗くします。また、AOはマテリアルとレンダリング設定の二カ所で指定できます。

マテリアルに適用したAOは、オブジェクトの色や明るさだけでなく、透明度やバンプ、アルファ等いろいろな性質を変えられます。また、AOの効果が生じるのはそのマテリアルを適用したオブジェクトだけです。

これに対して、レンダリング設定に適用したAOは、オブジェクトの明るさだけを変えます。また、シーン全てのオブジェクトに対して効果が生じます。

AOとGIの計算方法や結果はよく似ていますが、二つの点で異なっています。

1. GIは周囲の照明を調べて計算するが、AOはオブジェクトの形状しか調べない。

つまり、AOはライトや環境を考慮しないので、GIに比べて計算が簡単できれいです。

2. GIは距離の二乗に反比例して光を減衰させるが、AOはグラデーションを使って自由に減衰を指定できる。

つまり、絵作りのための機能としてはAOの方が優れています。

このような理由から、AOをGIの補助として使うわけです。

 

また、「奥まった部分」というのは一般的に汚れがたまりやすく、また風化や劣化しにくいため、表に出ている部分に比べてオブジェクトの色自体が暗く、濃くなっているのが普通です。AOは、照明ではなく、この効果を表現するものだと考えるといいでしょう。実際、AOを強くかけると古ぼけた質感になり、AOを弱くすると新品の質感になります。

最後に、GIの補助としてAOを使う場合は、忘れずに「透過を考慮」オプションを選択してください。AOは本来奥まった部分、つまり「オブジェクトの形状」を調べて値を変えるシェーダです。照明や光は関係ありません。つまり、デフォルトではそのオブジェクトに適用されたマテリアルの透明度やアルファを考慮しないようになっているのです。

確かに、現実世界でもガラスの周囲には汚れがたまります。しかし、アルファで切り抜いた部分にまで汚れがたまるのは明らかに変です。透過を考慮オプションを使うと、透明な部分やアルファで切り抜かれた部分を「形状」に含めないようになります。

下の図071-12aは透過を考慮あり、図071-12bは透過を考慮なしの絵です(サンプル071g)。

図071-12a

図071-12b

 

Previous Next

 

 

R16用GI基礎02: GIの詳細

gi_title

R16 GI基礎

レベル/ 対象者:基礎/CINEMA 4Dを少し使えて、GIの設定に困っている人
対象ソフトウエア、プラグイン:CINEMA 4D R16 Broadcast以上
知らない設定はいじらない。
冨士 俊雄/ gtofuji@gmail.com
章番号 題名 内容、及び関連する章やサンプルファイル 作成日/注記
072 2_GIの詳細 しきい値、表面粗さ、QMC、アンチエイリアス、コンポジットタグ、サチュレーション、GIエリアライト、夜景、間接照明、GIエリアを個別サンプリング、全ピクセルでサンプリング、GIの精度、GIの精度、GIアニメーションの設定 2015.2.10
Previous Next

Step 1

はじめに

  この章の説明は、表面的にはR14用のGI基礎に似ています。しかし以下のような理由から、考え方や実際の値はかなり異なっています。1. R15でGIの計算方法が大きく変わった。2. コンピューターが速くなった。その結果、シーンの編集に時間をかけるよりも、コンピューターのパワーに任せてレンダリングしたほうが速くなってしまいました。3. R13でフィジカルレンダラーが導入された。その結果、アンチエイリアスやAO、鏡面反射や屈折の表面粗さ(R14のぼけた鏡面反射)の設定が簡単になりました。

したがって、CINEMA 4DをR15以降にアップデートした場合は「GIがかなり変わっている」という点に注意してください。また、GIの計算速度に関しては、確実に遅くなっているので、それを覚悟して使うようにしてください。

 

 

Step 2

しきい値

 CINEMA 4Dに限らず、光線の鏡面反射や屈折(レイトレーシング)を計算できる3DCGソフトは、必ず計算を打ち切る機能を持っています。なぜなら、「鏡の部屋」のようなシーンをレンダリングした場合、光が無限に鏡面反射してレンダリングが終わらなくなってしまうからです。計算を打ち切るには、光線が屈折、鏡面反射した回数で切る方法と、光線の明るさで切る方法の二つがあります。回数に関しては、ほとんどの場合デフォルトのままで大丈夫です。しかし、明るさに関しては微妙な調整が必要です。なぜなら、光線が明るいうちに打ち切ると絵がおかしくなるし、暗い光線まで計算するとレンダリング時間が延びてしまうからです。この、光線の計算をどこで打ち切るかを決めるのがしきい値です。それでは、しきい値の値によってどのような問題が起こるか見てみましょう。図072-3

 

下の図072-4aはしきい値が「0.1」の絵、図072-4bはしきい値が「2」の絵です。

図071-4a

図071-4b

 

このように、しきい値の値を大きくしすぎると鏡面反射が突然なくなり、絵がおかしくなるので注意してください。しきい値の値は、まず「1」を基準とし、鏡面反射の問題が発生するようなら、「0.5」ぐらいまで下げることをお勧めします。

 

次に建物の内観を使って画質とレンダリング時間を比較してみます(サンプル072b)。

図072-5

 

上にも書いたように、しきい値はGIだけでなく、鏡面反射、屈折、影、AOなど多くの機能に影響を与えます。そして、その中にはしきい値の影響を受けやすい機能と、受けにくい機能があります。

例えば、壁が白い部屋でGIを計算した場合、反射した間接光はほとんど減衰しません。つまり、しきい値に引っかかるほど暗くならないのです。したがって、この場合しきい値を変えてもレンダリング時間はほとんど変わらず、画質も変わりません。

ところが、白い壁に鏡面反射を追加すると大きな差が出てきます。なぜなら、白い壁の鏡面反射にはフレネル(光線が入射する角度によって反射率が変化する効果)がかかっていて、浅い角度では数%になるからです。つまり、ほとんどの光は2〜3回反射するとしきい値より暗くなります。

したがって、鏡面反射の計算ではしきい値を適切に調整することで、普通は1〜2割、場合によっては3割程度レンダリング時間を短縮できます。

 

 

Step 3

アンチエイリアス

 アンチエイリアスの考え方は、標準レンダラーとフィジカルレンダラーで大きく異なります。標準レンダラーのアンチエイリアスについては、R14用のGI基礎を参照してください。フィジカルレンダラーの場合、アンチエイリアスの設定は非常に簡単で、基本的にデフォルトのままいじる必要はありません。アニメーションでノイズが目立つ場合、値を少し上げることはありますが、静止画の場合は解像度を上げてしまった方がいい結果が得られます。図072-6

 

Step 4

サチュレーション

 次に室内に戻ります。そして、壁や天井を鏡面反射無しのマテリアルに戻し、床の色をオレンジに変えてみましょう。 図072-7床のオレンジが部屋全体に盛大に「色映り」しています。これは決して間違いではないのですが、絵的にはよくありません。理由は、このような環境に置かれると、人間の目は自動的にオレンジを弱めて見るようにできているからです。もちろんレンダリング後に色補正をかけてもいいのですが、そのままだと、床のオレンジまで補正されてしまいます。そこでGIの機能を使って、床のオレンジはそのままに壁の色移りだけを弱くしてみましょう。オレンジのマテリアルの「GIと照明モデル -> GIを生成」の右にある「サチュレーション(彩度)」を下げると、オレンジのマテリアルが生成する間接光の強度はそのままで、彩度だけを下げることができます。これは、物理的には不正な操作ですが、絵作りの機能としては非常に有用です(サンプル072e)。

 

 

Step 5

GIエリアライト

  GIエリアライトは、基本的には発光するマテリアルです。発光するマテリアルは、ライトからの光を受けなくても自ら光を出し、周囲のオブジェクトを照明できます。発光するマテリアルをよく使うのは、テレビの画面、空、照明機器(やそのシェード)等です。発光するマテリアルには多くの利点があります。例えば、面状や線状のライトを簡単に作れる、設定が簡単、計算が速い、絵が自然できれいなどです。したがって、現在面状や線状のライトを作るときにライトオブジェクトは使いません。ただし、発光するマテリアルはライトのような特別な存在ではないので、極端に明るいマテリアルを小さなオブジェクトに適用すると、ノイズが増えてきます。例えば、壁面モニターのような大きなオブジェクトに明るさ100程度の発光するマテリアルを適用する場合、問題はありません。しかし、小さな電球に明るさ1000以上の発光するマテリアルを適用すると、多くの場合ノイズが発生します。GIエリアライトオプションを使うと、この問題を解決できます。GIエリアライトは、言ってみればそのマテリアル(が適用されたオブジェクト)を特別扱いする機能であり、他のオブジェクトにそのオブジェクトを注目させる機能です。マテリアルのGI設定にある「GIエリアライト」オプションをチェックすると、そのマテリアルはGIエイアライトになります。GIエリアライトは、発光するマテリアルに関するオプションなので、発光チャンネルが働いている場合だけ選択できます。

図072-8

 

Step 6

夜景を作る

  基本的に、夜景は昼間のシーンの「環境(背景)」と「照明(ライトオブジェクトや発光するマテリアル)」を変更することで作ります。この時、照明は可能な限り図面通りに配置するようにしてください。また、図面に存在しない照明や、物理的におかしい照明(影のないライトや減衰しないライト)は絶対に置かないようにしてください。夜景は、昼間のシーンに比べてコントラストが高いので、シーンの作成もレンダリングの設定も数倍難しくなります。また計算時間も数倍かかります。そして、このような状況でGIエリアライトの設定が非常に重要になります。特に壁の裏側に照明機器を隠す間接照明は、ほとんどの場合はGIエリアライトで表現します。 図072-9それでは、まず背景を夜にしてレンダリングしてみます。照明を入れていないので、廃墟のような絵になりますが、絵自体はきれいです(サンプル072f)。次に、橋の下と窓の裏に間接照明を入れてレンダリングしてみます。この段階では、まだGIエリアライトオプションは入れていません。つまりただの発光するマテリアルです。

このシーンで間接照明を使った理由は、間接照明の設定が一番難しいからです。間接照明をきれいにレンダリングできるようになれば、その他の照明は全てきれいに表現できるはずです。

次にGIエリアライトオプションを入れてレンダリングしてみます。GIエリアライトオプションを入れると、GIの計算が2倍になるので、レンダリング時間も1.5倍程度長くなります。

しかし、画質はそんなに変わりません。理由は、発光させた部分がそれなりに大きく、それほど明るくなく、裏に隠れていたからです。

条件によりますが、間接照明はGIエリアライトの効果が出にくい照明だと言えます。ただし、それでもGIエリアライトを入れておくことをお勧めします。

それでは、次にGIエリアライトの効果がはっきりわかる照明について説明します。

図072-10
このシーンでは、入り口の両側に小さな立方体状の照明機器を配置し、明るさ5000の発光するマテリアルを適用しています。オブジェクトが小さく、明るく、直接見えているので、非常に大きなノイズが発生します。

それでは、発光するマテリアルにGIエリアライトオプションを入れてレンダリングしてみます。すると、ノイズが十分きれいに収まります。

 

最後に、CINEMA 4D R15とR16のバグについて説明します。GIエリアライトは、建築や内装のCGを作る際に欠かせない機能ですが、R15とR16には「シーンに大きなオブジェクトを置くと絵が破綻する」というバグがあります。

この点に注意して、もしGIエリアライトオプションを入れた結果ノイズが増えるような場合は、シーンから大きなオブジェクトを削除するようにしてください。

図072-11

 

Step 7

GIエリアライト、全ピクセルでサンプリング

  一般的にイラディアンスキャッシュモードでGIを計算する場合、オブジェクトの表面を適当な間隔でサンプリングして明るさを決定します。そして、サンプルポイントの間はなめらかに補間されます。ほとんどの場合この方法は一番速くてきれいな方法なのですが、一つだけ弱点があります。それは、影がボケることです。この問題を解決するために、GIエリアライトには「全ピクセルでサンプリング」というオプションがあります。このオプションを選択すると、GIエリアライトから出た最初の光(直接光)だけがQMCモードでレンダリングされます。QMCモードは、サンプリングをせず全てのピクセルに対してGIの計算をするため、影を含めて正確できれいな絵を生成できますが、イラディアンスキャッシュモードの何十倍もの時間がかかります。そこで、GIエリアライトから出た光の中で影に対する影響の大きい最初の光だけを正確なQMCで計算し、それ以外の光は効率のいいイラディアンスキャッシュで計算させるわけです。全ピクセルでサンプリングオプションを使うと、計算時間が2倍程度長くなります。しかし、GIエリアライトを多用している場合は使うことをお勧めします。それに対して、もともと影がシャープに出るライトオブジェクトを多用している場合や、絵的に影が重要でない場合は使う必要ありません。図072-12

 

Step 8

コンポジットタグ、GIの精度

  GIエリアライトは発光する側に対する設定でしたが、ここでは光を受ける側に対する設定について説明します。一般的に、絵の中にはノイズが目立ちやすい部分と目立ちにくい部分があります。例えば白い壁は目立ちやすく、黒い壁は目立ちにくいといえます。しかし、CINEMA 4Dは両方を同じ精度で計算します。理由は、計算するまでそれが白いか黒いかわからないからです。また、絵の中には重要な部分とそうでない部分があります。例えば建物の玄関は重要な部分で、裏口はそうでないといえます。しかし、CINEMA 4Dは両方を同じ精度で計算します。理由は、CINEMA 4Dには常識がないからです。このような場合、人間の目から見て絵の中の気になる部分だけ計算精度を上げられれば便利です。コンポジットタグの中のGI設定を使うと、オブジェクト単位でGIの計算精度を上げたり下げたりできます。 図072-13

 

Previous Next

R16用GI基礎03: TeamRender

gi_title

R16 GI基礎

レベル/ 対象者:基礎/CINEMA 4Dを少し使えて、GIの設定に困っている人
対象ソフトウエア、プラグイン:CINEMA 4D R16
冨士 俊雄/ gtofuji@gmail.com
章番号 題名 内容、及び関連する章やサンプルファイル 作成日/注記
073 3_TeamRender TeamRender(ネットワークレンダリング)、フレーム単位、TeamRenderサーバー、TeamRenderクライアント、固定IP、8080番ポート、Automater、格納パス、ユーザ(アカウント)、admin、ジョブ(作業)、管理者、b3d、GIアニメーションの設定 2015.2.2
Previous Next

 

Step 1

TeamRender

 アニメーションにネットワークレンダリングは欠かせません。GIアニメーションの場合はなおさらです。ネットワークレンダリングは一度使ったらやめられないとても便利な機能ですが、「未だに使ったことがない」という人が多いので、ここで詳しく解説します。1. TeamRenderは、簡単に言うと「レンダリング作業を多数のコンピュータに分散する」機能です(サンプル073c)。 

2. 分散する単位は「フレーム単位(一枚単位)」です。

実は、TeamRenderは静止画のネットワークレンダリングができます。つまり、フレームをさらに小さな「パケット」というタイルに分割して、複数のコンピューターに分散できます。しかし、効率が悪いので、この機能は使わないことをお勧めします(サンプル073a)。

 

3. TeamRenderには、「作業全体を管理するソフト」と「ひたすらレンダリングするソフト」の二種類があります。管理するソフトは「TeamRenderサーバー」と呼ばれ、ネットワーク上に一つしかありません。レンダリングするソフトは「TeamRenderクライアント」と呼ばれ、たくさんあります。

ここで、サーバーが管理できるTeamRenderクライアントの数はグレードごとに違っていて、BroadcastとVisualizeが3台、Studioは無制限になっています。Primeでは、TeamRenderは使えません。

 

4. TeamRenderサーバーとTeamRenderクライアントは、CINEMA 4D本体をインストールした時に、同じフォルダに自動的にインストールされます。

 

5. TeamRenderサーバーは、LAN(ローカルエリアネットワーク)からだけでなく、インターネットからアクセスすることもできます。つまり、会社のTeamRenderが実行しているレンダリングを自宅でチェックしたり、レンダリングした画像をダウンロードしたり、修正したシーンファイルをアップロードすることができます。ここが一番便利な点です。

TeamRenderサーバーにアクセスするには、Safari等のブラウザを使います。もちろんスマートフォンやタブレットも使えます。

ただし、インターネットからTeamRenderサーバーにアクセスするには、ルーターが「固定IP」を持っている必要があります。また、ルーターに対してTeamRenderサーバーをインストールしたコンピュータに、「8080番」ポートを転送するように設定しておく必要があります。

 

6. TeamRenderは、MacとPCの両方で使えます。MacとPCが混在していても大丈夫です。

ただし、次の3点に注意してください。

6a. MacとWindowsではフォントが異なる。

MoTextやテキストスプラインを使うと、ほとんどの場合フォントが変わります。

6b. MacとWindowsでは、ファイル名に使える文字の制限が違う。

例えば、ファイル名に「¥<>*」等の文字を含めた場合、Macでは実行できますが、Windowsでは実行できません。

6c. MacとWindowsではカラープロファイルが異なる場合がある。

特にムービーのコーデックは、バージョンやOSの違いによって色が変わる場合があります。このような場合は、ムービーを連番静止画に分解して使います。

図073-2

 

7. Automater等OSのスクリプト機能を使えば、TeamRenderが終了した時にアニメーションをメールに添付して送信することもできます。

図073-3

 

 

Step 2

ルーターの設定

 次に、ルーターを設定します。TeamRenderは、ルーターを設定しなくても使えるように設計されていますが、現状ではこの機能(Bonjour)を使うとフリーズしやすくなります。ですから、Bonjourは切り、ルーターをマニュアルで設定することをお勧めします。ルーターには色々な機能がありますが、TeamRenderにとって重要なのは次の二つです。

1. LAN内部のコンピューターにローカルのIPアドレスを分配する機能(DHCPサーバー)。

通常、コンピューターとIPアドレスは固定されておらず、コンピューターやルーターを再起動するたびにIPアドレスが変わってしまいます。つまり、このままでは毎回TeamRenderサーバーの設定をやり直す必要があります。

そこで、コンピューターのMACアドレス(ハードウエアアドレス)とIPアドレスの関係をあらかじめルーターに教えておきます。すると、コンピューターを再起動した時に、毎回同じIPアドレスが割り当てられるようになります。

図073-4

 

2. LAN内部のコンピューターとインターネットをつなぐ機能(ポートフォーワーディング)。

まず、インターネットからTeamRenderにアクセスする必要がなければ、この設定は必要ありません。必要がある人だけ読んでください。

TeamRenderをインターネットに接続するメリットは二つあります。

一つは、ネットワークレンダリングを側で監視する必要がなくなることです。編集作業が終われば、本来人間は家に帰って寝てもいいはずですが、なかなかそうはできません。ファイルにミスがあったり、コンピューターが止まることがよくあるからです。

それで、レンダリングが終わるまで側で監視することになるわけですが、もしインターネット経由でTeamRenderに接続できれば、少なくとも家に帰ることはできます。

もう一つは、出先からTeamRenderを使えることです。打ち合わせや共同作業など出先で仕事をすることはよくありますが、出先でレンダリング作業が発生した場合、普通は自宅や会社まで戻るしかありません。

しかし、インターネットからTeamRenderに接続できれば、出先からTeamRenderにシーンファイルをアップロードし、レンダリングを実行させ、結果をインターネット経由でダウンロードし、その場で納品できます。

このように、TeamRenderをインターネットに接続すると非常に便利なので、可能であれば接続することをお勧めします。

通常、ルーターには複数のコンピューターが接続されています。したがって、インターネットからTeamRenderサーバーにアクセスしようとしても、ルーターはどこに接続していいのか判らず困ってしまいます。

そこで、インターネットから「TeamRenderサーバー(8086番ポート)にアクセスされたら、TeamRenderサーバーが動いているコンピューター(アドレス192.168.11.2)に転送する」というルールをあらかじめルーターに教えておきます。すると、インターネットからLANの内部にあるTeamRenderサーバーにアクセスできるようになります。

ただし、この機能を使うには、自分が契約しているプロバイダーから固定IPを取得し、ルーターに設定しておく必要があります。そうしないと、そもそもインターネットからルーターにアクセスできません。

図073-5

 

 

Step 3

TeamRenderサーバーの設定

 TeamRenderサーバーでは、以下の三つの設定を行います。 図073-61. 格納パス

シーンファイルやレンダリングした画像を保存する場所を指定します。大きなデータを書いたり消したりするので、容量が大きく高速なHDDを指定します。また、レンダリング中にバックアップ作業が発生すると遅くなるので、バックアップは取らず、必要であればHDDをRAID化しておくといいでしょう。

また、格納パスは編集作業用のコンピュータから直接見えるようにファイル共有しておきます。理由は、ブラウザ経由でサーバーとファイルのやりとりをすると効率が悪いからです。

 

2. セキュリティトークン(パスワード)の指定

サーバーにクライアントを登録するためのパスワードです。

 

3. TeamRenderクライアントの登録

古いNETでは、設定ファイルを元にクライアントがサーバーを探すようになっていましたが、TeamRenderではサーバーがクライアントを探すようになっています。

クライアントを登録する前に、まずクライアント側の設定を行ってください。

クライアントを登録するには、「マシンを追加」を選択し、クライアントのIPアドレスとポート番号を入力します。すると、セキュリティートークンを聞かれるので、入力してください。

ここで、Bonjourを使うとIPアドレスの入力を省略できますが、TeamRender自体が不安定になります。

以下の設定は、必要に応じて変更します。

 

4. (TeamRenderサーバーの)ポート

一台のコンピューターで複数のサーバーを動かしている場合、ポートがぶつかってしまいます。そのような場合は、ポート番号を変更してください。

このサンプルでは「5402番ポート」に変更してあります。

 

5. ウェブサーバーのポート

一台のコンピューターで複数のサーバーを動かしている場合、ポートがぶつかってしまいます。そのような場合は、ウェブサーバーのポート番号を変更してください。

このサンプルでは「8086番ポート」に変更してあります。

 

Step 4

TeamRenderクライアントの設定

 TeamRenderクライアントには以下の二つの設定を行います。図073-71. コンピューターの名前

ブラウザ上で識別しやすいように、名前をつけます。

古いNETと違って、コンピューターの情報は自動的に表示されます。

 

2. セキュリティトークン(パスワード)

サーバーにクライアントを登録するためのパスワードです。

 

以下の設定は、必要に応じて変更します。

3. (TeamRenderサーバーの)ポート

一台のコンピューターで複数のサーバーを動かしている場合、ポートがぶつかってしまいます。そのような場合は、ポート番号を変更してください。

このサンプルでは「5402番ポート」に変更してあります。

 

 

Step 5

つながらない場合

 昔はこれで簡単につながったのですが、最近のOSはセキュリティーが厳しくなっているので、つながらないことがあります。その場合は、まず管理者権限のあるユーザでコンピュータやルーターにログインし、ファイアウォールの「8086番」と「5402番」ポートを開ける必要があります。 図073-8 

 

Step 6

ユーザを追加する

 TeamRenderサーバーとTeamRenderクライアントの接続設定が終わったら、ウェブブラウザを使って「ユーザ(アカウント)」を作ります。この作業は、PCだけでなくスマートフォンからでも実行できます。 図073-9「ユーザ」とは、TeamRenderを使ってレンダリング作業を行う人のことで、TeamRenderサーバーは複数のユーザを管理できます。

ユーザには「管理者ユーザ」と「(一般)ユーザ」の二種類があります。管理者ユーザは、新しいユーザを作ったり、古いユーザを消したりできますが、普通ユーザはできません。また、管理者ユーザーは全てのジョブを見たり、実行したり、止めたりできますが、一般ユーザーは自分が作ったジョブしか管理できません。

TeamRenderをインストールした直後は、「admin」という名前の管理者ユーザがいて、パスワードも「admin」になっています。まず、adminでログインし、自分が使う管理者ユーザを作ってパスワードを設定して下さい。

次に、TeamRenderはNETと違って「admin」を削除できないので、誰かがいたずらしないようにadminのパスワードを変更しておいて下さい。

一般的に、管理者がたくさんいるとネットワークは壊れます。管理者は一人か、多くても二人だけにして下さい。また、管理者は仕事の全体を理解していて、コンピューターやネットワークに詳しい必要があります。そうでない人を管理者にした場合もネットワークは簡単に壊れます。

また、NETはユーザに優先順位を指定できたのですが、TeamRenderはできません。

 

Step 7

ジョブを作る

 ステップ6までは、管理者ユーザが行う作業でしたが、ステップ7からは全てのユーザが行う作業になります。ジョブ(作業)とは、TeamRenderを使ってレンダリングすることで、TeamRenderサーバーは、複数のユーザが作成する複数のジョブを同時に管理できます。ジョブの追加は、ブラウザのボタンからでもできますが、ファイル共有機能を使ってOS上で直接フォルダやファイルを動かした方が簡単です。理由は、ブラウザからだと複数のファイルやフォルダを一度に動かせないし、ジョブのバックアップやユーザ間の移動ができないからです。

図073-10

ジョブの実体は「フォルダ(ディレクトリ)」で、この中にレンダリングに必要な全てのシーンファイル、テクスチャファイル、GIキャッシュファイル、外部参照ファイルを入れる必要があります。

また、プラグインを使っているシーンファイルでは、全てのTeamRenderクライアントにそのプラグインをインストールしておく必要があります。

また、TeamRenderコンテンツライブラリの中のテクスチャ等を読めません。コンテンツライブラリの中の部品を使う場合は、「ファイル -> 素材と一緒にプロジェクト保存」を使って、コンテンツライブラリから出してください。

ただし、プラグインが使用するテキストファイル等の外部ファイルは、TeamRenderでは扱えません。

 

 

Step 8

ジョブを実行する

 ジョブを作って必要なファイルをアップロードしたら、「開始」ボタンを押します。これでジョブが実行され、全てのTeamRenderクライアントでレンダリングが始まります。各TeamRenderクライアントでレンダリングされた画像は、ジョブフォルダの中の「results」フォルダに集まってきます。ただし、この段階では、全ての画像は「.b3d」というCINEMA 4Dの独自形式になっています。理由は、レンダリング中にネットワークトラブルが発生した時に全てのファイルが壊れるのを防ぐためです。また、連番になっていれば、一部の画像を差し替えたり追加するのも簡単です。

そして、出力フォーマットが連番画像の場合は、resultsフォルダに入った直後にb3d.から指定したフォーマットに変換されます。出力をムービーにしている場合は、全てのフレームのレンダリングが終わった後でムービーに変換されます。

ただし、TeamRenderではムービーに変換すると元のb3d.ファイルが消されてしまうため、画像の差し替えができません。したがって、TeamRenderではムービーフォーマットを使わず、面倒でもAfterEffects等でムービーに変換することをお勧めします。

図073-11

.b3dは優れたフォーマットですが、ファイルサイズが大きいとか、PhotoshopやAfterEffects等で読めないという欠点もあるので、私はまず「.hdr」の連番で出力し、後でムービーに変換するようにしています。.hdrは圧縮された32bitフォーマットで、PhotoshopやAfterEffects等でも問題なく読めます。

特に最近はガンマやカラープロファイルの問題が多いので、直接ムービーを出力するのはお勧めできません。

さらに、現在のTeamRenderにはバグがあって、出力フォーマットをQuickTimeムービーにしているとネットワークレンダリングを一時停止できません。その点からも.hdrの連番画像で書き出すことをお勧めします。

 

 

Previous Next

R16用GI基礎04: GIのアニメーション

gi_title

R16 GI基礎

レベル/ 対象者:基礎/CINEMA 4Dを少し使えて、GIの設定に困っている人
対象ソフトウエア、プラグイン:CINEMA 4D R16
冨士 俊雄/ gtofuji@gmail.com
章番号 題名 内容、及び関連する章やサンプルファイル 作成日/注記
074 4_GIのアニメーション フルアニメーション、ちらつき(フリッカー)、カメラアニメーション、キャッシュファイル、プレパスのみ、プレパスをスキップ、自動読み込み、自動保存、フルアニメーションモード、GIの計算結果(イラディアンスキャッシュ)、GIアニメーションの設定 2015.2.10
Previous

 

Step 1

はじめに

 この章の説明は、以下のような理由からR14向けのGI基礎と大きく異なっています。1. R15でGIの計算方法が大きく変わった。2. コンピューターが速くなった。

普通にフルアニメーションを使えるようになりました。

3. より高度な演出を要求されるようになった。

オブジェクトやライトを固定するカメラアニメーションでは対応できない仕事が増えました。

 

R14向けのGI基礎では、カメラアニメーションとフルアニメーションを分けて説明し、さらにNETでカメラアニメーションを効率よく実行する方法についても詳しく説明しました。

しかし、R16では全てのシーンでフルアニメーションを使うことをお勧めします。これによって、レンダリング時間は数倍に増えますが、演出上の制約がなくなり、レンダリング作業が簡単になります。また、キャッシュを意識する必要がなくなり、複雑な手順に起因する間違いがなくなります。

R14やそれ以前のCINEMA 4Dを使っている場合でも、コンピューターが速くなったとか、演出が複雑になったという事情は同じなので、フルアニメーションを使うことをお勧めします。

図074-1

 

カメラアニメーション等の詳しい説明については、R14用のGI基礎を参照してください。

 

 

Step 2

フルアニメーション

 GIのフルアニメーションというのは、オブジェクトやライト、マテリアルが変化するアニメーションを意味します。とは言ってもそれは当たり前のことで、静止画を作る時と同じに作って普通にレンダリングすればフルアニメーションになります。別の言い方をすると、フルアニメーションというのはフレームに沿ってGIの静止画をたくさん描いていくことです。静止画はそれぞれ独立して計算されるので、フレーム間でオブジェクトやライトが変化しても問題ありません。また、ネットワークレンダリングしても問題ありません。ただし、GIの計算が独立して行われるので、GIの計算精度が低いと画面がちらつくという問題があります。したがって、GIの設定を十分に最適化し、さらに静止画に比べて高めにしてください。

フルアニメーションの設定に関して特に説明することは何もありません。デフォルトのままでフルアニメーションになります(サンプル074a)。

図074-2

図074-3

サンプルムービー

 

 

Step 3

カメラアニメーション

 GIのカメラアニメーションというのは、非常に特殊なアニメーションで、オブジェクトやライト、マテリアルは変化しないものとして照明が計算されます。つまり、変化できるのはカメラだけです。カメラアニメーションでは、一つの部分につき一回しかGIの計算をしません。GIの計算を一回しかしないため、計算が速いとか、画面がちらつかないという利点があります。しかし、オブジェクトやライト、マテリアルをまったく動かせないという演出上の制約は非常に大きく、現在カメラアニメーションの仕事はほとんどないと思います。

図074-4

 

Step 4

TeamRenderでカメラアニメーションを効率よく実行する

  TeamRenderでカメラアニメーションを使う場合、GIの計算結果を共有する必要があるので設定は非常に面倒です。理想的には、TeamRenderをスタートする前に、編集用のコンピューターで全てのフレームに対するGIの計算を行い、それをキャッシュに保存しておく必要があります。しかし、それだとフルアニメーションよりレンダリング時間が長くなり、何のためにカメラアニメーションするのかわからなくなります。そこで、たとえば30フレームおきにGIの計算を行い、そのキャッシュをTeamRenderクライアントに分散します。そして、各TeamRenderクライアントにはキャッシュの足りない部分だけGIの計算を追加させるようにします。

これで、カメラアニメーションのネットワークレンダリングをある程度効率化できますが、面倒なのでお勧めはしません。この方法は、画面のちらつきを抑えたい場合に、よく実験して納得した上で使うようにしてください。

図074-5

図074-6

 

 

Previous

R14用: 照明基礎01: ライト

R14 照明基礎

レベル/ 対象者:基礎/CINEMA 4Dを少し使える人。
対象ソフトウエア、プラグイン:CINEMA 4D R14 Broadcast以上
参考とする写真を見る。よく見る。もう一度見る。そして自分で写真を撮ってみる。
冨士 俊雄/ gtofuji@gmail.com
このテキストはR14用です。R13以前のCINEMA 4Dを使っているユーザーは照明基礎を参照して下さい。
章番号 題名 内容、及び関連する章やサンプルファイル 作成日/注記
041 1_ライト ライト、デフォルトライト、影、エリア、シャドウマップ、レイトレース、reset_pos_rot、リニアワークフロー、減衰、GI、グローバルイルミネーション、HDR、GIアニメーションの設定 2013.1.12
次の章

 

Step 1

ライトオブジェクト

 これからライトについて説明します。それではサンプル041aを開いて、「ビューをレンダリング」してみて下さい。

図041-1

 

 最初の一歩とはいえ、何とも殺風景な絵です。このシーンにはまだライトオブジェクトがありません。しかし、ライトがないのになぜオブジェクトが見えているのでしょうか。ライトがなければ何も見えないはずなのに。

 それは、「デフォルトライト」という仮のライトが働いているからです。何も見えないと不便なので、ライトがない場合は自動的にカメラの左側にデフォルトライトが発生してシーンを照明するようになっています。

 デフォルトライトはオブジェクトに表示されないので、明るさや色を変更できません。また、ライトオブジェクトを追加したり、GI(グローバルイルミネーション)設定すると自動的に消えます。

また、強制的にデフォルトライトを消して、真っ暗なシーンを作りたい場合は、「レンダリング設定 -> オプション -> デフォルトライト」のチェックを外して下さい。

図041-2

 

それでは「オブジェクト -> シーン -> ライト」を選択して、シーンにライトオブジェクトを追加しましょう。CINEMA 4Dのメニューには7種類のライトが用意されていますが、全て同じオブジェクトです。ただ設定が違っていたり、エクスプレッションがついているだけなので、どのライトから始めても目的とするライトを作れます。

追加したライトはシーンの原点(つまり床の中心)に発生します。まず名前を「light」に変更し、「light_base」オブジェクトの子にし、位置を合わせ、「ビューをレンダリング」してみて下さい。

図041-3

 

まだまだですが、ライトの位置がカメラから天井に移動したことで、少しは立体感がでました。

また、ここでオブジェクトの位置を合わせるために、「reset_pos_rot」というカスタムスクリプトを使いました。「reset_pos_rot」には「cmd + /」というショートカットが割り当てられています。これをインストールするには、以下のページの説明にしたがって下さい。

講習会で使うCINEMA 4Dのカスタム設定について

 

 

Step 2

 次に、ライトが影を落とすように設定します。CINEMA 4Dのライトには3種類の影がありますが、一番よく使うのは「エリア」です。「シャドウマップ」は、一番計算が速いので昔はよく使いましたが、「細かい影を描けない」とか「無限遠光に使えない」等の欠点があるので現在はほとんど使いません。「レイトレース」は、エリアより速い代わりに「影のエッジがシャープすぎる」という欠点があります。したがって、弱い光源を大量(数百個以上)に置く場合等に使います。それでは、「light」を選択し、属性マネージャの「一般」タブで「影のタイプ」を「エリア」に変更し、「ビューをレンダリング」して下さい。

図041-4

 

影の中が真っ黒ですが、影が生じたことで床に対する接地感がでました。

従来であれば、この影の中に陰影を付けるため、補助的なライトを何個か追加しました。現在でもGIの使えない「CINEMA 4D Prime」ではこの手法を使いますが、GIを使えばより簡単に正確な陰影を表現できます。したがって、今回は補助ライトを追加せずに、話を次に進めます。

 

また、現在の影をよく見ると形がいびつです。これは、エリアライトの形状と向きがシーンに合っていないからです。現在エリアライトは正方形で、垂直に立っています。これでは自然な影になりません。

ライトの「詳細」タブで「エリア形状」を「球」に変更して下さい。「エリア形状」を「球」にしておけば、ライトの方向を気にする必要がありません。したがって、ライトの「放射タイプ」が「全方向」の場合、普通はエリア形状を「球」にします。

また、「詳細」タブで「サイズX、Y、Z」を「100」に変更して下さい。これは、エリアライトの上端が天井に干渉するのを防ぐためです。エリアライトの一部がオブジェクトの内部に入った場合、その部分は「シーン全体に対して影を落とす」ことになり、結果的に砂目状のノイズが発生します。

図041-5

 

 

 

Step 3

減衰

 次に、ライトから放射された光が減衰するように設定します。CINEMA 4Dは R12以降、レンダリングの計算をリニア空間で実行するようになっているので、光の減衰は現実と同じように「(距離の)2乗に反比例」を選択します。ただし、R11以前のファイルを開いた場合等はリニア空間を使わない古い設定になってしまうので、必ずプロジェクト設定を開いて、「リニアワークフロー」をチェックし、「入力カラープロフィル」を「リニア」に切り替えて下さい。それでは、「light」を選択し、属性マネージャの詳細タブで「減衰」を「2乗に反比例」、「減衰基準距離」を「300」に変更し、「ビューをレンダリング」して下さい。

図041-6

 

依然として影の中は真っ黒ですが、壁の上部に比べて床が暗くなり、ライトの存在感が増しました。

 

これでライトの設定は終わりです。3DCGにおけるライトの働きは、簡単に言うなら「光を放射すること」ですが、もう少し詳しく言うと「直接光を出すこと」です。

現実世界でもライトは直接光を放射するのでこの点は同じです。しかし現実世界では、壁に当たった光は自然と反射され「間接光」になります。この間接光による照明が「間接照明」ですが、「レイトレーシング」の計算では壁に当たった光はそこで消えてしまいます。つまり、間接光は発生せず、したがって間接照明も表現されないわけです。これが、「影(陰)の中が真っ黒」である理由です。

これは、絵的には大問題なのですが、ライトオブジェクトの仕事は「直接光」を出すことだけであり、その後「間接光」がどうなるかまでは決められません。理由は、間接光の性質が「マテリアル」に大きく左右されるからです。

そこで、次のステップでは間接照明を扱うための機能である「GI(グローバルイルミネーション)」について説明し、影の問題を解決します。また、間接光とマテリアルの関係については、次の章や、「GI基礎」の講習で詳しく説明します。

 

 

Step 4

GI(グローバルイルミネーション)

 次に、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の設定が難しいのは次のような理由があるからです。

1. GIの計算に向いたシーンと向かないシーンでは、計算時間に数十倍の差が出る。

仕事を始める前にこれを見切れないと納期や予算を見積もれません。また、現状ではGIを使えない場合もよくあるので、こういう場合は速い段階で仕事の内容を変えるか、断る必要があります。

2. どんなシーンであれ、適切な設定と不適切な設定では、計算時間に数百倍の差が出る。

まずCINEMA 4Dのデフォルト設定やマニュアルに書いてある設定は全く役に立ちません。このテキストでは、格段に実用的な設定を説明しますが、それでも万能ではありません。最適な設定は、シーンの構成や仕事の内容によって大きく変わるからです。この部分は各ユーザが努力して調整するしかありません。

またこのような性質から、GIの計算において「速いコンピュータを買う」というのはほとんど意味がありません。「速い」と言ってもせいぜい5倍です。これを10台買っても50倍に過ぎません。速いコンピュータを10台並べても、「最適な設定」には全くかなわないのです。

むしろ、速いコンピュータを買うと「コンピュータが速いから、GIの設定は適当でいいだろう」という「慢心」や「油断」が生じ、ロクな絵を作れない場合がよくあります。

3. GIの多くのパラメータに「最適値」があり、それより大きくしても小さくしても計算時間が長くなる。

ここがGIの一番難しいところです。GIの設定については、次の照明基礎02で詳しく解説します。

4. アニメーションを作るのが難しい

静止画もアニメーションも基本的な設定方法は同じです。しかし、GIのアニメーションでは計算誤差による「ちらつき」が発生するので、これを抑えるためにより的確な設定が必要になります。

GIのパラメータを理解する前にアニメーションを作っても全く勉強にならないので、まずは自由自在に静止画を作れるようになることを目標とするといいでしょう。

 

 

Step 5

32bitの画像フォーマット(HDR)

 ここでは、ステップ4で残っていた「明るすぎる」という問題を解決します。まず、「明るすぎる」という問題は、画像フォーマットを32bit(HDR等)にすることで簡単に解決できます。従来の8bitや16bitの画像フォーマット(JPEGやPNG、QuickTime等)を使う場合、シーンの明るさはレンダリング前に調整しておく必要がありました。理由は、これらのフォーマットが「白より明るい色を記録できない」からです。言い換えると、これらのフォーマットで絵の中の白く飛んでしまった部分を後から調整するのは不可能でした。しかし32bitのフォーマットを使うと、この「白く飛んでしまった部分」を後からどうにでも調整できるのです。それではやってみましょう。まず、レンダリング設定の「保存」タブで、「ファイル」に適切なファイル名を指定し、「フォーマット」を「Radiance(HDR)」に変更し、「画像表示にレンダリング」を実行します。

図041-8

 

ここで画像表示ウインドウを見ると、ステップ4でレンダリングした「明るすぎる」画像が表示されているはずです。しかし、ウインドウ右にあるフィルタ機能を有効にし、「露出」の値をたとえば「-1」にすると、全体が暗くなり、球体の上部や壁の上部等の白く飛んでいた部分の色が正しく表示されるはずです。

図041-9

 

また、露出の値をプラスにすれば、立方体の陰の中の暗い部分が明るくなります。また、ここでガンマを変更することもできます。そして、このように明るさを大きく変更しても階調が粗くなることはありません。

このように、HDRを使えばシーンの明るさを気にせず作業を進められます。HDRフォーマットからPSDやJPEGフォーマットへの変換は、CINEMA 4Dの画像表示でもできますし、PhotoshopやAfterEffects等の画像編集ソフトでもできます。したがって、アニメーションを作る場合でも、いきなりQuickTime等でムービーファイルを書き出すのではなく、一度HDRの連番画像で保存し、各種の調整をした後でムービーに変換した方が効率よく作業を進められると思います。

サンプル041b

 

次の章