Speckleでお手軽クオリティアップ

今回はお手軽にクオリティアップを行うため、Speckle を加える方法を書いていきます。

ただし、今回紹介する方法は1つの手法でしかなく、別の方法でも同じ効果が得られるのであれば構いません。

むしろもっといい方法があるなら教えてほしいです。

Speckleというのは英語で小さな斑点、ぽつぽつなどの意味がある言葉です。

多くのチュートリアル動画ではすぺっこー、すぺっこーと言ってるのが聞けるはずです。

ここでいうSpeckleというのは、レンガやタイル、コンクリートなどに点在する小さな穴、凹みです。

ただ、タイルの場合はタイルの模様として入っているぽつぽつもSpeckleと呼びますが、今回は傷っぽい凹みです。

綺麗でシミひとつないタイルというのはそれはそれで綺麗ではありますが、やはり現実味はありません。

リアリティを上げるには汚れや、今回のSpeckleなどを入れてやるべきです。

まあ、Speckleを入れただけではリアリティは上がりませんが、汚れとかを入れたけどちょっと物足りないな、という場合にはSpeckleを入れてみるとクオリティが上がる印象です。

では、まずはその綺麗なタイルを作りましょう。

とりあえずベースカラーと法線はこんな感じで設定します。

sd065.jpg

ラフネスは適当に単色でも構いませんが、タイルと目地を別々にしても構いません。

ベースカラーに入力しているレベルノードは目地とタイルをきちんと分けるための処置です。目地が細くなるように調整しています。

これを行わないとタイル部分が黒くなっていまいちタイルっぽさが失われます。

法線の強度は 10 を指定していて、少し強めに出るようにしました。

この方がタイルっぽいから、というのが理由です。

このノードによって作成されるテクスチャはこんな感じです。

sd066.jpg

これはこれで綺麗ですが、近未来の超科学的な研究室みたいな無機質な感じを受けますね。

では、これにSpeckleを施していきましょう。

まずはノイズの選定です。

小さな斑点を付ける必要があるため、Perlinノイズのような滑らかなノイズや何らかの形状を示すようなノイズは向いていません。

この手の処理に向いているのはほんとにノイズっぽいノイズで、[Dirt] や [BnW Spots] などのノイズを用いることが自分は多いです。

大きめの穴などであれば [Gaussian Spots] も使えるでしょう。

今回は [Dirt 3] を使ってこんな感じにしてみました。

sd067.jpg

ノイズはそのまま使うのではなく、レベルノードを用いて白点を少なくします。

さて、Speckleは小さな穴として使用しますので、このまま法線化するのはよろしくありません。白点が凸形状として捕らえられてしまうからです。

なので、白黒を反転させてから法線にします。

sd068.jpg

法線の強度はお好みで。今回はデフォルトの1.0にしました。

ここで生成した法線を元の法線に結合させます。これには [Normal Combine] ノードを使用します。

sd069.jpg

このようにして法線の結合は完了です。

さて、今回はタイルの法線とSpeckleの法線をどちらも法線変換してから結合しています。

もちろん、高さ情報の段階で結合(タイルの高さからSpeckleの高さを減算)し、それを法線に変換することも別に悪いことではありません。

ここでそのような手法を採っていない理由としては、タイルの法線とSpeckleの法線の強度を一緒にまとめてしまうのがあまりよろしくないと感じたからです。

最終的には好みの問題ではあるのですが、タイルの法線を調整していたらSpeckleの法線が強くなりすぎてしまったので高さ結合の段階でSpeckleによる穴を浅くする、というのはあまり健全ではないような気がしました。

何度も言うようですが、最終的には好みの問題なので、実際に使用する人の意見を取り入れつつ決めると良いかと思います。

小さな穴は法線で表現が可能なのでこれでおしまいでもいいのですが、せっかくだからもうちょっと調整しましょう。

穴が開いている、ということは、その部分のベースカラーやラフネスに変化が加えられている可能性があるということです。

まずはベースカラーですが、AOというわけではないですが、少し暗くしておきます。

sd070.jpg

上のレベルノードは [Dirt 3] から接続されたノードです。2個上の画像にも載っているレベルノードと同じです。

ブレンドノードはモードを減算にしておき、不透明度はお好みで。

次にラフネスですが、目地は白(粗い状態)とし、タイルは少し滑らかに、Speckleはタイルより粗くする感じにします。

sd071.jpg

[Invert Grayscale] ノードの入力はタイル形状にレベルを掛けたもので、ベースカラーの生成に利用しているものです。

目地は白でいいのでタイル部分にそれなりのグレーを入れるために単一カラーを加算しているのが真ん中のブレンドノードです。

最後のブレンドノードでSpeckleを加算しています。これでSpeckle部分が粗くなります。

元からどの程度粗くなるかは不透明度で調整しましょう。

で、最終結果はこんな感じ。

sd072.jpg

画像の左側がSpeckleなし、右側がありです。

どちらがよりリアリティがあるか、と言われると割と難しいところな感じですね。

理由としてはSpeckle以外にこれといった粗がないので、Speckleが浮いてしまってるようにも見えるためではないかと思います。

普通、このような傷のあるタイルというのは経年劣化しているものがほとんどなので、それなりに劣化してるように見えないとよろしくないですね。

今回は小さな傷ということでちょっと凹ませてちょっと色を変えたくらいですが、もっと大きな傷になった場合はそれぞれのマテリアルに合わせた壊れ方をしてやる必要がある点に注意してください。

これを怠るとやはりリアリティが失われてしまうでしょう。

というわけでお手軽テクニックの1つを紹介したわけですが、お手軽だけにそこまで大きなクオリティアップは図れません。

しかし、この手のテクニックを色々と合わせていくことでマテリアルのクオリティを高くすることが出来ます。

小さなテクニックを1つ1つ自分のライブラリに加えていくことで、高クオリティなものを素早く作ることができるようになるのがプロシージャルの利点ではないかと考えています。

ですので、こういうテクニックがあるよ!というネタを持っている人は色々公開してくれると大変ありがたいですね。