妹でもわかるUnrealEngine4

毎日更新? 妹に説明するために書いてるけど、たまにわかってない場合もあるUnrealEngine4を中心としたゲーム制作の話。略すとイモリアル

毎日更新? 妹に説明するために書いてるけど、たまにわかってない場合もあるUnrealEngine4を中心としたゲーム制作の話。略すとイモリアル

マテリアルによるトゥーンアウトライン研究(6) 法線データの参照

「アウトラインを出す方法には、深度(奥行き)を使った方法の他に、法線を使った方法もあるらしい。法線が急に大きく変化してる場所は、ポリゴンの角度がきつい場所なんだから、そこに線を入れとけばいいという考え方」

妹「法線ってなんだっけ? 聞いたことはあるような気がするんだけど」

「ポリゴンが向いてる方向の、角度的なもの。そのままエミッシブカラーに接続すると、同じ方向を向いた面は同じ色になる」

f:id:una_unagi:20170404233649p:plain

f:id:una_unagi:20170404233724p:plain

f:id:una_unagi:20170404234845p:plain

「ただこの角度というのが、ワールド座標基準の法線になってる。カメラの角度が変わっても面の色が同じ」

妹「駄目なの?」

「駄目ではないけど、輪郭線を出そうと考える時、どういう仕組みにしても、どこが輪郭になるかはカメラの角度次第で変わるはずで、そうするとカメラ基準の法線が欲しい」

f:id:una_unagi:20170404234859p:plain

f:id:una_unagi:20170404234854p:plain

f:id:una_unagi:20170404234912p:plain

f:id:una_unagi:20170404235409p:plain

「カメラ基準の法線は、TransformVectorというノードを使えばいいことがわかった。こうするとカメラ基準の数字になるから、カメラを動かすと面の色も変わる。ちなみにこのノードは一覧だとTransformだけ書いてある」

妹「面の色がなんか黒くなったような」

「それは偶然というか、ワールド座標の方がたまたま見栄えのいい色になってたというか。マイナス部分の数字が多くなる角度になってるけど、マイナスでも計算には差し支えないから」

妹「カメラ基準のが要るなら、最初からそうしておいてくれればいいのに」

「多分ワールド座標の状態が一番計算が速いんだと思う。素の状態というか。単純に隣のピクセルとの角度の差を調べるならどういう基準でも問題ないし」