Skip to content

カテゴリ: GI基礎

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