見出し画像

【裏工房2】Unityの壁

こんにちは、メタバースしてますか?

いやー、暑い!!

今年も夏がやってきました。
海に山、夏祭りに花火と、イベントが盛り沢山の季節ですね。
個人的には洗濯物が速く乾くのが1番嬉しかったりします。

さて、前回の投稿からかなり時間が経ってしまいましたが、今回はメタバース向け3Dモデルの制作を始めた頃の話をしようと思います。

『VRChatに3Dモデルを持っていきたい!!』


Quest2を入手して間もなく、フレンドに誘われてVRChatを始めた私。
その世界に魅了されるとともに、いち早く自作モデルを持ち込みたいという気持ちが強くなりました。

DCCツールの1つであるBlenderには、VRChatを始める少し前から触れていました。
しかし「制作した3DモデルをVRChatに持ち込むためにUnityが必要」という事などもちろん知りません。

『うにてぃ?なにそれおいしいの?』状態です。

右も左も分からないまま、MyFriendのGoogle先生と二人三脚の日々が始まったのでした。

『テクスチャが違う…!?』


Blenderしか知らない私が最初に「???」となったこと…
それがUnity側でのテクスチャ仕様でした。
普段使用していたテクスチャは

・Basecolor → 色・拡散反射
・Metallic → 金属度合い
・Roughness → 粗さ
・Normal → 凹凸

という構成です。
Unityにもこれを持っていけばいいだろうと軽く考えていました。

ところが、いざUnityでテクスチャの設定を見ると、
『Albedo…?Smoothness…?』
と、聞き慣れない言葉が…。

色や見た目のメインとなるBasecolorは、そのままAlbedoで使用しても特に問題なさそうでした。
一方で、Roughnessマップはどうしたらいいのか…。
該当箇所が見当たらず、粗さという点ではSmoothnessが近そうですが、表現が違うしテクスチャスロットもない…。

左はBlenderのShaderEditor画面、右はUnityのInspector画面


細かい事はUnityの公式ページなどに記載があるので省略しますが、ざっくりとした結論、

・Albedo → 色・拡散反射
・Metallicsmoothness → 金属度合いと粗さ(滑らかさ)
・Normal → 凹凸
(その他略)

ということらしいです。(注:Unity 2019.4.31f1のStandartShader)

特に戸惑ったのが、MetallicとSmoothnessは同一テクスチャにパックするという考え方。
1枚の画像で、「Rチャンネル」にはMetallicマップを、アルファチャンネルである「Aチャンネル」にはSmoothnessマップを埋め込むようです。

尚、BlenderのRoughnessと、UnityのSmoothnessは値として反対なので、階調反転する必要もあります。

む、むずい…。頭が爆発しそう…。

PhotoshopまたはGIMPでアルファチャンネルへの埋め込みが可能

ただ、これはあくまでBlenderで使用していたテクスチャや、フリー素材のテクスチャを変換した事例であり、今はほとんどこの作業はしていません。

というのも、Adobe社が提供している「Substance3DPainter」というソフトでテクスチャを作成すれば、出力時に用途に応じてこれらの加工を自動でやってくれるのです。
サブスクですが、利便性を考えればもう手離せません。

Substance3Dpainterの画面。

久々なので長くなってしまいましたね。

新しい事に挑戦すると覚えることや壁も多く、何度も挫けそうになります。
それでもやっぱり、VRChat内で自分の作品を見られた時の感動は素晴らしいものです。
是非、皆さんもチャレンジしてみてください!

With VRでは、毎月第2火曜日に「VRChat映像する人集会」というイベントを開催しています。

映像を作りたい人や興味のある人が気軽に情報交換できる場となっています。もちろん3Dモデラーさんも大歓迎です。
多くの方のご参加をお待ちしてます!

それではまた。


この記事が気に入ったらサポートをしてみませんか?