VRChatやVRMのアバター頭身をいじる(fbx修正不要)

VRChatかわいい(挨拶)

さて、VRChatやらで改変アバターをいじくってると「身長を伸び縮みさせたらどうなるか?視点も変わってなんか楽しくなるのでは!?」と思うこともあると思う。しかしそのままモデルを拡大縮小をすると、なんだか違う。フィギュアだか妖精さんだか、になってしまわない?

普通の人間は、身長が伸びたからって頭のサイズが劇的に変化したりしないし、高身長でスマートな人は手足が長い。小さい人は、一般的に胴体に対して手足が短く、頭が大きく縦長寄りになる。大きな人は、胴体に対して手足が長く、頭が小さく頭は上下に潰れる

 

のでモデリング作業ゼロ、Unityエディタ上だけでさらっと手足の長さと頭のサイズを調整し、低頭身ちびっこアバターや高頭身ナイスガイ・レディなアバターを作る

これはVRChat/VRC SDK2で動作を確認したが、同じ方法でVRMでも同様の修正が出来たので、下にVRMの場合も書く

Just作業

いつものUnity+VRC SDKアバターをいじってるところからスタート。ちなみにこのアバター火事屋さんのU10mk2(頭)と、同じくU10ユトver(胴体)をくっつけて、テクスチャやらマテリアルやら改変した状態。

f:id:o_mega:20190521031216p:plain



もうかわいいのですが、説明すると左から高身長化(162cmぐらい)、ちび等身化(107cmぐらい)、最後に右が未変更のオリジナル(137cmぐらい)。

 

やることとはArmatureをポチポチ開いて、手(UpperArm)足(UpperLeg)を選んでscaleをいじる。と、その部位から先のサイズがまとめて変わる。

上の低身長ユトちゃんは、手足(UpperArmとUpperLeg)のYを0.8倍、頭(Head)のYを0.95倍して、やや頭を縦に縮めた*1。高身長ユトちゃんは、全体を1.1倍、手足のYを1.15倍、頭(Head)をXYZすべてに0.95倍して小顔気味にしている。

f:id:o_mega:20190521042740p:plain

 

とりまこれだけで等身は変わるのだが、そうすると

f:id:o_mega:20190521032435p:plain

床から浮いたり足がめり込んでしまう。VRChatに入ってもだいたいこの高さで浮いたり刺さる。グヌヌヌ…

なぜかというと、ここは推測だがVRChatはアバターの腰hipsボーンを掴んで動かしているらしい。腰の位置が変わらないため、足が伸びれば床を抜けるし、足が縮むと空中に浮くと思われる。

これを修正する

浮き/めり込み/接地を修正する

ボーンのScaleを変更すると「その部位から先」にScaleが適用される、ルートボーンのArmatureを修正すると「ちゃんと接地した状態で、全体のScaleが変わる」。これを活用して

f:id:o_mega:20190522030710p:plain

と、Armatureには「接地調整のScale倍率を掛け」「その直上(この場合はHips)ボーンで、逆数を掛けて、接地調整分の倍率を相殺」「改めて足ボーンに倍率を掛ける」とだいたい狙った感じになった

 

さらに全体のスケールを調整する場合は、Hipsボーンに倍率をかければ良い。

f:id:o_mega:20190522042612p:plain
でだいたい近い位置になると思うが、Hipsボーンの長さ?作り?で若干(2,3cm程度?)ズレるようなので、最終的には足ボーン(UpperLeg)のScaleを0.01単位ぐらいで調整し、接地させるのが良さそうだった

あと、アバターを選択すると、足場の線が出るっぽいのでそれをガイドに調整するとやはり良さそう

f:id:o_mega:20190522031328p:plain

 

仕上げの視点調整を忘れずに

f:id:o_mega:20190522033728p:plain

VRC_AvatarDescripterのViewPositionのY数値をいじって、視点ボールを目の辺りにあわせる。この辺は(やったことあれば)アバター制作の作業とおなじ。画像のように▼を押してPipeline Managerを畳んでおくと、(なぜか)ViewPosition調整がしやすい

あとはアップロードすればOK

 

VRMの場合

VRMでこの等身調整をする場合、公式の作業フローでは正規化前のモデルの段階で今回の修正をする

例えばfbxをインポートとしてVRM吐いてる場合

  1. fbxをインポートする
  2. fbxをヒエラルキーに置いて、等身をいじる(今回の作業)
  3. VRMをExport(正規化)
  4. ExportしたVRMを取り込んで、マテリアルやら表情blendshapeやら揺れものやライセンス、FirstPerson Offset(視点調整)等を設定する
  5. VRMをExport
  6. 完成

という感じで出来ました

 

いかがでしたか?

ちょっと違った改変で、ちょっと違った視点も手に入る頭身調整。同アバターと会ったときも単なる色違いだけでなく、なんか姉妹兄弟っぽさがでて、たのしい

低身長(110cmぐらい)でVRChatを過ごしていると、ワールドが150cm~160cmぐらいを基準に作られてて、低身長はなかなか大変なのが実体験できてまた面白い。ワールドによっては低身長向け台座が用意されていて、バリアフリーなことが体験できたり、逆にないワールドではバリアを体験できたり。なんでドアのハンドルが頭の位置にあるんだよ!みたいな体験がVRで楽しめるのはいい。150cmのアバターが背高く見えて、囲まれるとなかなか圧迫感があるとかも良い

おすすめ改変tipsでした

*1:ここではいじってないが、首(Neck)を縮めるのも良さそうだ