Skip to content

カテゴリ: 講座テキスト

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

 

次の章

R14用: 照明基礎02: GIの設定

R14 照明基礎

レベル/ 対象者:基礎/CINEMA 4Dを少し使える人。
対象ソフトウエア、プラグイン:CINEMA 4D R14 Broadcast以上
参考とする写真を見る。よく見る。もう一度見る。そして自分でも写真を撮ってみる。
冨士 俊雄/ gtofuji@gmail.com
このテキストはR14用です。R13以前のCINEMA 4Dを使っているユーザーは照明基礎を参照して下さい。
章番号 題名 内容、及び関連する章やサンプルファイル 作成日/注記
042 2_GIの設定 心構え、GIモード、拡散反射回数、フルスクリーンモード、エリアシャドウ、計算精度、最小サンプル数、最大サンプル数、サンプル、イラディアンスキャッシュ、プレパス、コンポジットタグ、GIエリア、GIポータル、レコード密度、最小レート、最大レート、半径、最小半径、密度コントロール、GIアニメーションの設定 2013.1.12
前の章 次の章

 

Step 1

心構え

 この章では、照明基礎01で作成したシーンを使って、GIの設定の基本を説明します。初めに「心構え」について説明します。なぜこんなことを書くかというと、「GIがうまく使えない」とか、「GIが遅い」という人の話をよく聞いてみると、「絵作り」とか「技術」以前にここで間違っている人が多いからです。1. これはGIに限ったことではありませんが、「知らない機能はいじらない」というのが鉄則です。「知らない機能を適当にいじってリアル絵ができることは絶対にありません」。また、「知らない機能を適当にいじると元に戻せなくなります」。つまり、「知らない機能を適当にいじった段階で、リアルな絵ができる可能性は消滅する」ということを肝に銘じておいて下さい。

3DCGの機能の中には、理解しなくても使えるものや、適当にいじっているうちに理解できる簡単なものもたくさんあります。しかしGIは、専門知識のない人間が適当にいじって理解できる程簡単ではありません。

 

2. 次に、これもGIに限ったことではありませんが、「知らない機能」に対応するには二つの方法があります。

一つは「物理」、「数学」、「プログラミング」等の専門書をたくさん読んで、何年もかけてその機能を真に理解して使う方法です。もう一つは、「マニュアル」や「このテキスト」、「書籍」、「Webで公開されているチュートリアル」等の情報を信じて、その機能を理解しないまま使う方法です。

どちらの方法で対応するかは各自の責任で決めて下さい。また、後者の場合にどの情報源を信用するかも各自でテストして決める必要があります。

 

 

Step 2

一般 -> GIモード

 CINEMA 4Dには多くのGIモードがありますが、R14で実用的なのは「IR(静止画)」だけです。静止画に限らず、カメラアニメーション、フルアニメーション、及びそれらのNETレンダリング全てにおいて、「IR(静止画)」を使うようにして下さい。この点に関して、マニュアルや他のチュートリアルでは、「状況に応じて最適なモードを使う」ように書いてありますが、私の経験によれば、全ての状況に対して「IR(静止画)」が最も適しています。

 

Step 3

一般 -> 拡散反射回数

 本来、基礎の講習でパラメータの最適化等の細かい話はしないものですが、GIの場合パラメータのバランスによって画質やレンダリング時間が大きく変わります。そこで、いくつかの重要なパラメータに関して、「具体的な数値」を「レンダリング時間」と比較しながら説明します。また、ここから先は、レンダリング時間を厳密に比較するため、エディターへのプレビューレンダリングではなく、「画像表示にレンダリング」機能を使ってレンダリングします。まずサンプル042aを開いて、「画像表示にレンダリング」して下さい。これは照明基礎01で作成したサンプル041bと全く同じです。レンダリング時間は「27秒」でした。


図042-1

 

ここで、CINEMA 4Dでは「フルスクリーンモード(control + tab)」を実行すると、選択したウインドウを最大化できます。

 

次に、この絵はまだ不完全です。なぜなら図042-1では間接照明を1回しか計算していないからです。つまり、ライトから出た「直接光(0番目)」が壁に当たると、そこから「間接光(1番目)」が出ます。しかし、この「間接光(1番目)」が壁に当たっても、そこから「間接光(2番目)」が出ないのです。

これはレンダリング時間を短縮するために省略されているのです。もちろん、間接光を際限なく計算するのは無駄ですが、省略し過ぎると「GIらしい絵」になりません。

それでは、「拡散反射回数」の値を「4」に増やして、結果を比べてみましょう。


図042-2

 

どうでしょうか、拡散反射を4回計算することで、影の中がずいぶん明るくなり、立体感が増しました。レンダリング時間は少しのびて「30秒」になりましたが、絵の「品質」を考えると、やはり拡散反射回数の値は4回以上にしたいものです。

ただし、シーンの構成によっては拡散反射回数の値を「4」にすると、レンダリング時間が何倍にものびる場合があります。それは、奥まった部分やガラスのような屈折するマテリアルを多く含んだシーンに多いのですが、このような場合は、この値を「3」、「2」と減らしてみて下さい。

 

 

Step 4

エリアシャドウの最適化

 それでは次に、図042-2(レンダリング時間30秒)を基準として、画質を落とさずにレンダリング時間をどこまで短縮できるか検討します。まず最初に、エリアシャドウの設定を最適化します。エリアシャドウは、厳密にはGIとは異なる機能ですが、GIと併用することが多く、レンダリングのアルゴリズムも似ています。ここで、エリアシャドウの設定を変える際に、GIの計算をする必要はないので、 レンダリング設定で「グローバルイルミネーション」特殊効果のチェックを外し、再度「画像表示にレンダリング」します。


図042-3

 

レンダリング時間は「7秒」でした。これを何とか半分ぐらいに縮めます。

まずエリアシャドウには「計算精度」、「最小サンプル数」、「最大サンプル数」の3個のパラメータがあります。そして、あるピクセルを計算する際に、その周囲の「明るさの変化」が小さければ最小サンプル数が使われ、変化が大きければ最大サンプル数が使われます。そして、その「明るさの変化」の度合いを決めるのが計算精度の値です。

ここで、「サンプル数」というと難しく聞こえますが、要は「光を何本飛ばすか」ということです。

さて、デフォルトでは「最小サンプル数」が「8」、「最大サンプル数」が「100」になっています。これは、「白い床に黒い影が落ちる」といった最も難しい条件を想定して決められた値なので、「光が弱い場合」や、「床の色が濃い場合」、「GIを使う場合」、「アンチエイリアスを使う場合」などは減らせます。今回もGIを使っているので、「4」と「32」ぐらいに減らしてみましょう。


図042-4

 

計算時間を「3秒」に短縮できました。確かに影が粗くなっていますが、GIやアンチエイリアスをかければほとんどわからなくなるはずです。一般的に、これらの値は「2 – 16」から「6 – 48」ぐらいの間で調整するといいでしょう。

なお、計算精度の値は「75」のままで十分です。

 

 

Step 5

サンプリング -> サンプル

 次にGIの「イラディアンスキャッシュ(IRの記録)」を最適化します。イラディアンスキャッシュというのは、GI計算のプレパスで表示される「白い点々」の集まりのことで、これらの点一つ一つの中にその部分の明るさの情報が入っています。つまり、GIを正確にレンダリングするには、以下の二つが重要となるわけです。1. 白い点々の中に含まれる明るさ情報が正確であること。2. 白い点々が十分に細かいこと。

そして、この白い点々の「正確さ」を決めるのが、「サンプル」の値です。

それでは、このサンプルの値を「中」から「低」に下げてください。


図042-5

 

サンプル数を減らしても、レンダリング時間はが「26秒」とほぼ変っていません。それでは、イラディアンスキャッシュを生成するための「プレパス」だけを比較してみましょう。


