Unityのテクスチャに立体感を作る方法
ゲーム内のものには表面に写真などの画像を貼ることでリアルにしますが、それが模様に合わせて細かく浮き出たりへこんだりして立体感があるように見せるにはどうしたらいいでしょうか。
実はこれは非常に簡単にできます。まずは、無料で著作権フリーのテクスチャ素材を配布しているサイトで好みの画像を手に入れましょう。
それをUnityにインポートします。何もしなくても、普通のテクスチャとして使える状態になっているはずです。
プロジェクトウィンドウの何もないところで右クリックして、マテリアルを新規作成します。
woodという名前をつけました。
Cubeなどのオブジェクトに画像を貼るには、その前にマテリアルをあてないといけません。マテリアルの中に画像のテクスチャを設定して、そのマテリアルをオブジェクトにドラッグして割り当てます。
テクスチャをマテリアルに設定する前に、テクスチャをクリックして、Ctrl + D で複製しましょう。
複製したものをオレンジの円にドラッグします。同じファイルでなく、一方は元のテクスチャを、もう一方へは複製したテクスチャを設定してください。
すると、Normal Map の方に、Fix Now というボタンが出てくるはずです。この「Normal Map(法線マップ)」というのは、テクスチャに立体感を加えるための画像です。普通の写真画像とは違い、色で表面の角度などを表現するのです。
Fix Nowを押すと、このように、Normal Mapに設定した画像の色が変わります。
このマテリアルを好みのオブジェクトにドラッグすると、立体感のある見た目になりました。
法線マップを使用しないマテリアルと比べてみてください。
「Normal Map」の右にある数値を上げると、もっと効果が増しますが、あまり大きな値だとリアルでなくなるので注意です。
テクスチャの並べて表示するとき
画像がオブジェクトのサイズと合わないときは、Tilingの値を変更します。
1枚でなく縦横に3枚の画像が並んで表示されます。
テクスチャ同士ののつながりを、テクスチャをクリックしたインスペクタウィンドウで、Wrap Mode で変更することができます。
滑らかさを設定
表面がざらざらしていると、光がいろんな方向へ反射しますが、滑らかだと狭い範囲へまとまって反射するのでテカテカ光って見えます。
これをマテリアルのSmoothnessでコントロールすることができます。