エッジの強弱をコントロールするには


https://www.youtube.com/watch?v=HBsE3SFrgeY

今回はエッジの強弱をコントロールする方法についてご紹介します。

まずはサンプルとなる顔のメッシュに対してエッジを表現してみましょう。エッジを表す簡単な方法として、Wireframeテクスチャを適用する方法があります。レイヤー追加特殊 Wireframe Textureを追加します。ライン幅をコントロールすると、顔のメッシュを構成するエッジが表現されるようになりました。

ただしこの場合、マテリアルグループの範囲内にあるエッジ全てに対して適用されてしまいます。特定の箇所のエッジに対してのみ表現したい場合には、エッジの選択セットを使用します。このモデルにはあらかじめ、目の周りと鼻筋に当たりエッジに対して、選択セットを設定しています。エッジ選択セットのプルダウンから設定しておいた選択セットを設定すると、選択セットの部分だけにワイヤーフレームが表示されるようになります。

ここからさらに、このラインの強弱をつけていきます。ラインの幅を設定するプロパティをスケマティックビューへと追加し、これからこのライン幅をノードでコントロールしていきます。いくつか方法がありますが、まずはウェイトマップを使って、強弱を表してみます。

適当にウェイトマップを作成し、スケマティックビューの追加シェーダノード処理Vertex Map Textureを追加します。Vertex Map Textureノードのテクスチャ値をWireframe Textureノードのライン幅へと接続し、頂点マップに先ほど作ったウェイトマップを指定します。ライン幅が太すぎてよくわからないので、乗算ノードを追加して、値をコントロールします。そうするとウェイトの強弱に従って、表現されるエッジの太さが変わってくるのがわかります。ウェイトマップであれば、好きなようにエッジの強さを表現できるようになるので、大変便利に使えます。

また使えるのはウェイトマップだけではありません。今度はGradientノードを使ってみます。追加シェーダノード処理Gradientを追加します。Gradientのテクスチャ値で接続をつなぎ直し、グラディエントの値を設定します。入力パラメータサーフェイスパラメータ入射に変更してみると、カメラからの入射角によってエッジの強弱が変わってきます。特に鼻筋のエッジを見ると、カメラが真正面から向いているときにはエッジが出ず、横からのアングルになるにつれエッジがはっきりと出るといったように、エッジの強弱が一定ではなく、カメラアングルによって動的に強弱が変わりますので、面白い効果を表現できるかと思います。