Unity Japan Office  メイキング3 ~ ライティング ~

画作り


Warning: Use of undefined constant id - assumed 'id' (this will throw an Error in a future version of PHP) in /home/tsumikiseisaku/www/blog/wp-content/themes/tsumiki/functions.php on line 536

Warning: Use of undefined constant url - assumed 'url' (this will throw an Error in a future version of PHP) in /home/tsumikiseisaku/www/blog/wp-content/themes/tsumiki/functions.php on line 562

Warning: Use of undefined constant url - assumed 'url' (this will throw an Error in a future version of PHP) in /home/tsumikiseisaku/www/blog/wp-content/themes/tsumiki/functions.php on line 563

Warning: Use of undefined constant width - assumed 'width' (this will throw an Error in a future version of PHP) in /home/tsumikiseisaku/www/blog/wp-content/themes/tsumiki/functions.php on line 672

Warning: Use of undefined constant width - assumed 'width' (this will throw an Error in a future version of PHP) in /home/tsumikiseisaku/www/blog/wp-content/themes/tsumiki/functions.php on line 672

Warning: Use of undefined constant url - assumed 'url' (this will throw an Error in a future version of PHP) in /home/tsumikiseisaku/www/blog/wp-content/themes/tsumiki/functions.php on line 562

Warning: Use of undefined constant url - assumed 'url' (this will throw an Error in a future version of PHP) in /home/tsumikiseisaku/www/blog/wp-content/themes/tsumiki/functions.php on line 563

Warning: Use of undefined constant width - assumed 'width' (this will throw an Error in a future version of PHP) in /home/tsumikiseisaku/www/blog/wp-content/themes/tsumiki/functions.php on line 672

Warning: Use of undefined constant width - assumed 'width' (this will throw an Error in a future version of PHP) in /home/tsumikiseisaku/www/blog/wp-content/themes/tsumiki/functions.php on line 672

Warning: Use of undefined constant url - assumed 'url' (this will throw an Error in a future version of PHP) in /home/tsumikiseisaku/www/blog/wp-content/themes/tsumiki/functions.php on line 562

Warning: Use of undefined constant url - assumed 'url' (this will throw an Error in a future version of PHP) in /home/tsumikiseisaku/www/blog/wp-content/themes/tsumiki/functions.php on line 563

Warning: Use of undefined constant width - assumed 'width' (this will throw an Error in a future version of PHP) in /home/tsumikiseisaku/www/blog/wp-content/themes/tsumiki/functions.php on line 672

Unity Japan Oficce メイキング第3弾 ~ライティング~ 編です。

 

Unity Asset Store でプロジェクトデータを入手できます。

 

ビルドデータ及び各種データのダウンロードは以下のサイトから。

日本におけるデザインビジュアライゼーションの例として、Unityの最新技術を駆使したフォトリアリスティックなデモを制作いたしました。

 

 

 ライトマップ解像度

モデリングが終わったらテクスチャ&マテリアル制作、

となる人が多いかと思いますが、まずはライティングです。

真っ暗闇の中で絵なんて描けません。

 

完成したモデルを全て Unity にインポート・配置したら Static 設定にして

1つ1つライトマップ解像度を設定していきます。

Unity Japan Office メイキング

 

特に、ベベル処理したエッジに十分なテクセルが詰まっているかに注意します。

場合によっては DCC ツールと Unity を行き来して、UVの調整をしながら作業します。

 

ベベル処理エッジについては以下を参照。

 

 

 アルベド

全オブジェクトにマテリアルを割り当ててアルベドカラーを設定します。

デフォルトマテリアルのままでは間接反射が強すぎ & そもそも現場環境と違うので、

正しいライティングができません。

 

 RAW撮影の必要性

撮影した写真を Jpeg 画像として保存する場合、

カメラに内蔵されている画像処理エンジンによって様々な味付けが施されます。

 

これにより、プロのカメラマンでなくとも「何か良い感じの写真」が撮れてしまうわけですが、

今回の用途で写真を撮影する場合、「良い感じの見た目」ではなく「正しいデータ」が欲しいのです。

 

撮影した写真を Raw 画像として保存する事で、

