はじめに
今回はUnityの無料アセットを使ってインテリアマップを作る方法を紹介します。
インテリアマップが何かが分かってることを前提に進めます。
↓「インテリアマップとは何か?」という方はこちらをご覧ください。

2つの無料アセット比較
インテリアマップのシェーダーを組むのは一般人には大変な作業です。
そこでシェーダーが配布されているアセットを使うことをおすすめします。

自力で組みたい猛者な方はこちらの記事などを参考にしてください。
「インテリアマッピング(interior mapping)~1m³距離編~ by コポうぇぶろぐ」
…私は何書いてるか分からなかったです。
無料で使えるシェーダーは下記の2つ。
・Fake Interiors Free(UE用アセットあり)
・Interior Mapping Shader(Unity限定)
この2つは微妙に癖といいますか、個体差のようなものがあります。

Fake Interiors Freeの方は左右の壁の色を変えれません。
その代わり、中に1枚透過テクスチャを読み込めます。
これで疑似的な形状が入ったような表現が行えます。

↓動かすとこんな感じです。

Interior Mapping Shaderは左右の壁の色を変えれます。
その代わり、中に形状を入れれません。

↓動かすとこんな感じです。

左右の壁の色を変えつつ、中に形状を入れたい方は自力でシェーダーを組んでください。

左右の壁を変えるデータ容量を中に使ったのかなぁ…?
謎。
Fake Interiors Freeを使う
導入
まずFake Interiors Freeを入れたいUnityのプロジェクトを開きます。
最初に開くのが重要です。

開いた後、こちらのページにアクセス。


検索した方はUE5用(Fab)と間違えないように注意。
マイアセットに追加 → 利用規約に「同意する」を選択。

Unityで開く → 「Unity Editorを開く」を選択。

するとパッケージマネージャが立ち上がります。
Fake Interiors FREEを選択し「ダウンロード」を実行。

DLが終わったら「インポート」を実行。

すべてにチェックが入った状態でインポート。


ほとんど素材なので、慣れた方は素材関係は入れなくて大丈夫です。
(たぶん、あとから消した方が早い…)
Fake Interiors Freeを入れるとUnity起動時にポップアップが出るようになります。
邪魔なので「Show At Startup」を無効化して非表示化。

Fake Interiors Freeを開き…
“ここでは” 「Samples BIRP」のパッケージをダブルクリックで起動。

というのも、中に複数バリエーションを読み込むためのパッケージが入ってます。
このパッケージの違いはレンダーパイプラインの差です。

Unityで画面を表示する処理の関係で7つバージョンが入ってます。
【レンダーパイプラインの違い概要】
・URP → 一般的なやつ
・HDRP → 高負荷、高品質
・BIRP → 古いアセットや簡単なゲーム用(今の環境では非推奨)
・12x、14x、17x → パイプラインのバージョン

BIRPは非推奨ですが…
Unityのバージョンを気にしなくて良さそうなので、解説記事としてBIRPを選びました。
あと、なぜか私の環境ではURPとHDRPはテクスチャの表示エラーになりました。
(例のピンク色)
レンダーパイプラインを選択。
すると「パイプラインに合わせたパッケージ」が表示されるのでインポートで導入。

Fake Interiors Freeフォルダーの中にレンダーパイプライン名フォルダーが生成されます。
こちらをクリックで開きます。

この中にあるSampleシーンを適当に開きます。
ここでは「Sample Facade」を選択。

すると、サンプルアセットが表示されます。

動かすとこんな感じです。
↓インテリアマップ入ってますね。

以上で導入が完了です。
編集用のマテリアル複製
ヒエラルキーからSample Facadeを開き「Windows Glass」を開きます。

ちなみに謎の白い球と黄色い線はギズモ → 「Light Probe Group」で非表示化できます。
邪魔なので消してOK。

「Windows Glass」を選択した状態でインスペクターを確認。
すると、下の方にマテリアルの表示があり「▼」で開くと操作できます。

ただサンプルのマテリアルを編集するのはデータ的に良くないです。
そこでインスペクターマテリアル部分を右クリック → 「マテリアルを選択」を実行。

するとプロジェクトでサンプルマテリアルがある場所が表示されます。
ここで「サンプルマテリアル」を選択。

Ctrl+Dキーで複製。

使いやすいように適当なフォルダー位置に移動。

これで編集用のマテリアル複製が完了です。
中の形操作(タイリング)
実験用に適当な形状を作ります。
ヒエラルキーの何もないところを右クリック。
3Dオプジェクト → キューブなどを作成。

制作したキューブにマテリアルをドラッグ&ドロップで割り当て。

すると… なんかコレジャナイ仕上がりになります。

プロジェクトで割り当てたマテリアルを選択。

インスペクターで下の方にある項目を操作します。
↓試しにRoom Tile、Rooms、Position Offestを下図のように設定。

すると… ちょっと違いますがそれっぽく見えます。


