夜風のMixedReality

xRと出会って変わった人生と出会った技術を書き残すためのGeekなHoloRangerの居場所

UnityArtEngineで写真からマテリアルを作成する。

本日はUnityArtEngineの調査枠です。

〇UnityArtEngineとは?

[Unity ArtEngine]はUnityが提供するアーティストやグラフィックエンジニアのためのツールです。

ArtEngineはUnityによって提供されているUnityStationのYoutube動画で概要に関して解説がされています。

www.youtube.com

以下は筆者のまとめです。    

近年のハードウェア側の進化に合わせて3DCGはより高質に、リアルになっていきましたが、それに合わせてグラフィックエンジニアの作業工数や時間は膨大になっているという問題があります。

 UnityArtEngineではディープラーニングを用いて、膨大なパラメータで素材を編集する従来のプロシージャルなツールではなく素材に合わせ手法を変化させ最適な処理を行うツールとして生まれました。

導入に関しては過去の記事を参考にしてください。

redhologerbera.hatenablog.com

〇写真からマテリアルを作成する。

前回は[Seam Remover]ノードを使用してシームレスなテクスチャを作成しました。

今回はさらに高度な使用を行います。

redhologerbera.hatenablog.com

①UnityArtEngineを起動します。

f:id:Holomoto-Sumire:20211011191225p:plain

②ArtEngineに素材となる写真をインポートします。

f:id:Holomoto-Sumire:20211011191511p:plain

今回は近所の公園で撮影した地面の写真を使用します。

f:id:Holomoto-Sumire:20211011191417j:plain

ワークスペースに配置します。

当然といえば当然ですが、処理前の状態ではシームがはっきりしてしまっています。

f:id:Holomoto-Sumire:20211011192122p:plain

④[Hue/Saturation]ノードおよび[Crop]ノードを追加し、接続します。

f:id:Holomoto-Sumire:20211011192416p:plain

[Hue/Saturation]ノードで色相を合わせ、[Crop]ノードで画像のゆがみを解消します。

f:id:Holomoto-Sumire:20211011192541p:plain
Crop処理前

f:id:Holomoto-Sumire:20211011192629p:plain
Crop処理後 画像がまっすぐになっています。

⑤[Gradient Removal]ノードを追加します。

f:id:Holomoto-Sumire:20211011192758p:plain

このノードでは画像全体のグラデーションを削除し、画像同士がタイリングされた場合滑らかに見えるように処理します。

⑥[Seam Removal]ノードを追加し、シームを削除します。

f:id:Holomoto-Sumire:20211011192934p:plain

この処理によってシームが削除されますが、画像を事前処理していることもあり、よりタイリングした際に滑らかになるようにテクスチャが生成されます。

⑦[Mutation]ノードを追加します。また[Compose Material]ノードをつなぎマテリアルを構成します。

f:id:Holomoto-Sumire:20211011193421p:plain

[Mutation]ノードはテクスチャの特徴からオリジナルの特徴を残しつつrandomな画像を生成します。

f:id:Holomoto-Sumire:20211011193708p:plain
https://unity3d.atlassian.net/wiki/spaces/AR/pages/944865592/Mutation

⑧[Solid Color]を[Compose Material]ノードの[Metalness]および[Roughness]つなぎます。[Roughness]には[Invert]で逆数をつなぎます。

最後に[Material Generation]ノードをつなぎマテリアルを生成します。

f:id:Holomoto-Sumire:20211011194236p:plain

f:id:Holomoto-Sumire:20211011194349p:plain

⑨これで処理が完了します。[Output]ノードをつなぎ画像を書き出します。

f:id:Holomoto-Sumire:20211011194450p:plain

今回は次のようなテクスチャが完成しました。

f:id:Holomoto-Sumire:20211011194610p:plain 

f:id:Holomoto-Sumire:20211011194636p:plain

f:id:Holomoto-Sumire:20211011194800p:plain

以上で写真からUnityで使用できるマテリアルが完成しました。

Untiyで実際に使用すると次のようになります。

f:id:Holomoto-Sumire:20211011194911p:plain

タイリングの値を10にしていますが全くタイリングされているとわからない見た目になりました。