余計な味付けのないリニアデータを抽出することが可能です。

 

 使用ソフトウェア

Raw 画像からリニアデータを取得するには、いくつかの方法があります。

 

Raw Therapee 【http://rawtherapee.com/downloads】

フリーで使える Raw 現像ソフトウェア。リニアデータを抽出できる。

一枚ずつしか操作できないので作業が面倒。

 

dcraw 【http://www.centrostudiprogressofotografico.it/en/dcraw/】

フォルダ指定で一括抽出が可能。

しかしコマンドラインツールなので扱いが面倒。

 

MEGUI 【http://meguidcraw.blogspot.com/2009/07/descarga-download.html】

dcraw に GUI を付けたソフトウェア。便利。

 

というわけで、MEGUI を使ってリニアデータを抽出します。

上記リンクからダウンロード&インストールします。

 

MEGUI に同梱されている dcraw が変なのか、

Raw Therapee で抽出したリニアデータとかなり違っています。

別途 dcraw もダウンロードし、MEGUI のインストールフォルダのものに上書きします。

Unity Japan Office メイキング

 

 MEGUIでRAW画像からリニアデータを取得

MEGUI を起動し、以下の設定でリニアデータを 16bit Tiff 画像として保存します。

Unity Japan Office メイキング

Unity Japan Office メイキング

 

抽出したリニアデータ。イメージサークルの縁が見えていて面白いですね。

縁周辺が暗くなっているのが、ポストプロセスの「Vignette(ビネット)」の正体の一部です。

Unity Japan Office メイキング

 

 リニアデータからアルベドカラーを取得

リニアデータの Tiff 画像を Photoshop で開き、ホワイトバランスと明るさを調整します。

 

グレースケールパッチの「白色」「中間色」「黒色」の範囲にぼかし(平均)をかけます。

こうする事で、ピクセルごとの微妙な誤差を緩和できます。

Unity Japan Office メイキング

 

カラーサンプラーツールで「白色」「中間色」「黒色」を選択し、補正の準備をします。

Unity Japan Office メイキング

 

レベル補正ツールを開き、「中間点」を選択してホワイトバランスを調整します。

Unity Japan Office メイキング

 

続いて明るさの調整です。X-rite ColorChecker Passport の仕様に合わせて

それぞれの輝度が約「白点:243」「中間点:122」「黒点:52」となるように、レベル補正します。

Unity Japan Office メイキング

 

必要箇所を選択し、ぼかし(平均)をかけて、ライティング用の簡易アルベドカラーを取得します。

ぼかしをかけず、シームレス化などあれこれ調整すれば、最終的なアルベドテクスチャとなります。

Unity Japan Office メイキング

 

 

 ライティングリファレンス

上述した方法で、ライティングリファレンス用の Raw 画像からもリニアデータを抽出します。

Unity Japan Office メイキング

 

アルベドと違い、明るさの調整をする必要はありません。

MEGUI で Tiff 画像を保存するだけで良いです。

 

 

 ライトの配置

各照明の位置に、適切な種類のライトを配置します。

建築コンテンツの場合、エリアライトとスポットライトがほとんどだと思います。

Unity Japan Office メイキング

 

各照明のメーカーサイトで色温度の情報を入手し、入力します。

Unity Japan Office メイキング

 

影を有効化します。

シャドウマップ解像度の設定はリアルタイムライティングにのみ必要なようなので、

ライトマップベイクの際には特に設定を変更する必要はありません。

半影を作るために、Radius に適切な値(光源の大きさ)を入力します。

Unity Japan Office メイキング

 

 

 ポストプロセスによるEV値設定

一体何のためにEV値を設定するのか?

 

これまでの作業で「物体のアルベド(色・反射率)」は正確に取得できています。

更にここでカメラのEV値、つまり撮影時にどれだけの光を受け取るかを実際のカメラに合わせれば、

あとはライトの照度を調節するだけで、写真の見た目、つまりリアルな世界の見え方と、

Unityでの見え方を合致させることができます。

 

様々な設定があり何をどうすれば良くなるのか・・・という状態から

ライトさえ決まればすべて完璧! な状態に持ち込むことができるのです。

 