図042-6

 

イラディアンスキャッシュの精度が悪くなったかわりに、計算時間は「6秒」短くなっています。ところが、イラディアンスキャッシュの精度が悪くなると、最終レンダリング時にそれを補間するのが難しくなり、結果的に全体のレンダリング時間は変らなくなってしまうのです。

GIの設定をしていると、こういうことがよくあります。これがGI設定の難しさです。というわけで、サンプルの値は「中」に戻しましょう。

 

一般的に、サンプルの値は「中」か「高」のどちらかで使います。「低」にしても速くなりませんし、「高」より上げてもきれいになりません。

ほとんどの場合、静止画は「高」で十分ですが、アニメーションでは「高」でも画面のちらつきが気になる場合があります。しかし、そのような難しいシーンで単純にサンプルの値を上げても、レンダリング時間がのびるばかりで、画質はそれほどよくなりません。したがってそのような場合は、後の章で説明する「コンポジットタグ」や「GIエリア」、「GIポータル」といった機能を使って、「部分的に計算精度を上げる」戦略を取るようにして下さい。

 

 

Step 6

イラディアンキャッシュ -> レコード密度

 次に、ステップ5で説明した白い点々の「細かさ」を決めるのが、「レコード密度」の値です。レコード密度には、大きく分けて2種類のパラメータがあります。1. プレパス計算のサイズや回数を指定するパラメータ(「最小レート」、「最大レート」)。2. 白い点々の密度を決めるパラメータ(「半径」、「最小半径」、「密度コントロール」)。

「プレパス計算」というのは、最終レンダリングの前に白い点々を計算することで、解像度を上げながら何回かくり返されます。たとえば、「最小レート」の値が「-3」で「最大レート」の値が「0」の場合、「解像度1/8」、「解像度1/4」、「解像度1/2」、「等倍(フルサイズ)」の4回プレパス計算がくり返されます。

レコード密度のパラメータは、シーンに細かいオブジェクトが存在する場合細かくする必要があります。しかし、今回のシーンにはそれ程細かいオブジェクトが存在しないので、「低」にしてみます。


図042-7

 

レンダリング時間は半分以下の「11秒」となりました。しかし、明らかに細かい部分の画質が低下したので少しだけパラメータを戻します。それでは、「半径」の値を「16」にして下さい。


図042-8

 

レンダリング時間は「13秒」にのびましたが、影の部分の「光漏れ」が解消されました。

GIの設定において、レコード密度のパラメータは最も重要です。それは、最も画質に影響し、最もレンダリング時間に影響を与え、最も値を決めるのが難しいからです。

また言いかえれば、レコード密度の値が適切でないかぎり、他のパラメータをどんなにいじっても絶対にいい絵はできないということです。心して設定して下さい。

 

一般的に、レコード密度の値は「低」を基本として、「半径」の値だけを「2 – 16」の間で変えることをお勧めします。それ以外のパラメータは、その意味を十分に理解していない限り触らない方がいいです。

サンプル042b

 

前の章 次の章

R14用: 照明基礎03: GIエリア

R14 照明基礎

レベル/ 対象者:基礎/CINEMA 4Dを少し使える人。
対象ソフトウエア、プラグイン:CINEMA 4D R14 Broadcast以上
参考とする写真を見る。よく見る。もう一度見る。そして自分でも写真を撮ってみる。
冨士 俊雄/ gtofuji@gmail.com
このテキストはR14用です。R13以前のCINEMA 4Dを使っているユーザーは照明基礎を参照して下さい。
章番号 題名 内容、及び関連する章やサンプルファイル 作成日/注記
043 3_GIエリア GIエリア、発光するマテリアル、レイトレーシング、直接光、間接光、発光、ボリュームイフェクト、IBL、HDRパノラマ、実写合成、アンチエイリアス、マイナス成分をクリップ、GIエリアライト、GIポータル、GIアニメーションの設定 2013.1.12
前の章 次の章

Step 1

GIエリア(発光するマテリアル)による照明

 この章では、照明基礎02で作成したシーンを元にして、「ライトを使わない照明(GIエリア)」について説明します。まず、サンプル043aサンプル043bを開いて、画像表示にレンダリングして下さい。サンプル043aは、照明基礎02で作成したサンプル042bと全く同じものです。

図043-1

 レンダリング時間は、043aが「13秒」、043bが「15秒」で大差ありません。

この二つの画像は、見た目はよく似ていますが、シーンの構成には「非常に大きな違い」があります。それは「ライトの有無」です。043aはライトによって普通に照明されていますが、043bにはライトが存在せず、その代わり「発光するマテリアルを適用したオブジェクト(GIエリアライト)」によって照明されているのです。

図043-2

 この違いは、レンダリング設定で「グローバルイルミネーション」特殊効果のチェックを外して、レイトレーシングだけでレンダリングしてみるとよくわかります。

図043-3

 この二つの画像は、大きく違っています。しかし、GIを適用してレンダリングすると、図043-1のように似た画像になるのです。これは別に画像が壊れたり、リンクが間違っているわけではありません。

このような違いが生じる理由について次のステップで説明します。

 

 

Step 2

レイトレーシングとGIの関係

 まず、「レイトレーシング」という計算方法では「ライトから出た光(直接光)」による照明だけが計算されます。したがって、GIを切った043aでは天井や壁は照明されているものの、立方体や球体の陰は真っ暗です。さらに、043bでは、ライトが存在しないので照明が全くありません。唯一、発光するマテリアルを適用した「GI_area_light」オブジェクトだけが見えています。次に、「GI(グローバルイルミネーション)」という計算方法を追加すると「それ以外の光(発光や間接光)」による照明も計算されます。ただし、GIはライトから出た光を計算しません。これはとても重要な点です。つまり、ライトから出た「最初の光」はレイトレーシングが計算し、オブジェクトによって反射された「2回目以降の光」をGIが計算するのです。言い換えると、レイトレーシングは「直接光だけ」を計算し、GIは「間接光だけ」を計算するわけです。したがって、「GIの計算は、レイトレーシングの結果を元にして始まる」と言えます。また、「GIの結果は単独では意味を持たず、レイトレーシングの結果に加算されて初めて意味を持つ」とも言えます。

たとえば、マルチパスレンダリング機能を使って、図043-1の絵の中のGI成分だけを取り出すと下のようになります。つまり、これらの絵を図043-3の絵と加算合成すると、図043-1の絵になるわけです。

図043-4

 

まず、上左の絵の天井中央部分に注目すると、ライトからの直接光が計算されていないことがわかります。次に、上右の絵の天井中央部分に注目すると、「発光するマテリアルから出た光」が天井を照明していることがわかります。

つまり、CINEMA 4Dの世界では「発光するマテリアルから出た光」というのは、「間接光」と同じ扱いになるのです。この他、ライトの「可視照明」や、「PyroCluster」などのボリュームエフェクトから出た光も「間接光」として扱われます。

また、一つ上の図043-3の2枚の絵を比較して、どちらの方が「その後のGIの計算が楽か」と考えてみれば、直感的に右の真っ暗な絵の方が大変であるとわかるでしょう。

 

 

Step 3

GIエリア(発光するマテリアル)の利点

 そのためには特殊なHDRパノラマ画像を用意する必要がありますが、適切な画像が得られれば、通常のライトやオブジェクトの組み合わせでは表現できないようなリアルな絵を、簡単に表現できます。また、画像を使って照明すれば、レンダリングした画像が元の画像によく馴染むので、3DCGの画像を実写画像に合成する目的でもよくIBLが使われます。

 このように、通常のライトで十分間に合うようなケースで発光するマテリアルを使う利点はありません。しかし、次のようなケースでは大きな利点があります。1. ライトが大きかったり、形状が複雑である場合

