読者です 読者をやめる 読者になる 読者になる

妹でもわかるUnrealEngine4

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

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

水のマテリアル研究③ ラフネスを下げないと水面に反射しない

マテリアル UE4.14

「昨日メタリックにしても反射しなかったのは、ラフネスが標準値だったから。ラフネスが0がツルツル、1がザラザラになる。標準値は0.5だからあんまり反射しなかった」

f:id:una_unagi:20161206234639p:plain

「ラフネス値のノードを見ると、実はLerpで0.15と0.15を混ぜてるので、Alphaに何をつないだところで0.15にしかならないことがわかった」

妹「なんて意味のない……」

「このマテリアルだけだと意味はないんだけど、マテリアルインスタンスを作ると、この部分は変数になってるから、書き換えることが出来る」

f:id:una_unagi:20161206234952p:plain

「これで一番ラフネスが低いところと高いところと、別々の数値を設定すると、ラフネスのノードに意味が出てくる。これで色も変えられる仕組みだった。最初なんか色が違うと思ったのも、このインスタンスの方を使ってたからだった」

f:id:una_unagi:20161206235521p:plain0.0
f:id:una_unagi:20161206235528p:plain0.5
f:id:una_unagi:20161206235538p:plain1.0

「金属的に見せるにはラフネスをかなり下げないといけない。0.2~0.3ぐらいでもうだいぶぼんやりする。ラフネスを下げないままだと、いくらメタリックにしても金属には見えない」

docs.unrealengine.com

妹「ツヤツヤなのと金属なのは違うのかな? 同じパラメータでもよくない?」

「例えばプラスチックなんかは、ツヤツヤだけど鏡的な反射の仕方はしない。そのへんで区別が必要なんだと思う」

www.youtube.com

「これはひたすら泥団子を磨いてピカピカにするという動画なんだけど、表面を綺麗み磨いてラフネス値が下がっていって、水分のせいか最終的にはメタリックな感じになっていく」

妹「へー、面白いね」

「ラフネスとメタリックをいじってると思い出した」

f:id:una_unagi:20161207000717p:plain

「マテリアルインスタンスで、ラフネスの上限と下限を変えるとこんな感じ。波の形状に合わせてラフネスが変化するらしい。この波のパターンがラフネスとノーマルで共通で、解析がむずかしい部分」

妹「波模様になったね」

「でもこの方法で波を作ると、ラフネスが上がる分水面の鏡面反射が弱くなってしまうから、サンプルのマテリアルインスタンスではほとんどラフネスは変化をさせてない。基本的にはノーマルの方で波を作ってる」