トップ >CG_TIPSメニュー >現ページ

 基礎技術テーマ:質感設定の基礎と適用   (記事記載:2010年10月1日)
 
 3DCGの質感設定は、CGを制作する際の基本であると同時に最も難しい技術の一つでもあります。
 どんな詳細で美しいモデリングのオブジェクトを作成しても、質感設定が悪ければ見栄えが悪く、すべて台無しになります。
 3Dオブジェクトに適用する様々な素材の表面は…車のボディ、ビール瓶、人間の肌等々…それぞれ異なる質感を持っています。
 この章では、3DCGの基本である"質感設定"について概観します。
 
(※質感に適用するマッピング技法については、別の章で取り上げているので省略します)。
 
 
1.質感設定の基礎
 
 冒頭でも述べましたが、世の中に存在する物体は様々な質感を持っています。
 花だったら"鮮やかな色合いで柔らかな感じ"、金属だったら"固くてテカテカした感じ"…のような表現をするかもしれません。
 人間相手ならともかく、"こんな感じでお願いします"と言う曖昧な表現では、ソフトウェアには理解できません、…当然ですが。
 3DCG制作においてはソフトウェアが理解できるように、曖昧な言葉ではなく、具体的な数値で入力する必要があります。
 3DCGソフトでは質感表現について下記のような基本項目が設定されていて、数値でそれらをコントロールできるようになっています。
 
 
①色(Color)…オブジェクトの色を設定します。通常、RGB値で指定します。最も基本的な質感情報です。
  
赤/カラー(R255、G000、B000)の例
 
 
②自己発光度(Luminosity)…物体自体が光る発行具合を設定します。本当に光るグロー(Glow)とは異なります。
  
自己発光度50%の例
 
 
③拡散レベル(Diffuse Level)…表面が光をどのくらい反射するかを設定します。拡散の度合いが大きいと、たくさん反射して明るく見えます。
                目で見て常識で分かるように、例えば木炭と金属では拡散のレベルは異なり、木炭は低めで金属は高めです。
                (※拡散レベル、反射光、光沢は、初心者は区別が難しく感じられるようなので、ここでしっかり理解します)。
  
拡散レベル50%の例
 
 
④反射光(Specularity)…一般にハイライトと呼ばれ、滑らかでツヤのある表面に写り込む光の強さを設定します。
             反射光の強さによって、私たちは表面のピカピカ、ツルツル具合を判断します。
             例えば、鏡の反射光は大きいですが、和紙の反射光は小さいです。
  
反射光レベル50%の例(※光沢0%)
 
 
⑤光沢(Glossiness)…反射光が設定されている時にのみ、この光沢の値で光の"広がり"具合を設定します。
           反射光の値を低くすると反射光は広がり、高い値を入れると反射光は小さく(シャープに)なります。
           例えば、金属の光沢はシャープですが、人間の肌の光沢はぼんやりしています。
  
反射光レベル50%の時に光沢30%を設定した例
 
 
⑥鏡面反射率(Reflection)…周囲の物体をどれだけ写り込ませるかを設定します。
              例えば、普通の鏡ならほぼ100%ですし、トイレットペパーならほぼ0%でしょう。
  
フラクタルな画像が写り込んでいる例
 
 
⑦透明度(Transparency)…物質の透明度を設定します(※不透明度/Opacityの反対です)。
             例えば金の延べ棒だったら不透明ですし、氷やガラスやダイヤだったら透明度を持っています。
 
透明度50%の例
 
 
⑧屈折率(Refraction Index)…透明度のある物質(ガラス、水、宝石など)の屈折率を指定します。
               透明度のあるオブジェクトは光を屈折しますので、背景を歪んで見せます。
               例えば、水槽やダイヤモンドをのぞいた時をイメージすると分かりやすいでしょう。
 

 
⑨半透明度(Translucency)…裏からどれだけ光を通すかを設定します。
              例えば、障子に映る影やスクリーンに映す影絵などがイメージしやすいと思います。
              (※透明度と似ていますが、半透明度は透過効果は加わりません)。
 
 
⑩バンプ(Bump)…擬似的に表面を凸凹に見せます。実際には、表面はフラットのままです。
         例えば、人間の肌の表面の毛穴や食パンの表面の無数の穴など、様々な適用が可能です。
         (※実際に表面を凹凸させるには、ディスプレイメントマップを使用します)。
  
表面にフラクタルな凸凹をバンプマップした例
 
 これらは、質感設定の基本中の基本で、これらの設定を組み合わせて質感設定を行います。
 これらの基本設定以外に、多くのCGソフトで質感設定には様々な高度な機能が設定されてます。
 ここでは、それらすべては網羅できませんので、ソフトに慣れていくに従い色々と試してみてください。
 
 
 2.質感の応用(適用)
 
 さて、質感の基本的な機能のみを使って、いくつか実際の適用例(応用例)を見てみましょう。
 世の中には無数の物体があります。その設定数値などをすべて探り出しかつ記憶or記録しておくのは、ほとんど不可能です。
 ですから、適した質感に最短距離で辿りつくため「どの項目にどの数値を入力するのか」を論理的に考えながら、質感を組み立てましょう。 
