1. サイトトップ
  2. ブログ
  3. Unity
  4. 【Unity】タイリングモデルに陰影を追加してクオリティを向上させよう

【Unity】タイリングモデルに陰影を追加してクオリティを向上させよう

新年あけましておめでとうございます。
技術連結課の畑中です!

年が明け、少しずつ日常のリズムが戻ってきました。
日常の繰り返しが戻りつつある中で、気持ち新たにゲーム開発を頑張りたいと思います。

そんな「繰り返し」について、ゲーム制作でも「タイリング」と呼ぶ繰り返しを利用した手法があります。
今回はタイリングを使用したモデルについて、陰影を追加し見た目の向上させてみようと思います!

タイリングモデルについて

メリットとデメリット

壁・床や、広大な地形などのモデルに1枚のテクスチャをリピートして表示する「タイリング(リピート)」という手法があります。
テクスチャを1枚で済ませられるため、テクスチャの容量削減や描画負荷が抑えられいいこと尽くめ!

と思いきや…?

画像のように、見た目の単調さや平坦に見えるなど、そのままではクオリティ面で気になってしまいます。

そこで、今回はアンビエントオクルージョンを利用し自然な陰影をプラスし、立体感や情報量を増やしてみようと思います。

アンビエントオクルージョンとは?

アンビエントオクルージョン(Ambient Occlusion)」とは、環境光(Ambient)が遮られる(Occlusion)部分に生じる陰影のことを指します。(以下AOと呼びます。)
物体同士の設置感や凹凸などを表現するのに適しているので、自然で柔らかい陰影が表現できます。

実装方法を考える

環境

今回はUnityを使用して実装していきます。

  • Unity 6.2
  • Maya Creative 2026

タイリングとAOを組み合わせる

3Dモデルには、複数のUVセットを持たせることが可能です。
それぞれのUVは用途ごとに使い分けることができ、レイヤーのような役割を持っています。
今回は以下の構成で、使用します。

  • UV0:タイリングテクスチャ
  • UV1:AOマップ

タイリングテクスチャの上から乗算するイメージでAOマップが載せられると良さそうです。

そこで、Unityの「ShaderGraph」を使用しカスタムシェーダで実現してみましょう!

UnityにおけるUV1の注意点

Unityでは、デフォルトでUV1がライトマップ用として使用されます。
ライトマップベイクを行う場合はUVの割り当てを変更しましょう。
参考:Generate lightmap UVs – Unity Documentation

なお本記事では、ライトベイクを行わない制作環境を前提とし、UV1をAOマップ用として使用します。

実装してみる

今回は、この柱モデルを用いて制作していきます!

モデルはUnityAssetsStoreにて無料で配布しておりますので、よかったらご活用ください。

Dungeon Modular Pack – Unity Assets Store

UVの作成

AOマップ用のUV1の作成を行います。
UV ToolkitのUV Sets → 「Create empty UV set」を選択し、新規UVを作成します。


AO用のUVは必ず各アイランドが重ならないようにしっかりと切りましょう。
解像度はそこまで高くしないため、パディングは広めにしました。

ベイクでAOマップを作成する

AOマップをテクスチャとして書き出します。SubstancePainterなど各DCCツールを使用してテクスチャを用意しましょう!
今回は、MayaのArnoldを使用してベイクしました。

▼このような白黒の陰影が表示されたテクスチャを使用します。

ShaderGraphを使用しシェーダを作成する

今回は比較的軽量かつ陰影を表現として扱うため、Unlitシェーダで構築しました。
実際に作成したカスタムシェーダはこちらになります!

UV0とUV1にそれぞれタイリングテクスチャ・AOマップを割り当てています。
タイリングテクスチャとAOのブレンドにはLerpノードを使用します。

Lerpノード

「Lerp」とは、AとB2つの値を、Tの値(0~1)に応じて線形補間するノードです。

  • A:タイリングテクスチャ
  • B:AOマップ
  • T:AOStrength

T0ならAOは「非表示」、1ならAOが「表示」されるようになります。

今回の用途ではPhotoshopなどのレイヤー不透明度を触っているイメージに近いですね。

完成

ここまで実装してできたのがこちらになります!

上記のタイリングのみのモデルと比べて、AOが載るだけでも印象が変わったことが分かるかと思います。

応用してAOの色を変えてみる

AOの色が黒色でも問題ないですが、絵作りによってはコントラストが強く感じてしまうかもしれません。
表現を広げるため、シェーダを少し変更してみましょう!

実際に作成したノードが以下になります。

もうひとつLerpノードを使用し、今度はAOの影部分(黒)を任意のカラーに置き換わるようにしてみました。
これで自由に陰影の色も変更できるようになりました!

まとめ

タイリングはコストパフォーマンスに優れる一方で見た目の違和感が出やすいです。
今回のようにシェーダで表現の幅を簡単に広げることが出来るので、ぜひ挑戦してみてください!

参考文献

本ブログでは、以下のアセットを利用させて頂きました。


【免責事項】

本サイトでの情報を利用することによる損害等に対し、
株式会社ロジカルビートは一切の責任を負いません。