たとえば、サンプル043-1で天井の「GI_area_light」を消し、両側の壁を発光させると次のようになります(サンプル043c)。

図043-5

 レンダリング時間は「7秒」でした。このようなケースでは、無理にエリアライトなどを使うよりも、発光するマテリアルを使った方が、シーンの作成が楽です。また、レンダリング時間や画質の点でも有利です。

 

2. ライトが無数にある場合

たとえば、高層ビルの中の天井に配置された無数の蛍光灯や、巨大な橋や塔に取り付けられた無数のイルミネーションを全てライトオブジェクトで表現するのは無理です。

このようなケースでも、無数のライトをポリゴンやテクスチャで表現し、発光するマテリアルを適用してGIでレンダリングすれば、それら無数のライトによる照明を十分な品質で表現できます。

 

3. IBL(イメージベースドライティング、照明基礎04を参照)

IBLは、ライトオブジェクトの「代用品」として発光するマテリアルを使うのではなく、もっと積極的に「発光する画像だけでリアルな背景を表現する」ことを目的としています。

図043-6

 

そのためには特殊なHDRパノラマ画像を用意する必要がありますが、適切な画像が得られれば、通常のライトやオブジェクトの組み合わせでは表現できないようなリアルな絵を、簡単に表現できます。

また、画像を使って照明すれば、レンダリングした画像が元の画像によく馴染むので、3DCGの画像を実写画像に合成する目的でもよくIBLが使われます。

 

 

Step 4

GIエリアライト

 それでは、サンプル043bに戻って、このシーンのGIパラメータを最適化することを考えましょう。まず、043bの「GI_area_light」オブジェクトの周辺を見ると「黒い縁」があることに気がつきます。これは発光するマテリアルが非常に明るいため、そのアンチエイリアスの「マイナス成分」が0を切っているからです。アンチアイリアスにマイナス成分が発生するのは、画像をシャープに見せるためで、R13から追加された機能です。この問題を解決するには、「レンダリング設定 -> アンチエイリアス -> マイナス成分をクリップ」をチェックします。

図043-7

 

次に、043bにはかなりムラがあります。図043-1右図の天井の隅を見るとそれがよくわかります。そこで、なるべくレンダリング時間を増やさずに、このムラを消す方法を考えます。

まず最初に思いつくのは、「ストカスティックサンプル」の値を大きくすることです。「ストカスティックサンプル」は、「GIのプレパスで計算される白い点々に含まれる明るさ情報の正確さ」を決定するパラメータです。それでは、この値を「中」から「高」に上げて「画像表示にレンダリング」してみましょう。

図043-8

 

レンダリング時間は「34秒」に伸びましたが、確かにムラが少なくなりました。

それでは、次に「GIエリアライト」というパラメータを追加してみます。

ここまでのGIの設定では、GIはシーンの明るさを「手探り」で計算していました。つまり、どこに明るいオブジェクト(このシーンでは「GI_area_light」)があるのかわからないので、明るさを調べるための光を、全ての方向に「均等に」放射していたのです。この光の本数が「ストカスティックサンプル」の数です。

しかし、「もしGIを計算する前に明るいオブジェクトがどこにあるのかわかっていれば」話は簡単です。明るさを調べるための光を、そのオブジェクトの方向に「重点的に」放射すればいいのです。この「明るいオブジェクトがどこにあるのかをGIに教えるためのパラメータ」が「GIエリアライト」です。

「GIエリアライト」はマテリアルの中で設定します。それでは「light」マテリアルをダブルクリックし、マテリアル編集ウインドウを開いて下さい。そして、「GIと照明モデル」ページで、「GIエリアライト」をチェックします。

これで、「このマテリアルは非常に明るい」ということをGIに教えることができました。そして、このマテリアルが「GI_area_light」オブジェクトに適用されています。

と同時に、「ストカスティックサンプル」の値は「高」から「中」に戻しておきましょう。この状態で「画像表示にレンダリング」して下さい。

図043-9

レンダリング時間は「14秒」と短くなったにもかかわらず、「ストカスティックサンプル」の値を「高」にした場合と同じか、それ以上にムラなくレンダリングできました。

結論として、GIエリアライトを使うことによって、レンダリング時間を半分に短縮できたことになります。これだけでも十分な効果ですが、実は次のステップ5や、照明基礎04で扱うようなコントラストの高いシーンでは、GIエリアライトをうまく使うことで、レンダリング時間を1/10以下に短縮できます。

ですから、コントラストの高いシーンをGIでレンダリングしていて、計算時間が異常に長くなったり、ムラが消えない場合は、まずこの「GIエリアライト」を適切に設定してみて下さい。

 

 

Step 5

GIポータル

 「GIポータル」は、非常に重要なパラメータです。GIポータルの「ポータル」は、「入り口」という意味で、CINEMA 4Dの中では「(GIの)取り入れ口」つまり「(GIの)窓」というような意味で使われます。GIポータルの働きは、基本的に前のステップで説明した発光するマテリアルに対する「GIエリアライト」と同じですが、「窓である」点が異なっています。つまり、発光するマテリアルに「GIエリアライト」を指定した場合、GIはそのマテリアルに注目し、そのマテリアルの明るさを計算します。これに対して、「GIポータル」を指定した場合、GIは同じようにGIポータル(窓)を注目しますが、計算されるのは「GIポータルの先に見える外の風景の明るさ」なのです。

ある人は、「それなら、外の風景全てに直接GIエリアライトを指定すればいい」と考えるかも知れません。しかし「外の風景全てに注目する」というのは不可能で、結局「何も注目しない」というのと同じことです。

「窓から見える風景だけ」に絞ってGIに注目させる。そこにGIポータルの利点があります。そしてこの時、「窓から見える風景」というのは壁や床の位置によって大きく変わります。

それでは、サンプル043dを開いて下さい。

このサンプルでは、部屋の天井の真ん中に天窓が作ってあります。そして、窓の上には発光するマテリアルを適用した「GI_area_light」オブジェクトが浮かんでいます。

このシーンを前のステップと同じGIの設定で「画像表示にレンダリング」すると次のようになります。

図043-10

 

レンダリング時間は「16秒」ですが、シーンのコントラストが上がったため、お化け屋敷のような質感になっています。

それでは、「ストカスティックサンプル」の値を「高」に上げて「画像表示にレンダリング」してみて下さい。

図043-11

 

レンダリング時間は「36秒」に伸びましたが、あまりよくなっていません。おそらくレンダリング時間が10倍になるほど値を上げてもムラは消えないでしょう。

 

それでは、次にGIポータルを設定してみます。

まず、「GI_portal」マテリアルをダブルクリックし、マテリアル編集ウインドウを開いて下さい。そして、「GIと照明モデル」ページで、「GIポータル」をチェックして下さい。このマテリアルは「Window」オブジェクトに適用されています。

と同時に、「ストカスティックサンプル」の値は「中」に戻しておきましょう。この状態で「画像表示にレンダリング」して下さい。

図043-12

 

レンダリング時間は「22秒」と短くなったにもかかわらず、かなりよくなりました。これがGIポータルの効果です。

 

 

前の章 次の章

R14用: 照明基礎04: GIエリア

R14 照明基礎

レベル/ 対象者:基礎/CINEMA 4Dを少し使える人。
対象ソフトウエア、プラグイン:CINEMA 4D R14 Broadcast以上
参考とする写真を見る。よく見る。もう一度見る。そして自分でも写真を撮ってみる。
冨士 俊雄/ gtofuji@gmail.com
このテキストはR14用です。R13以前のCINEMA 4Dを使っているユーザーは照明基礎を参照して下さい。
章番号 題名 内容、及び関連する章やサンプルファイル 作成日/注記
044 4_IBL IBL、イメージベースドライティング、実写合成、HDRパノラマ、空オブジェクト、空/スカイを個別サンプリング、スカイサンプラー、全ピクセルでサンプル、砂目状のノイズ、カスタムサンプル数を使う、サンプル数、GIアニメーションの設定 2013.1.12
前の章

 