①金属の表現…削りだしたアルミ材の質感設定を"基本的な設定"のみで表現してみましょう。
準備:
シンプルな直方体オブジェクトを用意し、メイン、サブ、バックのライトを適当に配置します。
質感の設定:
金属表現は、通常は周囲の物体の写り込みの反映などでリアルになりますが、今回は基本の質感設定とライティングだけで金属質感を目指します。最初にカラーと拡散レベルを設定します。
(※明るいグレーや高い拡散レベルを設定してしまうと、反射光との相乗効果で、ライティングで表面が真っ白に飛びやすいので要注意です)。
・拡散レベルは50%で設定しました。
一般に金属はライトが射し込んできた際に、光が広範囲に広がります。
また、金属の光沢は紙のようなぼんやりした光沢でなく、シャープです。
・今回は反射光は100%、光沢は40%に設定しました。
(※今回、物体写り込みは使いませんが鏡面反射率は50%に設定してあります)。
削りだした表面の表現のためバンプマップも併用します。
・フラクタルノイズをXY方向を極度に縮小し、Z軸方向には伸ばして適用。
(※バンプ値にあまり大きな値を入れると、バンプがはっきりし過ぎて、削り出しの跡ではなく単なる"コードの集合体"のように見えてしまいますので、注意が必要です)。 
 完成したレンダリング画像

②架空の鉱石…架空の透明度のある鉱石の質感設定を、高度な機能を一切使用せず、"基本的な設定"のみで設定してみましょう。
準備:
直方体オブジェクトのポイントを移動して鉱石っぽい適当なオブジェクトを作成します。
(※複雑な形状の方が、より屈折の表現を認識しやすくなります)。
メイン、サブ、バックのライトを適当に配置します。
質感の設定:
カラーは適当に設定(今回は紫系R071,G044,B071にしました)。拡散レベルは高く、そしてガラスのような光の広がりのある反射光を設定します。
・今回は、反射光100%、光沢を30%に設定しました。
また、ガラスのように表面に写り込みますので、鏡面反射の設定も必要です。
・今回は、周辺の写り込みを50%に設定。

透明な鉱石の質感ですので、最も主要なポイントは、透明度と屈折率の設定です。
・水のような透明度をもたない鉱石ですので、透明度を75%にしました。
・屈折率は水(約1.333)、ガラス(約1.5)よりも大きな1.78に設定しました。
・透明物質なので、ポリゴンは両面レンダリング可能な設定にします。
 完成したレンダリング画像
 
 ※設定の効果を反映させるために、
  レンダリング時には、反射や透過、
  屈折などの機能をONにします。

  さて次に、基本的な機能に加えて、やや高度な機能を使用した質感設定の一例を説明しましょう。  
③人間の肌…人間の肌を、基本的な設定に、SSS(サブ サーフェス スキャタリング)を加えて表現してみましょう。


<SSSの設定>
準備:
人物の顔オブジェクトを用意します(
→人物モデリングの章参照)。
メイン、サブ、バックのライトを適当に配置します。
質感の設定:
基本設定で、カラー、拡散レベル、反射光、光沢を設定しましょう。
・肌の色は、今回はR248,G220,B186に設定しました。
 (※ただし、これは後でSSSのカラーに設定しなおします)。
・人の肌の拡散レベルは高め(85~100)です。今回は、90%に設定しました。
・人の肌は金属のような高反射をしません。反射光10%、光沢10%に設定。
人の肌は、鏡のような鏡面反射はないので0%の設定で良いでしょう。


さて、基本設定を終えたら、次にSSSの効果を加えます。
ロウソクや人の肌のような物質は、金属と違って実は半透明です。
暗闇で懐中電灯を手の平につけたことがある人も多いと思いますが、光が(骨の部分以外の)肉と皮膚を透過して拡散して赤く見えます。ロウソク、スーパーボール、石鹸なども、光を当てると、エッジが半透明で光を拡散しています。この効果をもたらすのが
SSS(サブ サーフェス スキャタリング)です。
(※SSSの設定の仕方は、ソフトごとに異なりますので、それぞれマニュアルを参照してください。)


今回、SSSをDiffuse_Shading(拡散シェイディング)に関連付け、左下段図のように設定しました。
・肌の表面のカラー、内側の肌の色(やや赤め)を左記のように設定。
・光が透過する肌の厚みを5mmに設定しました。
・屈折率は、ディフォルトの1.4のままにしました。

この後、顔の画像やバンプその他のマッピング画像の張り付け作業がありますが、ここでは取り扱いません。マッピング処理については、マッピングの章を参照してください(→マッピングの章)。
 完成したレンダリング画像
<参考画像>

SSSの効果をより分かりやすく見せるため、
効果を誇張したのが左の画像です。
光が透過する肌の厚みを敢えて10cmと誇張し、かつ背景のライトの強さを2倍に設定しました。
耳や後頭部の肌の中を透過する光の拡散の効果が、より分かりやすく確認できると思います。

 
 このページでは、金属、鉱石、肌の3種類の質感表現例のみ取り上げましたが、他にも無数と言える質感が存在します。
 まず世にある数々の物質の質感をよく観察しましょう。
目に見えると言う事は、逆に科学的にその要因を解析できると言うことです。
 ですから「その表面は、なぜそう見えるのか?」と言う事を、"論理的"に構築していく質感構成のトレーニングを積み上げていきましょう。
 
 
 
3.様々な質感表現の例示(※JOLLYBOY作品より抜粋)
 
 
 車のボディ(金属)の質感表現
 
  ワイングラス(無色のガラス)の質感表現
 
   ワインボトル(色の着いたガラス)の質感表現
 
  室内(家具=木材,窓=ガラス,壁=タイル,家電、他)の様々な質感表現