Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
2
Help us understand the problem. What is going on with this article?
@nchhujimiyama

【UnrealEngine】水っぽいマテリアルを作ったときのメモ

More than 3 years have passed since last update.

はじめに

ゲームを作ってる最中に背景が寂しく、水面がほしい、planar Reflectionで反射させたい、ということでまずは水っぽいマテリアルを作成した。

※ビルド中に書いてるので図などまったくありません。

とりあえず新規マテリアルを作成して好きな名前をつける。
で、サムネをダブルクリックしてエディタを開く。

プロパティの変更

エディタを開いたらまずは[Details(詳細)]パネルから以下の項目を変更する。

  • Blend Mode
    • 初期設定:Opaque(不透明)
    • 変更後 :Translucent(半透明)
  • Lighting Model
    • 初期設定:Volumetric Non Directional(容積測定の方向がない)
    • 変更後 :Surface Translucency(表面が半透明)

これであとはブループリントを作る。
そして貼る。

半透明で屈折するマテリアルのためのやつ

1回目はとりあえずまっさらな水。
2回目で波紋的なものをつける

1回目で使うものは以下のもの

  • Constant x5(とりあえずメモ用としてそれぞれをA~Eと呼ぶ)
    • 定数を指定できる
  • Lerp x1
    • AとBの間の値を補間して返してくれる。
    • AlphaはAとBの返す割合を決められる。0だったらAだけ、0.5だったらAとB半分、みたいな。
  • Fresnel x1
    • 見る角度によって0から1の値を変化させて返してくれるすごいやつ。
    • これがいることで角度によっていろいろ変わる水面のあれを表現してくれる。

とりあえずこれをマテリアルグラフに追加。で、接続していく。

Constant(名前[値]:つなぐとこ)

  • A[1]:ノードを2本出してBase ColorとMetallicにつなぐ
    • 色が白くなって金属光沢が出る
  • B[0]:ノードを1本出してRoughnessにつなぐ
    • 荒さがなくなりつやつやになる
  • C[0.5]:ノードを1本出してOpacityにつなぐ
    • 半透明にする。0にするとせっかくいろいろやっても見えない
  • D[1]:ノードを1本出して用意したLerpのAにつなぐ
  • E[1.33]:ノードを1本出して用意したLerpのBにつなぐ

ConstantのEについては後で値を変更しやすいようにパラメータに変換しておく。
変換方法は以下の通り。

  1. Eを選択し右クリック
  2. 表示されたメニューの中の[Convert Parameter(パラメータへ変換)]を選択する
  3. 変換したらプロパティから名前をつける。
  4. おわり。

今回はIORと名前を付けておく。
IORは屈折率のことでこれを変えれば水以外も作れる。

 マテリアル    屈折率  
空気 1.00
1.33
1.31
ガラス 1.52
ダイヤモンド 2.42

Fresnel

これはLerpのAlphaにつなげる。

Lerp

Refractionにつなげる。
AlphaにFresnelがつながっていることによって1から1.33の間でうまいこと屈折の仕方が変わってくれる。

水面が平らじゃなくなってほしいやつ

法線マップを使うことで水面にいい感じに波紋を作れる。
レンガっぽいものを使えば水風船で作ったレンガみたいなのができる。

法線マップ

法線マップとは、モデルの表面に凹凸がついているかのように見せることのできる特殊なテクスチャで、実際のジオメトリ(オブジェクト)にその凹凸があるかのように見せるやつ。

で、どうやるかというと

まずは使うテクスチャを選ぶためにマテリアルグラフで右クリックをしてTexture Sampleを追加する。
追加したTexture Sampleのプロパティに[Texture]があると思うのでそこに好きなテクスチャをぶち込む。

テクスチャを追加したTexture Sampleからノードを出してNormalに接続する。
これを適用すれば水面がいい感じに波打つ。

HighresScreenshot00004.png

さいごに

なんとなくそれっぽいのはできたがやはり水がきれいすぎるのでその辺はうまいこと調整してください。
あと、この記事の手順については以下のものと同じことをしています。
カタカナと謎英語が多くてわかりづらかったのでいろいろ付け足してあります。
元のやつと合わせて読んだほうが絵があるのでわかりやすいかと思います。

Unreal Engine | マテリアル エディタ - 屈折の操作ガイド

試しに色をつけてplanar Reflectionを配置してみたやつがこちらです。
HighresScreenshot00005.png

2
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
2
Help us understand the problem. What is going on with this article?