HDRPのポストプロセスは同梱の Volume コンポーネントで設定します。

適当な GameObject に Volume をアタッチし、Profile を新規作成して、Exposure をセットします。

Mode を Fixed にして、設定したいEV値を入力します。

Unity Japan Office メイキング

 

実際にリファレンスを撮影した時のカメラのEV値と同じ設定にして、ライティングを開始します。

写真のメタデータにある、絞り値(F値)露出時間(シャッタースピード)ISOから

EV値を算出できます。

Unity Japan Office メイキング

 

算出方法は以下のサイトに分かりやすく解説されています。

写真好きな方でしたら、EV値という言葉を聞かれた事があるでしょう。今時のデジカメでしたら、そんな事は全く知らないでも綺麗な写真は撮れるのですが、知っていれば何かと便利です。という訳で、本書ではEV値とそれに関連したAV値とTV値について、分かり易く簡単に、且つ奥深くご説明したいと思います。

 

 

 照度調節

ここまで準備ができたらライトマップを焼きます。

トライ&エラーを繰り返すので解像度と計算精度は下げます

関係のない家具や小物たちを非表示にするのも、計算時間が短縮されるので良いです。

 

テスト時のライトマップ設定

Unity Japan Office メイキング

 

最終的なライトマップ設定

Unity Japan Office メイキング

 

照明の種類ごとにリファレンスを撮影しているので、1つ1つ設定していきます。

例えば以下の会議室の吊り照明。

Unity Japan Office メイキング

 

まず、撮影した明るさ違いの写真から、明るすぎず暗すぎないベースの写真を選びます。

そして、その写真と同じEV値をポストプロセスに設定します。

選んだ写真は F2.8・1/8秒・ISO-200 なので EV5 です。

Unity Japan Office メイキング

 

写真のグレーカードと同じような位置に Quad を配置します。

マテリアルは RGB 119 のランバートです。

Unity Japan Office メイキング

 

この部屋にある照明は電球色に近いです。

写真は撮影時に自動調節されているため自然な色合いになっていますが、

Unity側ではライトに設定した色温度によって、もろに電球色の色合いになっています。

 

このままでは色温度が違いすぎて分かりにくいので、

ポストプロセスに White Ballance を追加し、同じような色味になるように調整します。

Unity Japan Office メイキング

 

最初はどう照度を設定すれば良いか分かっていないので適当な値でライトマップを焼きます。

Unity Japan Office メイキング

 

写真のグレーカードの輝度を確認すると、約120です。

つまり、EV5 で撮影した時、RGB119 の材質が RGB120 に見える照度、という事です。

Unity Japan Office メイキング

 

では Unity シーンはどうでしょうか。約130です。

EV5 で撮影した時、RGB119の材質が RGB130 に見える照度、です。写真よりちょっと明るいです。

照度以外の項は全てそろっているので、RGB120 に見える照度になるよう、

ライトの Intensity を調節すれば良いのです。

Unity Japan Office メイキング

 

机の上に置いたグレーカードも同じように調査し、どちらでも辻褄が合うような値が正解です。

しかし、写真と全く同じにすることは難しいでしょう。

直接的な照度、間接的な照度、その他いろいろ、すべてが現実と同じ結果になるよう、

モデル・ライト・レンダリング、、、物理的に完全な状態を再現することは不可能だからです。

 

ただ、およそ正しい見た目に近似させることはできるので、

ちょうど良いバランスを目指してトライ&エラーを繰り返します。

 

照度が調整出来たら、複数撮影してある別EVの写真とも比べてみます。

同じバランスで、およそ正しい見た目になっているはずです。

 

 

 最後にもう一度UVチェック

一通りのライティングが完了したら、納品レベルの解像度と計算精度まで上げてベイクします。

そして、隅から隅までチェックし不可解な光漏れや影がないかをチェックします。

 

目立つ光漏れがある場合は、UVシェルの間隔が狭すぎる可能性があるので、

UVシェルの間隔を広げます。

 

ボツボツとした影がある場合は、UVが重なっているので、

UVシェルを適切に配置し直します。

 

DCC ツールと Unity を行き来して、納得のいくまで修正・焼き直しを繰り返し、品質を上げます。

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)