当たったらどうすんだよ

当たらなければどうということはない

3D CGテクスチャリングを2歩か3歩進めたい! 4:シェーディングの基礎と色の話V2

ちょっと前回から間が開きましたが、これが通常運行という感じでしょうね。
今回の内容はけっこう重要です。いつも重要なことを書いているつもりではいますがwさらに本気で重要なことです。

ソフトウエアのターゲットはBlenderということになっていますが、あらゆるCG制作において大事なことをお話ししたいと思います。

白い、黒い、とはどういうことか

f:id:kanianthi:20160625181310p:plain

↑各種のペイントソフトウエアなどでよくあるグラデーション指定のダイアグラムなどにあるアレですね。しかしこの図、実は非常に重大な事実を教えてくれます。

一般に、日常生活レベルで「白い」とか「黒い」というとき、それは「肉眼で見た色」のことを指しています。白黒に限った話ではなく、赤い、とか青い、というのも同じく目で見た(見える)色の話です。そして、我々が目で見ている「色」というものは、実は相対的な指標にすぎず、照明や背景によっていくらでも変化してしまいます。

紙に絵の具などで絵を描くとき、絵を少しでも学んだことのあるひとであれば「紙の地色である白」をその絵の中で「最も明るい色」とすることを知っていると思います。しかしその紙の地色さえも、赤みを帯びたライトを浴びたり、薄暗い照明の下では「白」に見えないことも、簡単に想像ができますよね。

このように、私たちが視覚として見ている色というものは、相対的なものです。しかし、デジタルデータであるCGは、2Dであろうと3Dであろうと「絶対値としての色」をピクセルデータとしてメモリに「書き込んで」いるのです。

絶対的カラー

webデザインでHTMLをコーディングしたことがあれば、白をFFFFと表記することをご存じでしょう。

あるいは印刷について詳しいひとであれば、キンアカと呼ばれる標準的な赤い色を「M100% Y100%」で指定することを知っているでしょうし、DICやパントンのカラーチップを用いて、特色を「絶対値」として指定できることも分かるでしょう。

同じように、コンピューターを使った視覚表現(グラフィックス)は、ピクセルごとに絶対値で表現されます。したがって「白より白い白」などという、歯磨き粉や洗剤で使われそうなコピーは通用しません。

RGBがそれぞれ100%混ざった(加色混合された)結果は白で、これ以上明るい色はデジタルデータにはありません。同じように、RGBがそれぞれ0%であれば、それ以上暗い色もデジタルデータでは存在しないのです。

f:id:kanianthi:20160625183358p:plain

↑画像は以前ぼくが作成した、とあるゲームのMOD用レザースーツの編集画面です。

Blenderのビューポート画面なので雰囲気しか伝わらないと思いますが、これは「黒い革製の光沢があるワンピース」をイメージしていました。

f:id:kanianthi:20160625183617p:plain

↑こちらはその革スーツ用の拡散反射光テクスチャ(ディフューズカラー)です。黒いスーツをデザインしたので当然「暗い色」で彩色されていますが、背景の「100%ブラック」よりはすべて明るい色で描かれています。

これはなにを意味するのでしょう?

黒いスーツなのに黒く塗らない」その意味とは?

なぜなら、たとえ黒い(と印象づけられている)服であっても、陰影があるはずです。最初からRGB0%の絶対ブラックで塗られていたなら、皺の谷間などにできる影の部分が表現できません。

もちろん「物理的に正しい」とされるPBRな光を浴びれば、たとえテクスチャが絶対ブラックで描かれていても、レンダリング結果としては多少明るくなるし、材質の設定によってハイライトも描かれるでしょう…

f:id:kanianthi:20160625184624j:plain

↑は同じアセットの色味を吟味するために、設定を少しずつ変えてレンダリングしたものです。左上の設定くらいのモデルで、背景があり人物がそれを着ていたなら、十分に「黒い革のスーツ」に見えると思います。

しかし、この素材のテクスチャはベースカラーとして20%くらいの「濃いグレー」で描かれており、フォトショップでの合成で「凹凸に応じた陰影」を多少乗算されている程度です。

白はさらに難しい

SubstancePainterなどのPBRレンダラー用テクスチャリングツールでマテリアルを作成しているとよく遭遇するのですが、うっかりカラースライダを「真っ白」まで上げてしまうと、マテリアルが表現すべきハイライトが喪失し、なんだか変な状態になります。

一般に黒い服は比較的描けるようでも、白い服を描くのは難しいものです。

白なのに光沢がある質感…これをありありと絵として表現できるイラストレーターは、そこそこのテクニックを持っている、と言えるでしょう。

しかしぼくが知る限り、多くの入門者さんは「この服は白だから白」とマテリアルやテクスチャを作成してしまいます。RGB100%の白より明るい色は、先に書いたようにデジタルでは表現しようがありませんので、影を落とすことはできてもハイライトのない、野暮ったい服になってしまいます。

とりあえず簡単なレベルアップ法としては、白も黒もスライダをがっつり上げたくなるのをグっと堪えて、80%か85%くらいの範囲でとどめておけば、それより明るいハイライトやシャドウがちゃんと乗るようになります。

特にUE4などのプリレンダリングで陰影(シェーディング)を焼き込んでおくレンダラーや、セルアニメレンダリングではハイライトやシャドウのない、野暮ったくて貧弱なレンダリング結果しか得られなくなりがちなので気をつけましょう。

なにはともあれ、デザインだとかアートの分野では、なにか特別な理由がない限り100%ホワイトや0%ブラックは「使わない」と覚えておくことが、作品を二歩か三歩レベルアップさせるためのポイントです。

では、今回はここまで!