Step 1

IBL(イメージベースドライティング)

 イメージベースドライティングというのは、「画像を使ってシーンを照明する」ことであり、これによって「画像を使って環境を作る」ことが可能になります。照明基礎03では「発光するオブジェクトを使ってシーンを照明する」方法について説明しましたが、それをさらに一歩進めた方法だと言えます。まずIBLの利点について三つ説明します。

1. 画像を使って照明するので、3Dオブジェクトの色や陰影がその画像によく馴染む。

したがって、実写画像に3DCGの画像を合成する際によく使われます。

図044-1

2. 照明だけでなくハイライトや鏡面反射もリアルに表現できる。

したがって、周囲に写り込むオブジェクトを作る必要がなく、シーンの構成が非常に簡単になります。

図044-2

3. 写真を扱うことで絵作りの勉強ができる。

実はこれはとても重要なことです。3DCGでリアルな画像を作るには、技術以前に「リアルとは何か」を理解しておく必要があります。そして、この理解は現実の世界を注意深く観察することによって得られます。写真そのものは現実ではありませんが、現実を注意深く観察するための手段として、また観察力を養うための訓練方法としてとても有効です。

 

下の写真は今回のサンプルファイルに使用するHDRパノラマ画像で、私が撮影しました。-10EVから0EVまで5段階に露出を変えて撮影した合計150枚の写真を合成して作っています。カメラはCanon EOS kiss X4、レンズはSigmaの15mmを使いました。

図044-3a

HDRパノラマ画像をダウンロードする(約9MB)

HDRパノラマ画像の明るさを変えたムービーを見る

150枚の元画像を見る(約500KB)

図044-3b

HDRパノラマ画像をダウンロードする(約9MB)

HDRパノラマ画像の明るさを変えたムービーを見る

 

次にIBLの欠点について三つ説明します。

1. そもそもIBL用の画像を作るのが難しい。

IBLに使う画像は二つの点で特殊です。一つは、シーン全体を覆って照明するため「パノラマ写真」であること。もう一つは、太陽などの明るい部分の情報を正確に持っている「HDR画像」であることです。

15年前にフィルムカメラを使ってHDRパノラマ画像を作るのは本当に大変でした。しかし、現在ではデジタルカメラで数十枚の写真を撮影し、それをつなぐことで比較的簡単に作れます。また、そのためのハードウエアやソフトウエアもいろいろ市販されています。IBL用にHDRパノラマ画像の素材集もいろいろ市販されていますが、私としては、絵作りや写真の勉強も兼ねて自分でHDRパノラマを作ることをお勧めします。そんなに難しいものではありません。

2. レンダリング時間が長い。

GIを使ってコントラストの高いシーンをレンダリングするので、どうしてもレンダリング時間が長くなります。ただし、同様の品質の背景を通常のオブジェクトとマテリアルで作る場合に比べたら、はるかに簡単に制作でき、短時間でレンダリングできます。

3. 空など遠くにあるものは問題ないが、地面や壁など近くにあるものは扱いが難しい。

これはIBL用の画像を空オブジェクト(無限球)に貼付けた場合、「それに触れない」からです。この問題は、特にオブジェクトを床に置いて影を描かせる場合に顕著になります。

このような場合は、床だけ通常のオブジェクトで作成し、どこかで背景とスムーズにつなぐ必要があります。

 

 

Step 2

IBLを使ってレンダリングしてみる

 それでは、さっそくIBLを使ってレンダリングしてみましょう。まずステップ1に戻ってHDRパノラマ画像を2枚ダウンロードしてください。次にサンプル044aを開いて下さい。このサンプルには、GIの効果を確認しやすいように中庭のある建物を簡略化したオブジェクトが入っています。また、HDRパノラマ画像は発光チャンネルに入れて「空」オブジェクト(無限球)に貼ってあります。それでは画像表示にレンダリングして下さい。

図044-4

 

最初は、照明基礎02と同じGIの設定でレンダリングしてみました。レンダリング時間は「6秒」で画質もまあまあです。R13まではこの画質を得るのに非常に面倒な設定が必要でしたが、R14ではあっけない程簡単です。

それでは、IBLをもう一枚のHDR画像に切り替えてみます。このHDR画像は非常にコントラストが高く、最も難しい部類に入ります。

図044-5

 

レンダリング時間は「7秒」でした。影が甘いのが気になりますが、特に目立つようなムラはありません。

それでは、ストカスティックサンプルを「高」、レコード密度の半径を「2」にして再度レンダリングしてみましょう。

図044-6

 レンダリング時間は「43秒」と長くなりましたが、だいぶ影がシャープになりました。

 

 

Step 3

空/スカイを個別サンプリング

 前のステップでは、画質を上げたい場合は「ストカスティックサンプル」や「レコード密度」の値を上げる、という基本にしたがって、影をシャープにしました。それに対してこのステップでは、影をシャープにするためのもう一つの方法を説明します。さて、R13までのCINEMA 4Dには「スカイサンプラー」という大変使いやすいGIモードがありました。しかしR14ではこの「スカイサンプラー」が廃止され、他のモードの中に組み込まれてしまいました。この統合にはいい面と悪い面の両方があります。いい面、他のGIモードとスカイサンプラーを同時に使えるようになった。悪い面、設定が面倒になり、レンダリング速度が遅くなった。

 

そして、このステップで説明するのは、このスカイサンプラーの機能を使う方法です。とは言っても、実は「IR(静止画)」モードを選択すると、既にスカイサンプラーの機能は働いています。だからステップ2で簡単にきれいな絵ができたのです。

というわけで、ここではスカイサンプラー機能の詳細について説明します。スカイサンプラーの機能は、「サンプリング -> 空/スカイを個別サンプリング」という部分にあります。そして、この中には二つのオプションがあります。それでは「全ピクセルでサンプル」をチェックして下さい。

と同時に、「ストカスティックサンプル」と「レコード密度 -> 半径」の値を「中」と「16」に戻します。この状態でレンダリングしてみて下さい。

図044-7

 レンダリング時間は「24秒」にのびましたが、非常にシャープな影が描かれています。

R12用のテキストでは、影をシャープにするためにライトを追加する方法を説明したのですが、R14ではライトを置かなくても十分にシャープな影を描けます。

しかし、「全ピクセルでサンプル」を使うと、スカイサンプラーの場合と同様に「砂目状のノイズ」が目立つようになります。そこで、二つ目の「カスタムサンプル数を使う」オプションをチェックし、サンプル数を「256」に上げてレンダリングしてみます。

図044-8

 

レンダリング時間は「52秒」にのびましたが、砂目状のノイズが減りました。このシーンは非常に計算が難しいので、52秒というのは妥当な時間だと思います。

最後に、アニメーションを描かせてみましょう。アニメーションではわずかなムラでも不快なちらつきの原因になります。そこで、「ストカスティックサンプル -> 精度」の値を高よりも高い「120」、「レコード密度 -> 半径」の値を「2」に上げてレンダリングしてみました。

図044-9

 

レンダリング時間はMacMini2台のNETで108分でした(1枚当たり22秒)。まだ多少ザラついていますが、十分実用的な画質とレンダリング速度だと思います(サンプル044b)。

 

 

前の章

MoGraphとダイナミクス: 1.ダイナミクスとは何か

ダイナミクスを使った、MoGraphを動かすためのもう一つの方法について学んでいきます。

■講座テキスト

  1. MoGraphとダイナミクス: 1.ダイナミクスとは何か
  2. MoGraphとダイナミクス: 2.リジッドボディとソフトボディ
  3. MoGraphとダイナミクス: 3.スプラインとその他の機能
  4. MoGraphとダイナミクス: 4.ダイナミクスのアニメーション

