見ての通り、 Unity Editor 上でほとんどの改変作業を行う人向けです。
Modular Avatar のコンポーネントの使い方について解説する記事ですが、元の想定からやや外れた使途になることにご注意ください。
こんにちは。アバターの体型、盛ってますか?
よくあるお尻や太ももの盛り方といえば、HipsだったりUpperLegだったりのボーンを見て、X軸(横幅方向)とZ軸(奥行方向)のscaleを増やすのがよくあるやり方だと思うのですが、このように親ボーンのTransform ScaleをX/Y/Zで不均等な倍率に設定した場合、子ボーンを回転させると歪んでしまうことがあります。
解決策として Modular Avatar のコンポーネントの一つ、 MA Scale Adjuster を活用することで、この現象を回避しながらサイズを調節することができるようになります。
一方で、ドキュメントには
このコンポーネントは、非対応衣装を導入するときに利用することを想定しています。
と記載がある通り、基本的には衣装に使うものとして扱われているため、素体に使うときはどうしたらいいのか迷う方も多いでしょう。このページでは、そうした用途での検証結果と手順を案内します。
Hipsを盛るやつのどこが基本だよ。
太ももを盛るのもいいんですが、腰周りのラインを美しく盛るにはやっぱり Hips から盛ったほうがいいんですよね。
何も考えずに Transform の Scale 値を操作してしまうと、Hips
配下のボーン全てに影響してしまうため、全身が大きくなってしまいます。そのため、Hips は下手に触らないほうが良いというのが定説でした。しかし、これからは安心して Hips だけを盛ることが出来ます。早速 MA Scale Adjuster を使ってみましょう。
これは簡単です。Armature 配下を太くしたい箇所まで辿って、Add Component
> Modular Avatar
> MA Scale Adjuster
を追加します。
あとは Scale調整値
に好きな値を入力するだけです。
子ボーンのscaleには影響しなくなるので、太くしたい箇所だけこれを繰り返して終わりです。
太いだけじゃなくタッパもでけえ女、作りたいですよね。太くはなくてもいいけど、頭身高めのお姉さん改変、したいですよね。気持ちはわかります。
それでは、脚を長くするために先ほどと同じ要領で MA Scale Adjuster で X:1 / Y:1.1 / Z:1 にするとどうなるでしょうか?
足の位置がズレましたね。「子オブジェクトの位置を調整」の有無や、自分で Position を調整しても何故か無視されてこの形に戻ってくるので、別解を考えます。
ここまでで MA Scale Adjuster を使うのは XYZ が不均等な弄り方をするためですよね。
つまり、XYZ を均等にするのであれば、従来通りボーン自身の Scale を弄っても良いわけなので、逆転の発想で
します。細長くしたいなら Scale Adjuster の Scale調整値を 1 より小さく、もっと太くしたければ Scale の増加分を加味した上で盛りましょう。数字はお好みで。
UpperLeg や LowerLeg など、伸ばすべき箇所については宗派が様々あると思いますが、子オブジェクトが思うように動かない都合で膝小僧が伸びたりするので、適宜プレビューしながら作業するといいと思います。
このとき、ボーン自身の Transform Scale は(当然)子ボーンにも影響するので、足(Foot)などもその分だけ大きくなっています。「脚の太さ長さは変えたいけど、靴のサイズはデフォルト相当に戻したい…」と思った場合は、配下でいい感じに調整する必要があることに留意してください。
例えば、 UpperLeg を 1.1 倍、 LowerLegはそのまま、Foot を元のサイズに戻したい、というときは Foot の Transform Scale に 1/1.1
と入力することで相殺できます。
Unity では Inspector の数値フィールドにさまざまな数式を入力できます。
ここまでで紹介した方法で脚を伸ばすと、Hipsの位置が変わらず脚だけを下方向に伸ばしたことになるので、そのままだと床にめり込んでしまいます。
Modular Avatar/NDMF を導入済みの環境なら、 FloorAdjuster を使って新しい接地面を設定するのがおすすめです。導入したら、素体側の Armature
に Add Component から Floor Adjuster
を追加してください。
白い床面と矢印が出てくると思うので、足裏に合わせて調整します。
これは脚の長さを変えるときだけでなく、ヒールのついた靴を履かせたときにも便利なのでどんどん使ってください。
MA Scale Adjuster は通常、衣装側に入れるものであって素体に入れることを前提とはしていないので、そのままでは 衣装側の各ボーンにも同様の作業を行う必要があります。
そこで、以下のツールを導入することで、衣装を着せる段階で 素体の MA Scale Adjuster コンポーネントの値を衣装側の同名のボーンにコピーすることができます。
Rerigferl/modular-avatar-copy-scale-adjuster - アバター本体にあるMA Scale Adjusterを衣装側のボーンにコピーするツール
導入後はいつもの Setup Outfit
の代わりに Setup Outfit with Copy Scale Adjuster
を押すだけです。
Transform の Scale と併用している場合は、 MA Merge Armature
から素体の Scale に合わせる作業を忘れずに。
畳まれている 位置を元アバターに合わせてリセット
をクリックして展開し、回転とスケールにチェックを入れて実行です。上2つは主に非対応衣装の位置合わせ用なので入れなくていいです。
Hips と UpperLeg_L/R を調整して脚を少しだけ太く、長くしてみました。Foot は UpperLeg の調整分を多少相殺するようにしています。
ちなみに上半身は同じです。脚だけでも、デフォルト(左)と比べて印象が変わることがご理解いただけたと思います。
デフォルト(全部等倍)を白、調整後を赤のマテリアルにして比べるとこう。全体的に一回り太く、足1個分くらい長くなりましたね。
もうちょいわかりやすく盛ったほうがよかったか…
そしてここに「ほら!変形を抑えることができました!」なやつを貼りたかったんだけど、そもそも歪んだ実例を用意できていない
わたしはあまり詳しくないので専門家に教えを乞うたところ、腰のくびれを徹底的になくして寸胴気味なくらいを目指せと言われました。なるほど。愛莉で試してみましょう。
例えば、MA Scale Adjuter で Spine
の X 軸を思い切って増やす(今回は 1.2 にしました)ことで、(アバターの体型にもよりますが)腰のくびれを無くすことができます。UpperLegとShoulderの Transform Scale を0.9倍にして一回り短く、お尻や脚の太さはお好みで MA Scale Adjuster を使いましょう。いいですね。
顔の大きさを変えたついでに首の長さを調整したはずなのに、Playモードやアップロード後に意図しない長さになっている!ということ、たまにありますよね。
頭の位置がFBX側のHumanoid Rigで定義されているために起こる問題で、以下の記事を参考にしながらNeckとHeadのPositionやScaleに同じ値を適用してください。
https://qiita.com/GesonAnko/items/a4e57b7e5ce5a3de258a#2-リグを編集する
別に XYZ が不均等でなく、特に子ボーンの影響を気にしなくてよい部分に関しては MA Scale Adjuster を使わず Transform の Scale 値を弄ってもいいと思います。Headとかは均等にすることが多いですよね。不均等にしたいなら MA Scale Adjuster 使ってください。
個人的には胸にも無理して MA Scale Adjuster を使わなくてもいいような気がしています。この辺のサイズ感は子ボーンにも継承されていいし、まあ胸より先には変形で困るボーンもないので…。どのみちましゅまろPBとか使うからね。