BlenderでVIVEトラッカー(3.0)をモデリングしてVRChatに持っていってみました。夏休みにBlenderを触り始めて、チュートリアルなしで作った初めての作品です。実物を持っているので、実物を見ながら作りました。実物のカラーは黒しかないのですが、せっかくなので存在しないカラーを量産しました。実在しないものを生み出せるのはCGの良いところですね。

vive-vrc

👆VRChat内で撮影した写真

VRChatでの利用が前提なので、ポリゴン数が多くなりすぎないように心がけました(△1478)。表面の溝や窪みはハイポリからベイクしたノーマルマップを使って表現しています。スムーズシェードも併用することで、それほど見た目を損なわずポリゴン数を落とせていると思います。

vive-bake

👆左:△37000くらい、右:△1500くらい

ボディの部分、中央の△の部分、底の部分の滑らかさの違いも再現しています。

vive-roughness

👆△の部分は滑らかで、光をよく反射します。逆に底の部分はマットな質感になっています。

単純にはそれぞれのパーツでマテリアルを分ければよいですが、VRChatでの利用を想定するとマテリアルは少ない方が望ましいです。ということでこれらの滑らかさの違いはRoughnessマップで表現することにしました。これによりマテリアルが1つで済みます。

今回使用しているUnity Standard Shaderでは、AlbedoテクスチャのアルファがSmoothnessに割り当てられています。Roughness(粗さ)とSmoothness(滑らかさ)はちょうど真逆の関係にあるので、BlenderでベイクしたRoughnessを反転してアルファに書き込めばよいです。と、言うのは簡単ですが実際やってみると非常に面倒でした。BlenderのCompositでやりましたが、一体皆さんどうやっているのでしょうか。

迷彩柄はBlenderのShader Editorで生成したものをベイクしました。これにより、単にフリー素材のテクスチャをUVに重ねたときに生じる、模様の密度のムラやシームの切れ目の不連続を回避できていると思います。

vive-camo-red 👆フレンドをイメージしたカラーの迷彩を作ってプレゼントしました!