Step 1

物理法則を使ってオブジェクトを動かす

 ダイナミクスは、簡単に言うと「オブジェクトを、物理法則に従って動かしたり変形させる(物理シミュレーション)機能」です。物理法則を使うことによって、キーを打たなくてもオブジェクトの複雑な動きや変形を表現できます。例えば、非常に多くのオブジェクトを含むシーンや、衣服のようにオブジェクトを複雑かつ自然に変形させるシーンは、もはやキーフレームアニメーションでは表現できません。しかし、ダイナミクスを使えば簡単に表現できます。

多数のオブジェクトを動かすための方法として、CINEMA 4Dには他にもパーティクルやMoGraphという機能があります。そして、パーティクルの場合は「場(モディファイア、フォース)」、MoGraphの場合は「エフェクタ」という機能を使ってオブジェクトの動きをコントロールします。

ダイナミクスはパーティクルやMoGraphとも組み合わせられるので、ある意味では「モディファイア」や「エフェクタ」の機能を拡張するものだと考えてもいいでしょう。

しかし、衣服のようなオブジェクトをリアルに変形させるには、ダイナミクスを使うしかありません。昔は、モーフやPLA、ボーンといった技術を組み合わせて表現することもありましたが、とても大変で、なかなかいい結果が得られませんでした。

 

ここで問題なのは、現在のCINEMA 4Dに搭載されているダイナミクスが一つではない、ということです。「歴史的な理由」により、いろいろな機能の中にいろいろな形のダイナミクスが入っています。そしてこれらは異なった時代に異なったプログラマーによって作られたため、インターフェイスや使い方、働き等が異なっていて、かなり混乱しています。また、CINEMA 4Dのグレードによっては使えないダイナミクスもあります。

とはいっても、この混乱はもうどうしようもない話なので、整理しながら、なるべく具体的に説明していきたいと思います。

 

Step 2

ダイナミクスの種類

 それでは、まず現在のCINEMA 4Dに入っているダイナミクスの種類について説明します。このステップは重要なのですが、いきなり読んでもわからないと思います。適当に飛ばし読みして、後で何か困った時に読み返すようにして下さい。

1. ダイナミクス

ダイナミクスは現在のCINEMA 4Dの代表的なダイナミクス機能です。ただし、「ダイナミクス」は「Studio」グレードでしか使えません。

ダイナミクスが扱えるオブジェクトは、「ポリゴン」、「スプライン」、「クローン」、「パーティクル」です。また、扱える機能は、「場」、「衝突」、「変形」、「圧力」、「体積」、「破断」です。さらに、他のオブジェクトやタグを組み合わせることにより、「オブジェクト間のリンク」、「外力」、「XPresso」なども扱えます。

 

2. MoDynamics

MoDynamicsは、Studioに入っているダイナミクスの機能限定版で、「Broadcast」グレードで使えます。

MoDynamicsが扱えるオブジェクトは、「クローン」と「パーティクル」だけです。また、「オブジェクト間のリンク」や「外力」は扱えません。「XPresso」は制限なく扱えます。

 

3. デフォーマ

実は、デフォーマの中にも「ジグル」と「衝突」というダイナミクス機能が入っています。

デフォーマが扱えるオブジェクトは、「ポリゴン」だけです。しかし、全てのグレードで簡単に使えます。ですから、ダイナミクスが必要になったらまずこの機能を試してみて下さい。

ジグルは「場」と「変形」を、衝突は「衝突」と「変形」を扱うことができます。さらに、「XPresso」も扱えます。

 

4. MoGraphエフェクタ

実は、MoGraphエフェクタの中にも「ディレイ」というダイナミクス機能が入っています。

ディレイは、「クローン」に対する「位置」、「スケール」、「角度」の簡単なダイナミクスしか計算できませんが、その分簡単に使えます。憶えておいて損はありません。

 

5. MoGraphオブジェクト

実は、MoGraphオブジェクトの中にも「MoSpline」というダイナミクス機能が入っています。

MoSplineは、「スプライン」に対する「場」の働きしか計算できませんが、その分簡単に使えます。

 

6. スプラインダイナミクスタグ

スプラインダイナミクスタグは、「ヘア」に含まれるスプライン専用のダイナミクス機能です。ただし、「ヘア」は「Studio」グレードでしか使えません。

「ダイナミクス」の機能と比較すると、計算の精度や拘束等の細かい機能に関してはこちらの方が優れています。しかし、スプライン同士の衝突を計算できないとか、閉じたスプラインを計算できないという欠点があります。したがって、スプラインに関しては、ケースバイケースで二つのダイナミクス機能を使い分けるようにして下さい。また、MoGraphとダイナミクス3で説明するような「クローンを使ってスプラインのダイナミクスを表現する方法」もあります。

スプラインダイナミクスが扱える機能は、「場」、「衝突」、「変形」です。さらに、他のオブジェクトやタグを組み合わせることにより、「オブジェクト間のリンク」や「XPresso」も扱えます。

また、ヘアそのものにもダイナミクス機能が内蔵されていますが、これはヘア以外のオブジェクトを扱えないローカルな機能です。

 

7. クロスタグ

クロスタグは、「クロス」に含まれるポリゴン専用のダイナミクス機能です。ただし、クロスは「Studio」グレードでしか使えません。

「ダイナミクス」の機能と比較すると、厚みのないポリゴンで布や服を表現する場合は、クロスの方が優れています。逆に、風船のような閉じた立体を表現する場合は、ダイナミクスの方が優れています。したがって、ポリゴンに関しては、ケースバイケースで二つのダイナミクス機能を使い分けるようにして下さい。

クロスが扱える機能は、「場」、「衝突」、「変形」です。さらに、他のオブジェクトやタグを組み合わせることにより、「オブジェクト間のリンク」、「XPresso」なども扱えます。

 

8. IKタグ

「IK」タグは、キャラクタ機能の中に入っているIK専用のダイナミクス機能で、鎖のように一列にリンクされたオブジェクトにしか適用できません。ただし、全てのグレードで使えます。

IKタグが扱える機能は、「場」と「衝突」です。IKチェーンにトレーサを適用してスプライン化することも可能ですが、基本的にこの機能はIK専用と考えた方がいいでしょう。

 

9. 標準パーティクル

標準パーティクルは、CINEMA 4Dに最初に搭載されたダイナミクス機能です。そして、現在「場」と呼ばれている機能も、そもそもは標準パーティクル用に作られたもので、その後他の機能にも組み合わせられるように拡張されました。

標準パーティクルは、「パーティクル」に対する「場」の影響しか計算できません。また、「XPresso」も扱えません。しかしその分簡単で、全てのグレードで使うことができます。

 

10. ThinkingParticles

標準パーティクルと同じように、ThinkingParticlesの中にもダイナミクス機能が入っています。ただし、ThinkingParticlesは「Studio」グレードでしか使えません。

ThinkingParticlesが扱えるオブジェクトは、「ThinkingParticles」だけです。また、扱える機能は、「ThinkingParticlesの場」と「衝突」だけです。とは言ってもThinkingParticlesは非常に強力な機能なので、オブジェクトやクローンを連動させることができます。また、「パーティクル対オブジェクト」だけでなく、「パーティクル対パーティクル」の衝突も表現できます。

さらに、ThinkingParticlesはXPressoで拡張することを前提に設計されているので、プログラムを書けばいくらでも複雑な表現ができます。例えば、ThinkingParticlesをダイナミクスで動かすこともできますし、逆にダイナミクスをThinkingParticlesでコントロールすることもできます。

 

11. XPresso

XPressoもまた重要なダイナミクス機能の一つです。XPressoは、「オブジェクト」や「ポリゴン」、「スプライン」、「ThinkingParticles」を扱うことができます。また、XPressoは全てのグレードで使えます。

