みなさん、VRoid楽しんでますか?

最近は髪の毛が揺れるようになったり、ワンピースの型紙も増えて一気にユーザーさんの交流が増えたり、配布用テクスチャが増えたり楽しいです。
あと最近は年内に男の子の素体も来るのでは…?といううわさもありますよ。(これまで男の子作れなくて断念していたユーザーさんも取り込めたらいいなぁ)

今回はこの環境で検証しました。
VRoid studio 0.4.0-p1

髪の毛のテクスチャの編集のやりかた

さて、髪の毛を筆で書くように作れるVRoid Studioですが、実は服や顔パーツと同じように、髪の毛のテクスチャをいじれることはご存知ですか?知らなかった人のためにも軽く解説しますね。

まずは普通に「髪型編集」で手書きなりプロ―ジャルヘアで髪の毛を作った後、「テクスチャ」タブをクリックします。

こうすると、テクスチャ編集モードに入ることができます。ついでに、基本色を白色(#ffffff)にしておくと、テクスチャの色味がそのまま再現されます。ここはお好みで。

(既存のテクスチャは白黒で描かれていて、それに基本色がフィルムのようにかぶさることで陰影のついた髪を再現しているようです)

なお、消しゴムでテクスチャを消すと、消しゴムで消した通りにその部分が透けます。これを利用して繊細な毛先を再現したり、透け髪を演出するのもいいかもしれませんね。

髪の毛のテクスチャの貼られ方考察

さて、髪の毛のテクスチャの編集方法を簡単に説明しましたが、私はここで「髪の毛のテクスチャがどのように貼られているか」が気になりました。
特に、「長い髪の毛を描いたとき縦に伸びたりするのか」「髪の毛の形状をひし形から底なし三角形にしたときなど、明らかにテクスチャの貼られ方が違う」あたりが気になりました。

そこで、今回はこの辺をはっきりさせるとともに、「歪むときはどう歪むのか」調べます。

考察に使用するテクスチャ

今回は髪の毛テクスチャと同じ大きさの画像で、数字と均等なマス目が書いてあるテクスチャを使用します。

blenderで新しくUV用の画像を作るときに生成されるものです。

髪の毛の長さによるテクスチャの変化

まずは、髪の毛の長さによってテクスチャがどう伸び縮みするかを検証します。

この画像は「プロ―ジャルヘア、位置360、本数1、基本色と影色をそれぞれ#ffffff(他は初期値のままです)」です。この画像を基準にし、髪が伸び縮みしたときどうなるかを見ます。

というかプロ―ジャルヘアの初期値に近い値でもちょっと縦に伸びてますね。

縦に伸ばした場合どのくらい伸びるのか検証します。

ガイドパラメータの高さを最大の1にしました。

長すぎて体に埋もれました。

見事に縦に伸びています。ただ、髪が長すぎて下のほうがよくわからないので、一旦「プロ―ジャルパラメータの位置」を180にします。

一旦後ろに持ってきて、長さをみました。見事に均等に伸びてます。

髪の毛のテクスチャを見てみるとわかるように、どの数字のマスも均等に伸びています
(もはや文字がつぶれて読めない)。どうやら髪の毛のテクスチャというのは、部位ごとに伸び率が異なるという代物ではなく、均等に引き延ばされるようです。ですので、髪が長くなれば長くなるほど、どんどん縦に引き延ばされていきます。

続いて、今度は短くするとどんな感じになるか見てみましょう。
ガイドパラメータの高さを最小の0.10にしました。

やはり、長くした場合と同様に均等に縮んでいます。(髪の毛の先が細すぎてA列が見えないですが、他の列と同様に縦方向に縮んでいるようです)

VRoidの髪の毛のテクスチャは、作った髪の長さによって変更するものではなく、髪の長さに応じて均等に伸び縮みするようです。

個人的に「毛先と根本に伸びにくい箇所があったりするのかな」という淡い期待もあったのですが、髪の毛特化だけあり流石にそういうわけではなかったようです。残念!(もしこの仕様だったら、リボンとかマフラーの先とか作れそうかなと思っていたので)

髪の毛の形状によるテクスチャの貼られ方の違い

続いては、髪の毛の形状によるテクスチャの貼られ方の違いを検証します。

髪の毛の長さを検証した時と同じような条件「プロ―ジャルヘア、位置360、本数1、基本色と影色をそれぞれ#ffffff(他は初期値のままです)」、

まずは「ひし形」。

「ひし形」で使われる範囲は次のようになっています。

「ひし形」は裏表均等に使われ、無駄がありません。左の1と2列が裏面、右の3と4列が表面です。

続いては「三角形」。

「三角形」で使われる範囲はこちらになります。

スミマセン、切り替えの位置は大体の位置です。

VRoid画面上ではわかりづらいですが、大体左側の1列と2列の一部が裏面に来ます。

続いては、「底なし三角形」です。

「底なし三角形」で使われる範囲はこちらになります。

スミマセン、切り替えの位置は大体の位置です。

ひし形、三角形と打って変わって、こちらはなぜか左1と2、3列の一部が表面に来ています。3列の右側と4列すべては未使用面です(描いても反映されない模様)。

「直線(板ポリゴン)」です。

「直線(板ポリゴン)」で使われる範囲はこちらになります。

こちらは左側2列が表面として使われ、右側の2列は使用されません。

髪の毛の形状によっては、「未使用面」が存在します。また、各形状により使用面が異なるため、複雑な形の透過テクスチャを使いまわすのは難しいです。もし、髪の毛テクスチャを配布するとしたら「〇〇形状専用」として製作するほうがいいかもしれません。

まとめ

以上、髪の毛の長さと形状によるテクスチャの貼られ方の違いを検証、考察しました。

髪の毛の長さによって、意外と伸び縮みが激しいことに驚きました。最初から適用してあるテクスチャは縦筋に沿って髪の毛が描かれているものですが、この場合だと伸び縮みしてもあまり気にならなかったのでちゃんと調べるまで全然気が付きませんでした。

フルスクラッチで3Dモデルを製作するのと違い、VRoidは髪の毛の長さをユーザーが自由自在に決める必要があって、このような仕様になったのかなぁと考えています。

また、つい最近Twitterにこのようなものを投稿しました。これは底なし三角形に髪の毛の房をイラスト調に描いたテクスチャを貼って作っています。(1種類だと使いまわし感凄いので3つに材質分けて、それぞれに違うテクスチャ貼ってます)

でも、ちゃんと検証する前のことでしたのでテクスチャの適用される範囲を把握しておらず、適用されないところまできっちり描いてしまっています。反省。(実際描くときは多少範囲外にはみ出して描いたほうが、見栄えはいいです)

今回の考察が、皆様のVRoidライフをよりよくすることを願っています。