このコレジャナイ感は単に…
インテリアマップとCube表現が相性悪いだけと思います。
(凸の形に凹みの表現を割り当ててるので、謎の形に…)
次は平面を作成。
すると… 中の繰り返し数が変わり、正しい見え方じゃなくなりました。

こちらはRoom Tile、Rooms、Position Offestを操作して調整。

すると… ちょっと違いますがそれっぽく見えます。

ただし、キューブの方がいまいちな感じになりました。

動かすとこんな感じです。

このあたりの挙動の違いを考えると…
ただの平面でもBlenderで作ってUnityに入れるのが早いという答えに行きつきます。


Unityは.blendファイルをそのまま読み込めます。
まとめると下記。
【タイリング・中の形を変える要素】
・マテリアルのインスペクター(Room Tile、Rooms、Position Offest)
・モデルの形状そのものにあるUVなどの設定
※マテリアルと形状の2つの要素でリピート数を変えれることが重要
以上が中の形を操作する方法の解説です。
中の色操作(テクスチャ置き換え)
中の色はマテリアルのテクスチャーを置き換えると操作できます。
↓下図の場所を操作して編集してください。

テクスチャはambient CGの「Rock028」を用意し割り当て。


とりあえず使えれば、なんでもいいです。
ノーマルマップはインスペクターでテクスチャタイプを「カラー」にして読み込んでください。
これで、中の色を操作できます。

Facadeは正面の汚れ関係です。
↓分かりやすいように Tilingを操作すると影響先がわかると思います。


これは窓の汚れなどを設定するためのモノのようです。
不要な方は透過情報だけのテクスチャを読み込み。
Room Color TintをHSVの色座標でV50に設定。

これで表示が消えます。(力業)

Propは中央にモノを追加する機能です。
Toggleで有効化し透過.pngなどを入れると使えます。
またRoomsの「W値」で中央の位置を変えれます。

↓こんな感じに、中に形状が生成されます。
(繰り返し数はTilingで調整可能)

W値を操作すると中央とする場所が変わります。
要するに、前後に動きます。

これで中にモノが入ったような表現ができます。

これはサンプル素材の「Facade_2」などを入れると面白いです。

テクスチャを差し替えてTilingを調整。

すると、正面に壁があるような表現が作れます。

↓こんな感じの挙動です。

そして… 中の箱と正面のタイリングをうまく合わせれば壁っぽくなります。

調整が大変だったのでサンプルの「Parallax_BrickRoom_2」に差し替え。

すると、ただの平面が “マンション” みたいな感じの表現になります。

以上がFake Interiors Freeの解説です。
Interior Mapping Shaderを使う
こちらのInterior Mapping ShaderでもUnityでインテリアマップが行えます。
↓こちら説明書が販売されてるので… 細かな解説はあえて行いません。


あんまり開設すると公式が販売してる「説明書」の価値を下げてしまいます。
なので… いろいろ察しながら使うか、こちらを買って使ってください。
これは無料版のシェーダーをマテリアルを割り当てると使えると思いそうですが…。

無料版をDLしてUnityで作った平面に割り当てると…
なぜか向きがおかしいことになりました。

そこでBlender「面を反転」した平面して読み込み。
これにマテリアルを割り当てると… なぜか治りました。(謎)

あとはキューブマップテクスチャを適当に作ります。
あまりよくない方法ですが… 「古い機能」のキューブマップが楽です。


古い機能なのであまりよくない手法です。
ちゃんとやりたい方は素材集を買いましょう。
Right+Xと-Xが左右の壁を表します。
適当な画像を読み込ませてテクスチャを作成。

これで左右の壁の色を変えれます。
ただし… Fake Interiors Freeのような中にモノを入れる機能は無いようです。


正面に透過素材を入れることはできるっぽいです。
(ガラス効果的なモノが作れるよう)
中にモノを入れれないこと以外はFake Interiors Freeと同じです。
普通に動きます。

以上がUnityでインテリアマッピング(Fake Interiors)を使う方法の解説です。

より細かいことをやりたい方は自力でシェーダーを組みましょう。
(…たぶんこの難易度の作業は依頼した方が早い)
まとめ
今回はUnityでインテリアマップ表現を作る方法を紹介しました。
・シェーダーを1から作るのは難易度が高い
・そこで無料アセットを改造して使うのがおすすめ
・Fake Interiors Freeは左右の壁の色を変えれないが中にモノを入れれる
・Interior Mapping Shaderは左右の壁の色を変えれるが、中にモノを入れれない
また他にも3DCGについて解説してます。
ぜひこちらもご覧ください。

Unityのシェーダーは基本的にHLSLで書かれてるらしいです。
これはマイクロソフトが開発したDirect X用のシェーダー言語。
これを学ぶと… 作れるのかなぁ…?
HLSL極めた人はこうなるみたい(参考)
そしてシェーダー芸人へ…
コメント