まず、XPressoの中には「衝突判定」や「距離」、「光線の衝突」といったダイナミクス機能の基礎となるノードが用意されているので、「重力」や「剛体の衝突」といった単純なダイナミクスは簡単に書くことができます。

次に、現実の仕事では、標準的なダイナミクスで表現できない特殊な要求が発生し、XPressoを使わざるを得ない、ということがよくあります。例えば現在のダイナミクスには「磁場」を表現する機能がありません。また、「流体(気体や液体)」を表現する機能もありません。

流体の働きを物理的に計算するのは非常に難しく、「RealFlow」のような専用のソフトウエアを使っても、目的とする絵を作れるとは限りません。そのような場合、目的に応じて単純化、特殊化した物理モデルを考え、自分でダイナミクス機能を作ることが唯一の解決方法となります。

 

 

Step 3

標準パーティクルと場

 CINEMA 4Dの標準パーティクルには、8種類の場(モディファイア)がありますが、他のダイナミクス機能に適用できるのは、次に説明する6種類だけです。「反射」と「消滅」は、標準パーティクル固有の機能なので使えません。また、場に含まれる「重力」や「減速」等の機能は、他のダイナミクス機能の側にも用意されています。しかし場は独立したオブジェクトなので、減衰や移動、回転のアニメーションを指定できるという利点があります。それでは、まずダイナミクスに慣れるために、一番簡単な場を使ってみましょう。

 

1. 引力

図621-1

引力は、本質的には重力と同じものですが、CINEMA 4Dでは便宜上中心点があり放射状に働くものを「引力」、中心点が無限遠にあり平行に働くものを「重力」と呼んでいます。これは、「点光源」と「無限遠光源」の違いと同じです。

引力の大きさは、中心点との距離の二乗に反比例します。また、マイナスの値を入力すれば斥力(反発する力)も表現できます。この点では重力よりも電気力に似ています。

 

2. 減速

図621-2

減速は、他のダイナミクス機能の中で「ダンピング」と呼ばれている機能と同じ働きをします。つまり、パーティクルの速度に応じた抵抗力を発生させ、抵抗力と外力(重力等)が釣り合うと、パーティクルの速度は一定になります。

 

3. 重力

図621-3

重力は、中心点が無限遠にある引力なので、ワールド全体に(強さ、方向とも)同じ力が作用します。重力は、重力オブジェクトの「-Y軸」方向に働きます。

 

4. 回転

図621-4

回転は、パーティクルにZ軸周りの速度を追加します。したがって、軸の中心に近いパーティクル程速く回転することになります。

 

5. タービュランス

図621-5

タービュランスは、ノイズ関数を使ってパーティクルにランダムな速度を追加します。ノイズ関数のスケールや周波数を変更することで、いろいろな動きを指定できます。

 

6. 風

図621-6

風は、本質的に重力とは異なる力ですが、CINEMA 4Dの場合は重力と全く同じ働きになります。つまり、風を適用したパーティクルの速度は、風速に関係なく無制限に大きくなります。風速を制限したい場合は、減速を追加して下さい。

また、風は内部にタービュランス機能を含んでいます。

次の章ヘ

MoGraphとダイナミクス: 2.リジッドボディとソフトボディ

リジットボディとソフトボディダイナミクスについて学びます。

前の章 次の章

Step 1

リジッドボディ(剛体)の衝突

 「リジッドボディ」というのは、ダイナミクスの専門用語で「変形しないオブジェクト」を意味します。日本語では「剛体」と呼びます。一般的なリジッドボディは体積を持っていますが、CINEMA 4Dのダイナミクスでは「平面」や「ヌル」オブジェクト等の体積を持っていないオブジェクトでもリジッドボディの計算に含めることができます。ただし、「圧力」や「衝突」等いくつかの機能は使えなくなります。

リジッドボディの衝突は比較的簡単に扱えますが、引っかかりやすい点について説明しておきます。

1. 衝突判定 -> タグの継承

この値はデフォルトで「なし」になっていて、子オブジェクトは衝突しません。この値を「子にも適用」にすると、子オブジェクトが独立して衝突するようになります。また、この値を「階層全体を衝突判定」にすると、階層全体が塊として衝突するようになります。

図622-1

 

2. 衝突判定 -> 個別エレメント

このパラメータは「タグの継承」と似ていますが、クローナーやパーティクルのようにオブジェクトを複製する働きを持ったオブジェクトに対して、ダイナミクスを適用する場合に使います。この値はデフォルトで「オフ」になっていて、この場合クローン全体が塊として衝突します。この値を「全て」にすると、各クローンが独立して衝突するようになります。

図622-2

 

3. 衝突判定 -> 形状

この値はデフォルトで「自動」になっていて、オブジェクトを包む大きさの何種類かのプリミティブオブジェクトが衝突判定の計算に代用されるようになっています。これは、計算速度を速くするためで、ポリゴン1枚1枚の細かな形状は無視されます。また穴も無視されるので、トーラスなどではおかしな結果になります。このような場合は「可動メッシュ」に切り替えてください。

ただし、ポリゴン数が多いと非常に重くなります。このような場合は、簡略化したダミーオブジェクトを作成し、この値を「別オブジェクト」に切り替え、そのオブジェクトを代用して下さい。

図622-3

 

 

Step 2

クローンの衝突

 ダイナミクスは、MoGraphオブジェクトが生成するクローンに対しても働きます。つまり、ダイナミクスを適用したオブジェクトを複製すると、全てのクローンに対してダイナミクスが働くようになります。この働きは、「パーティクル」や「ThinkingParticles」、「配列」、「インスタンス」等多くの機能に共通しますが、ここでは、最も強力な機能であるMoGraphに関してだけ説明します。MoGraphオブジェクトに「ダイナミクスボディ」タグを適用する方法は二つあります。

1. 複製されるオブジェクトに適用する

この場合、オブジェクトごとに物性を変えることができます。また、「コネクタ」や「モーター」は必然的にオブジェクトごとに指定することになります。ただし、オブジェクト数が多い場合は設定が面倒になります。

2. MoGraphオブジェクトに適用する

この場合、全てのクローンに対して同じ物性が適用されますが、設定は簡単です。ただし、ダイナミクスボディタグの「衝突判定 -> 個別エレメント」を、忘れずに「全て」に変更しておいて下さい。そうしないと、クローン全体が一個の塊として計算されてしまいます。

図622-4

 

クローンに対してダイナミクスを適用すると、ダイナミクスの働きが支配的になり、イフェクタによる「位置」と「角度」の働きは消えてしまいます。ただし、イフェクタのそれ以外の機能(スケールやカラー等)は正常に働きます。また、次のような場合は、イフェクタによる位置と角度の情報がダイナミクスに影響を与えます。

1. ダイナミクスが働く前にイフェクタによって与えられた位置(角度)や速度(角速度)の値は、ダイナミクスの「初期位置」、「初期速度」として使われます(MoGraphとダイナミクス4のステップ2「初速」を参照)。

2. ダイナミクスボディタグの「フォース -> 位置追従、角度追従」の値を大きくすると、イフェクタの働きが「一種の外力」としてダイナミクスの計算に含まれるようになります(MoGraphとダイナミクス 4のステップ3「キーフレームアニメーションとダイナミクスを合成する」を参照)。

また、キーフレームアニメーションによる位置や角度の働きもイフェクタと同様に扱われます。

 

 

Step 3

クローン全体をリジッドボディとみなす

 ステップ2では、個々のクローンを独立して計算する場合について説明しました。これに対して、ダイナミクスボディタグの「衝突判定 -> 個別エレメント」を、「オフ」のままにしておくと、クローン全体が「一個の塊」として計算されます。こうすると、クローン一個一個はダイナミクスの計算から「解放」されることになり、その結果エフェクタの働きが戻ってきます。そして、エフェクタの働きによってクローンの塊が「変形」すると、それはダイナミクスの計算に影響を与えます。

