はじめに
このプロジェクトは、オリジナルキャラクター「スクロル」を作成・モデリングしVRChatにアップロード後、BOOTHでの販売を目標としています。
キャラクターデザインからBlenderでの3Dモデル化、Unityで表情や服の着せ替え設定まですべて自分で行います。独学でのモデリングになるため、至らぬ点が多々あるかと思います。アドバイスなどございましたらぜひご連絡ください!
ノーマルマップで服の質感を表現する
現在、仮テクスチャで色だけ塗っているオーバーオールに、ジーンズのようなざらざらとした質感を加えていきたいと思います。今回はtextures.comのデニム素材を使用します。

Denim Fabric - PBR0260
雑にUV展開したものに、ノーマルマップを適用してみました。
全体的に歪んでいて見た目がとても悪いです。歪みや柄の向きを揃えるためにUV展開をしていきます。
UVを整える
自分しかデータをいじらないだとか、ノーマルマップを使用せず直接テクスチャに描き込むのであれば雑なUVで構いません。ですが、このアバターはBOOTHでの販売を目標としているため、購入してくださった方が後の改変で服の配色を変えたい、柄を描きたいとなった場合に不便なので、使いやすいようUV展開をしていきたいと思います。
めちゃくちゃなUVが整頓されました。歪みも少なくきれいに展開できたかと思います。あまり解像度を必要としないもの(肩ひもの内側や描きこむ予定のない金属部品など)は小さく配置しました。
UVのXY方向を揃える
テクスチャ上で右側にイラストを描いたのに、アバターには左側にイラストが表示されている…。
なんてことが起こらないように、直感的にペイントできるようXYの向きを正しく設定しました。正直UV展開自体よりもこの作業の方が大変でした。
ノードでノーマルマップの設定を行う
ノードで以下の設定を行いました。
- 金属部品と布素材のマテリアルを分ける
- カラーランプで粗さの調整
- テクスチャ座標とマッピングを使用し、ノーマルマップのスケールを調整
完成
歪みも少なく、デニム柄の向きもいい感じに揃えることができました。スクロルちゃんのセルルックな見た目に合うよう少しマットな質感にしています。
ワールドのライティングによって凹凸の見え方が変わるみたいなので、VRChatではどのように表現されるのか楽しみです。
もう少しディティールを上げるために、布の縫い合わせっぽい部分をスカルプトで作ってベイクするのもいいですね。この調子でほかのアイテムも仕上げていこうと思います。
余談ですが、厚みのあるオブジェクトをUV展開するときのコツを見つけたのでご紹介します。
厚みがあるオブジェクトは、まとめてUV展開しようとするときれいな形に展開されず困っていましたが、以下の手順で解決できました。
- 厚み部分を除外したメインの面を選択し展開する
- 展開したUVをピン止めし、次に厚みを含めたすべての面を展開する
- 追加で展開したUVはメインの形に添うように頂点を移動する
今回のオブジェクトは全体に厚みを持たせて作ったので、この方法を使う場面が多かったです。歪みも抑えたままきれいに展開できたので満足しています。
他にも色んなやり方があると思うので、あくまで一つの方法として知っていただけたらと思います。もっと効率的できれいな展開方法がありましたら是非教えてください!