図622-5

 

同様に、通常のオブジェクトの場合でも、その形状をデフォーマやPLAで「変形」させると、それはダイナミクスの計算に影響を与えます。

図622-6

 

つまり、CINEMA 4Dのダイナミクスにおける「リジッドボディ」というのは、私たちの日常生活における「剛体」とは少し異なっていて、柔らかく変形することもできるのです。ただし、その変形はエフェクタやデフォーマによってもたらされる変形であり、ダイナミクスの「ソフトボディ」機能による変形ではありません。その結果ダイナミクスは「騙されて」、柔らかく変形するオブジェクトをリジッドボディのまま扱うことになるのです。

このような使い方は非常に重要です。なぜなら、デフォーマやエフェクタはソフトボディより遥かに軽く、簡単に扱えるからです。つまり、柔らかく変形するオブジェクトをダイナミクスで扱いたい場合、いきなりソフトボディを適用するのは得策ではありません。可能な限りデフォーマやエフェクタを使うように工夫してみて下さい。

 

 

Step 4

リジッドボディの拘束

 リジッドボディの動きを完全に止めたい場合は、ダイナミクスボディタグの「ダイナミクス -> ダイナミクス」をオフにします。また、リジッドボディの位置や角度の値の一部を拘束、制限したい場合は、「コネクタ」オブジェクトを使って他のダイナミクスオブジェクトにリンクします。ただし、この機能はStudioグレードでしか使えません。これらの機能の詳細については、MoGraphとダイナミクス4を参照して下さい。

 

 

Step 5

ソフトボディ(弾性体)

 「ソフトボディ」というのは、ダイナミクスの専門用語で「変形するオブジェクト」を意味します。日本語では「弾性体」と呼びます。ソフトボディは、ポリゴンやスプラインを構成するポイントの間に「小さなバネ」を張り巡らし、ポイント間の距離や角度を変えることで表現します。したがって、ポイント数が多くなると、非常に重くなります。ソフトボディを使う時には、ポリゴン数を必要最小限にするよう気をつけて下さい。またソフトボディは、「多数のリジッドボディを小さなバネでリンクしたもの」と解釈することもできます。したがって、衝突や他のオブジェクトへのリンク等リジッドボディができることは全てできます。

 

ソフトボディを構成する小さなバネには3種類あります。これは、ヘアやクロス、他のソフトのダイナミクス機能にも共通する重要な原理です。よく理解して下さい。

1. 構造(引っぱり)

構造は、ポイント間に張られたバネで、二点間の距離を維持する働きをします。

一般的に、オブジェクトの固さに一番影響するパラメータで、例えば、「鎖」は構造が「100%」、折れにくさが「0%」のソフトボディです。

図622-7

 

2. シアー(歪み)

シアーは、四角ポリゴンの対角に張られたバネで、長方形が歪んで平行四辺形になるのを防ぐ働きをします。

したがって、スプラインで作ったソフトボディやヘアにはこのバネがありません。一般的に、四角ポリゴンの部分が詰まっているオブジェクト(例えば「紙」)はシアーの値が大きく、抜けているオブジェクト(例えば「網」)はシアーの値が小さくなります。

図622-8

 

3. 折れにくさ(曲げ)

折れにくさは、ポイントに置かれた回転バネで、そのポイントから伸びるエッジやスプラインの角度を維持する働きをします。

一般的に、厚みのあるオブジェクト程折れにくさの値が大きくなります。また、「鎖」のように関節を持ち、自由に曲げられるようになっているオブジェクトはこの値が「0%」になります。

図622-9

 

 

Step 6

クローン全体をソフトボディとみなす

 ダイナミクスは、クローンをソフトボディにできます。これはMoGraphだけの機能で、他のパーティクル等が複製するオブジェクトは、リジッドボディーにはできますが、ソフトボディーにはできません。

図622-10

ステップ9で説明するように、クローンのソフトボディは非常に重要な機能ですが、根本的な問題がいくつかあります。

1. クローンの間に隙間ができる。

クローンのソフトボディにおいて、クローンの衝突は正しく計算されます。しかし、クローンの間には何も存在しないので、他のオブジェクトがそこをすり抜けてしまいます。

2. クローンの回転を制御できない。

クローンのソフトボディにおいて、クローンは「ポイント上に置かれたオブジェクト」として計算されます。そして、ポイントには角度の情報がありません。したがって、例えばクローンの変形に合わせてクローンの向きを変える、といった簡単なことができません。

 

クローンのソフトボディを使う場合は、このような問題があることをよく理解しておいて下さい。

 

 

Step 7

ポイント選択範囲を使ってソフトボディの一部を拘束する

 リジッドボディは変形しません。したがって、「一部を拘束する」という考え方は無意味です。なぜなら、一部を拘束するのも全体を拘束するのも同じことだからです。それに対して、ソフトボディは変形します。したがって、一部を拘束してもその他の部分は動く(変形する)ことができます。これがソフトボディの特質であり、「一部を拘束する」ということが、ソフトボディを扱う上で非常に重要になります。ところが、CINEMA 4Dのダイナミクスにはソフトボディの一部を簡単かつきれいに拘束する方法がありません。非常に困ったことなのですが、以下にソフトボディの一部を拘束する四つの方法と、その利点欠点について説明します。ケースバイケースで適切な方法を選択して下さい。

1. ポイント選択範囲を使うと、簡単にポリゴンやスプラインで作ったソフトボディの一部を拘束できます。ただし、この機能は非選択ポイントを「ワールド」に拘束するので、その部分を動かせなくなってしまいます。例えば、この機能を使って自動車の荷台に網を張ると、自動車を動かした時にその網は自動車に付いてきません。

非常におかしな仕様で、ほとんどの場合この機能は使えないと考えた方がいいでしょう。ちなみに、「ヘアー」で同じことをすると、ワールドではなくオブジェクトに拘束されます。

図622-11

 

2. ソフトボディをオブジェクトに拘束したい場合、一番簡単なのは「コネクタ」を使ってソフトボディを別のオブジェクトにリンクする方法です。この場合もポイント選択範囲を使いますが、ダイナミクスボディタグではなく、コネクタに適用します。

ただし、コネクタは拘束した点をきれいに固定できず、かなり「ぶよぶよ」します。これが問題にならない場合は、コネクタを使うといいでしょう。

図622-12

コネクタについては、MoGraphとダイナミクス4のステップ4「ダイナミクスが適用されたオブジェクトをリンクする」も参照してください。

 

 

Step 8

XPressoを使ってソフトボディの一部を拘束する

3. XPressoを使うと、ソフトボディの一部をきれいにオブジェクトに拘束できます。ただしこのXPressoを作るにはダイナミクスの内部構造を熟知している必要があり、マニュアルを読んでもわかりません。実際私も独力でこのXPressoを作ることはできませんでした。考え方としては、XPressoを使って親オブジェクトの「速度」の情報、及び各ポイントの「絶対位置」の情報を、ダイナミクスを適用した子オブジェクトに伝える、ということになります。この「速度情報を伝える」という部分が難しかったのですが、結果的にXPressoの構成はそんなに難しくないので、何も考えずにこのXPressoをそのままコピーして使って下さい。

図622-13

 

Step 9

MoGraph選択範囲を使ってソフトボディの一部を拘束する

4. MoGraph選択範囲を使うと、クローンで作ったソフトボディの一部を簡単かつきれいにオブジェクトに拘束できます。

図622-14

この方法の問題点は、当然のことながら「外観がクローンである」ことです。したがって、外観をポリゴンにしたい場合は、XPressoを使ってクローンの変形情報をポリゴンに伝える必要があります。とは言っても、このXPressoは、単にクローンの位置情報をポイントに伝えるだけなので簡単です。もしうまく動作しない場合は、ダイナミクスのデータを初期化してみて下さい。

図622-15

また、線状のクローンからスプラインを作りたい場合は、トレーサを使います。この方法については、MoGraphとダイナミクス3のステップ1「スプラインのソフトボディ」を参照してください。

 

クローンをソフトボディ化するという考え方は、一見すると「使い道のない裏技」のように感じられるかもしれません。しかし、私は「CINEMA 4Dでは、クローンのソフトボディが一番使える」と考えています。

理由は簡単で、クローンのソフトボディには初めから「リジッドボディ」が含まれているからです。クローンのソフトボディにおいて、クローンの位置関係は変形しますが、クローンそのものは変形しないリジッドボディです。したがって、次のようなオブジェクトを簡単に作ることができます。

図622-16

もし、同じオブジェクトをポリゴンのソフトボディで作ろうとすると、大量のコネクタやXPressoを使ってリジッドボディをリンクしなければなりません。そして、それは非常に面倒で、おそらくまともに動かないでしょう。

ここで、クローンの脚が折れないように「角度を固定」という機能を使いました。ステップ6で説明したように、クローンの角度をコントロールするのは難しく、標準ではこれがほぼ唯一の機能です。

また、ダイナミクスに難しい計算をやらせると、オブジェクトが簡単に「発振」し、ひどくなると「発散、破綻」します。このような場合は、まずプロジェクト設定を開き、「ダイナミクス -> 詳細 -> フレーム当たりのステップ数」の値を大きくしてみて下さい。

 

クローンのソフトボディでは「破断」も扱えます。これは「クローンが連続していない」という弱点を逆手に取った機能で、ポリゴンやスプラインで作ったソフトボディではできません。

図622-17

また、ソフトボディーの性質は「頂点ウエイト」タグを使って自由にコントロールできます。クローンは頂点ウエイトを持てませんが、「オブジェクト」モードでクローンを作成した場合は、参照するポリゴンの頂点ウエイトをそのまま利用できます。

次の章ヘ

 

MoGraphとダイナミクス: 3.スプラインとその他の機能

リジットボディとソフトボディダイナミクスについて学びます。

前の章 次の章

Step 1

スプラインのソフトボディ

 スプラインのソフトボディを作るのは非常に面倒です。しかし、CINEMA 4Dにおいてスプラインは非常に重要なオブジェクトなので、この問題を避けて通るわけにはいきません。まずスプラインのダイナミクスが難しい理由を考え、一つ一つ対策していきます。1. スプラインには体積がないので、衝突を計算するのが難しい。原理的な問題です。ダイナミクスは、「スプライン対スプライン」や「スプライン対ポリゴン」の衝突を計算できますが、スプラインは必ず「ソフトボディ」に変換しておく必要があります。リジッドボディのスプラインは衝突しません。また、リジッドボディのポリゴンはうまく計算できず、スプラインが突き抜けてしまいます。この場合は、スプラインの「分割数」、ダイナミクスボディタグの「衝突判定 -> サイズの増分」、プロジェクト設定の「ダイナミクス -> 詳細 -> フレーム当たりのステップ数」の値を調整して対処します。

図623-1

またクローンをスプライン化する場合、クローンには体積があるので問題なく衝突を計算できますが、小さいオブジェクトだとクローンの間をすり抜けてしまうという問題が発生します。

 

2. スプラインの分割数を自由に設定できない

これも原理的な問題です。通常スプラインの分割数は、「見た目のスムーズさ」を調整するために使われる簡単なパラメータです。ところがダイナミクスは、この値によって分割されたスプラインの変形を計算するため、この値の大小が非常に重要になります。具体的には、見た目にスムーズになるようスプラインを細かく分割すると、計算が非常に重くなり、しかも破綻します。

この問題を解決するには、ダイナミクスの計算には粗いスプラインを使い、その形状を「トレーサ」で複製し、オブジェクトの表示には細かく分割したトレーサを使う、という面倒な作業を追加する必要があります。しかも、トレーサを使うと必ず1フレームの遅延が発生します。

図623-2

また、クローンのソフトボディをスプライン化する場合もトレーサを使う必要があります。

 

3. スプラインに他のオブジェクトをリンクするのが難しい

スプラインは、現実世界の「ヒモ」に相当するので、どうしても「何かをつなぐ」ケースが多くなります。ダイナミクスにおいて、オブジェクトをリンクするために用意されているオブジェクトは「コネクタ」ですが、計算が粗く本当に簡単なケースしか扱えません。

図623-3

図623-3を見ると、このような簡単なケースでさえ「handle」オブジェクトを強く動かした時にコネクタがずれて、破綻していることがわかります。

 

ところがクローンのソフトボディを使うと、より複雑なケースでも簡単かつ正確に表現できます。

図623-4

 

というわけで、スプラインのソフトボディに関しては、簡単なケースには「スプラインのソフトボディ」を使い、複雑なケースでは「クローンのソフトボディ」を使うことを私はお勧めします。

クローンのソフトボディを使う方法は、一見複雑で面倒に感じるかもしれませんが、スプラインのソフトボディを使ったとしても結局トレーサで複製する必要があります。また、「接続部分」には何らかのオブジェクトを置いて体裁を整える必要があります。であれば、最初からリジッドボディで接続部分が完成しているクローンのソフトボディを使う方が結果的には単純で扱いやすいと思います。

そして、もしどうしてもソフトボディをうまくリンクできない場合は、早めに掲示板等に質問して下さい。ソフトボディを扱うのはそのぐらい難しいのです。

 

 

Step 2

ソフトボディを膨らませる

 ソフトボディには、「圧力」というパラメータがあります。圧力を使うと、オブジェクトを風船のように膨らませることができます。この機能は、オブジェクトの中に封入されている「気体」を表現するためにあります。一般的に気体の体積は、圧力が変化すると自由に変ります。なお、この機能は「閉じた立体」にしか使えません。図623-5

 

Step 3

ソフトボディの体積を一定に保つ

 ソフトボディには、「体積を保持」というパラメータがあります。体積を保持を使うと、オブジェクトの体積を一定に保つことができます。この機能は、オブジェクトの中に封入されている「液体」を表現するためにあります。一般的に液体の体積は、圧力が変化しても変りません。なお、この機能は「閉じた立体」にしか使えません。図623-6

 

Step 4

ジグルを使って簡単にソフトボディを表現する

 「ジグル」は、ソフトボディ的な変形機能を持ったデフォーマです。衝突や正確なダイナミクス計算はできませんが、その分動作が軽く、簡単に使えます。また、「場」を使って動かすこともできます。例えば、キャラクターアニメーションに使う小物オブジェクトに柔らかさを与えたい場合には、ソフトボディよりもジグルを使った方がいいでしょう。

図623-7

ただし、ジグルはスプラインを扱えません。

 

 

Step 5

衝突を使って簡単に変形を表現する

 「衝突」は、ソフトボディ的な変形機能を持ったデフォーマです。正確なダイナミクス計算はできませんが、その分動作が軽く、簡単に使えます。例えば、「何かを包むオブジェクト」を作りたい場合に、「衝突」は最適です。まず、内部のオブジェクトと包むオブジェクトの位置関係を、「衝突対象 -> 解析」で指定します。また、内部のオブジェクトと包むオブジェクトの間に「隙間」を空けたい場合は、「詳細 -> サイズ」の値を大きくして下さい。図623-8

 

また、衝突の「形状を復元」の値を0にすると、変形を固定できます。専門用語では「塑性変形」と言うのですが、この機能を使うと「何かが通った跡」を表現できます。この機能は、ダイナミクスのソフトボディにはありません。

図623-9

次の章ヘ