ますきゃっとでも非対応衣装を着たい

ますきゃっと もとい 量産型のらきゃっとはいいぞ。

20240810 記事作成・公開
20240826 全体的に加筆・修正しました
20241116 しなのちゃんについて記載 自作ツールを掲載 おまけに追記


ますきゃっとぷらす対応衣装が増えている昨今、衣装製作者の皆様には日々感謝しております。いつもありがとうございます。

とはいえますきゃっと非対応の衣装もまた数多くあり、「この衣装、非対応だけどなんとかして着てみたいなあ」といつも思います。できればますきゃっと素体のままで、でもBlenderを使うのは得意じゃないのでUnityだけでどうにかしたいのです。
そんなときの私なりの知見?をメモしておこうと思いました。あくまで私が試した範囲の話ですが。一部は他のアバターにも共通する話題があるのではないでしょうか。


所感

最初に書いておきますが、対応してない衣装を無理やり着るため、『多少の貫通は許容する』『見えない素体メッシュは遠慮なく消す(軽量化にもなるので)』を心掛けるとよいと思います。そこから先はBlenderの出番です。
あくまで『非対応衣装だからといって着れないわけではないのだ』という気持ちをもってご覧ください。


使用ツールについて

私のアバター用プロジェクトで使用しているツールを列記します。詳細な使用方法は割愛させてください。検索すれば紹介記事がたくさん出てきますので。

Modular Avatar
Avatar Optimizer

あと ↓ は自作スクリプトですがオススメです。宣伝。

これ以外の個人的オススメツールは記事最後のおまけのところで紹介しています。


着やすい非対応衣装

本題です。概ねオススメ順。

桔梗ちゃん対応衣装

言わずもがな。衣装の数も多いので真っ先に選択肢に入るのではないでしょうか。

アバター直下に置いたうえで、Transformはこんな感じ。

このままでも大体着れてます。ゆったりめの衣装であれば何も気にするところはないほどに着るのがラクだと感じます。

注意点は、股関節のウェイトがあんまり適してないところです。

こんな感じ。
他にも鎖骨まわりがかなり合わせづらいので、ぴったりめの衣装を着るときは注意が必要です。

しなのちゃん対応衣装

着やすさ加減やウェイト的な貫通箇所は桔梗ちゃんと同じですが、背中側の首の付け根部分や尾てい骨のあたりは(素体側に大きく凹凸がある影響で)どうやっても貫通します。衣装にゆとりを持たせるか、メッシュの編集をする必要があります。


ライムちゃん・シフォンちゃん対応衣装

調整作業はそこそこ必要ですが、こちらも比較的合わせやすいと思います。全体的なウェイトはますきゃっとに一番近い(個人の感想)ので、水着とかぴったりめの衣装を買うときはライムちゃんシフォンちゃん対応衣装の一択だと思っています(個人の感想)。

ライムちゃん向けの場合
シフォンちゃん向けの場合

とはいえ衣装毎にTransformの値を変えてるので、この値は参考程度にして、衣装にあわせて調整してみてください。

素体と合わせづらい場所はこの辺。鼠径部周辺とヒップ上部。

私はこの周辺を後述する BodyMorphTool を使ってこの辺のメッシュをグイっと後ろに動かしてます。ここさえどうにかできれば他の部分は違和感なく着ることができます。


あのんちゃん対応衣装

制作時期が近いからなのか 今回紹介する中では一番着やすいです。ただし最近(記事作成時)は対応衣装の販売が少なくなりつつあるので候補に挙がりづらいかもしれません。

全体のTransformを上記のように、あとはHipsと足まわりを微調整すればそのまま着れると思います。


レイニィちゃん対応衣装

あのんちゃんほどではないけど比較的着やすいです。ただし着たい衣装があのんちゃんに対応していればそちらを選んだほうがいいと思います。

ところで、あのんちゃんとますきゃっとの素体はUVが同じです。レイニィちゃんはネイル部分以外が同じです。ですので素体テクスチャの流用が可能です。


萌ちゃん対応衣装

意外と着やすいということを(記事作成の)数日前知りました。背中が貫通しやすい印象ですが許容範囲です。

実装例はこの後に書いてます。


舞夜ちゃん対応衣装

この方のツイートを見て、前に着たことあったの思い出しました。

私が買った衣装の場合

Transformの値はだいたい同じですね。衣装によって多少異なると思います。胴が非常に細身なので調整が少し大変かもしれません。


MARUBODY対応衣装

代表してルキフェルちゃん。

今はVer2.0があるそうで、そちらは試せてません。Ver1.0ならだいたいこんな感じ。着るのがけっこう大変だった記憶があります。


他のアバター対応衣装についてはあまり試せていません。正確にいうと、一度挑戦してどうしようもできなかったものは、次を挑戦しづらいのです。

いわゆる有名どころなアバターばかりではありますが、これだけでもかなりの種類の衣装を着れるようになるのではないでしょうか。


衣装を着る流れ

最近買ったこちらの衣装(萌ちゃん対応版)を例に、着てみます。

まず衣装を配置します。

もうだいたい合ってる

あとは衣装側のボーンをひたすら動かします。

ますきゃっとは胸のトップが他アバターと比較して低い位置にあります。これを調整する必要がどの衣装でも発生します。

これは単純に衣装の胸ボーンを下方向に動かすだけで概ねどうにかなります。

動かした

桔梗ちゃん対応衣装だとウェイト的にメッシュが崩れる場合があるので、回転させたり体型に余裕をもたせてごまかすといいかもしれません。

上の画像でも背中が見えてますが、SpineとChestのScaleを調整して素体をうまく隠します。私は以下のように設定しました。

ライムちゃんシフォンちゃん対応衣装だとSpineを前方向にぐっと動かすことが多いです。

他にも、Neckや肩の位置調整、袖(UpperArmLowerArm相当箇所)の長さを短くする(だいたいどの衣装も0.9~0.95倍にします)などして調整します。

基本的にはTransformの値をひたすらいじるだけで、 MA Scale Adjuster コンポーネントやMA Move Independently コンポーネントを必要に応じて使用しています。

素体の胸の大きさによっても調整方法はかなり違うと予想しています。自分なりのやり方を見つけることができれば楽に作業が進むと思います。

前項で記載したアバター対応衣装の共通事項(というかますきゃっと素体の特徴)として、肋骨下部あたりが貫通しがちです。この辺りは余裕を持たせて衣装を調整するとよいと思います。私はその周辺をシュリンク(縮める)するBlendShapeを素体に追加しました。

また、こういう衣装であれば、素体の見えない部分をシュリンクしてしまうのもよいと思います。

ますきゃっと素体の最終的なBlendShapeの値

ある程度衣装側を調整して、最後にシュリンクするとそれっぽさを維持することができると思います。特に足(ソックス)はどうやっても完璧にはならないので、こういう工夫も大事だと思います。

シュリンクしたメッシュを非破壊に削除するには AAO Remove Mesh By BlendShape コンポーネントまたは AAO Remove Mesh In Box コンポーネントを使用するとよいと思います。貫通対策及び軽量化が両立できます。

ということでこんな感じになりました。

色も変えました

また、衣装ボーンのScaleを調整したとき、Unityの実行時に形が変わってしまうことがあります。そういうときはMA Scale Adjuster コンポーネントを使用するとよいです。

これに近い話ですね。
とはいえ、衣装の元アバターとますきゃっと素体のボーンのRotation値が大きく異なっていると、Scaleの値を変えていなくても衣装が勝手にズレてしまうことがあります。先に紹介しているアバター対応衣装ではこの事象はあまり起きません。

ちなみにそうなったときの私は実行時のスケールのズレを感覚で逆算して、実行時に綺麗に着れてるようになるように調整しますがオススメはしません。大変に面倒です。

なお、一度あるアバター対応衣装に調整したボーンのTransform値を、同アバター対応の別衣装へそのまま転用してもうまくいった試しがありません。「衣装毎に毎回がんばるしかない」というのが私個人の経験談です。そういうスクリプトも作ったけど役に立った覚えがありません。

20241116追記 上記手間のかかる作業をプリセット化するツールを作成、公開しました。よければ使ってみてください。桔梗ちゃん衣装、しなのちゃん衣装を着るためのプリセットを同梱しています。

動作はこんな感じです。


Tips1

衣装調整するときのコツを紹介。ModulerAvatarを使用する前提です。

衣装はこちら。ライムちゃん対応版を使用。

ボーンを動かして衣装を調整するとき、あるメッシュを調整するためにあるボーンを動かすと、動かしたくない別のメッシュまで動いてしまうことがあります。

靴を位置調整しようとしたら…
服も動いてしまった!(これは極端に動かした例)

こういうときは…

まず衣装側のPrefabを複製し、複製元は靴だけを非表示に、複製先は靴以外を非表示にします。

Sandals に注目

そして靴のみが表示されている方のボーンを動かして調整します。それだけです。

これを動かす
靴だけを動かせる!

これだとボーンの数が増えて負荷的によくないのでは?と思われるかもしれません。こちらはMA Merge Armatureコンポーネントがボーンを非破壊に結合してくれるので、ほとんどの場合で負荷要因にはなり得ません。複製先をいくつ増やしても問題ありません。

作者に感謝

「ボーン名を統合先に合わせる」ボタンを押すのを忘れずに。

ついでにAAO Trace And Optimizeコンポーネント等も使ってメッシュもいい感じに結合してもらいましょう。詳細は割愛。

こうすれば微調整がさらにやりやすくなります。必要なのは根気と気合だけです。


Tips2

また、『Blenderはどうしても使いたくないけど少しでも衣装をちゃんと合わせたい』という気持ちになるときがあるかもしれません。そんなときはBodyMorphTool または にゃんにゃんメッシュエディター を使うとよいと思います。

なんとUnity上でメッシュの編集ができます。とても嬉しい。でもウェイトの調整はできません。
私の場合、ライムちゃんシフォンちゃん対応衣装のぴったりめ衣装を着るときはBodyMorphToolを使って細部(腰回り(上記参照)と脇下あたり)の調整を行うことが多いです。ちなみにMA Scale Adjuster コンポーネントを使用しているメッシュをBodyMorphToolで編集することはできませんので注意です。


最後に

こちらのNoteを読んで、こういった知見が共有されるのは良いことだなと思ったのがこの記事を書いたきっかけです。ありがとうございます。


かわいいますきゃっとをたくさんみたいです。よろしくお願いします。







おまけ

せっかくなので、うちのますきゃっとの構成を書いておきます。

ますきゃっと素体Prefabの構成 v2.5

素体メッシュ(Mesh_Baseの子オブジェクトたち)は AAO によって結合・削除・最適化されることを前提に、いくつかのパーツに分けていたり、シュリンク用BlendShapeを追加したりいます。使用しないメッシュはEditorOnlyにしておきます。アニメーション等で使用されないメッシュはAAOが自動で結合対象から除外、削除してくれるのでEditorOnlyにする必要がなくなりました。

ちなみに、こういう階層構造をつくりたいときはFBXのPrefab Connectionを一度解除しないといけません。つまりUnpackPrefabをする必要があります。このデメリットとして、特に元FBXにボーンを追加した場合はアバターが崩壊するので一から構成しなおさないといけなくなることです。元FBXの編集時は注意が必要です。

メッシュの階層構造を持ったままUnityに出力するため、Blenderでは以下のようにEmptyオブジェクトを使っています。

Blender上での階層
FBXエクスポート時の設定

AddObjsは各オブジェクトのオンオフアニメーションがFXLayerに事前に組み込んであり、帽子や上着のオンオフはここで制御するようにしています。そうすると衣装毎にアニメーション等を作る必要がなく作業がラクになります。未使用オブジェクトやアニメーションはAAOが消してくれます。
今なら lilycalInventory や AvatarMenuCreator for Modular Avatar などのツールを使えばもっと手軽になるのかもしれませんね。

よく貫通しがちな部分をシュリンクするものを自分で追加しました。

Bodyメッシュに追加したBlendShape 名前は適当

BlendShapeが増えるのもFBXのデータ容量増加の要因ではありますが、アニメーション等で使用されないBlendShapeはAAOが自動で消してくれます。


最近お気に入りの髪型です。
髪型については、前髪の流れを統一するためにXスケールをマイナス倍することがあります。これを MA Mesh Settings コンポーネント+AAO で雑に結合しようとすると、

マイナス倍することによってメッシュの表裏が逆になってしまいます(これ自体は正しい挙動です)。これを回避するには、 AAO Merge Skinned Mesh コンポーネントを使用します。

この方法であれば、メッシュの裏表そのままにスケールをマイナス倍することができます。

こっちが実現したい描画

最近の衣装はメッシュが細かに分割していますが、だいたいMAとAAOがいい感じに結合してくれます。不要なメッシュは非表示&EditorOnlyタグを設定しましょう。わたしはAAOに全幅の信頼を置いています。

AAOによるメッシュの自動結合の対象となる条件ですが、SkinnedMeshRendererのRootBoneとAnchorOverrideが同一設定となっているもののようです。従って、これを回避するために MA Mesh Settings を使用せずにBounds等の設定を行う必要があるということです。


最後に私が使ったことのある便利ツールの紹介です。
Floor Adjuster
  地面に埋まりがちな足元の高さを調整するツール
Continuous Avatar Uploder
  複数のアバターをワンボタンで全自動アップロードしてくれるツール
TexTransTool
  テクスチャアトラス化支援ツール
Mantis LOD EditorのNDMF化ツール
  ポリ数削減できるスクリプトの非破壊化ツール
  なおMantis LOD Editor自体は有料なのでセールを狙いましょう。
Enhanced Hierarchy 2.0
  Hierarchy拡張ツール。こちらも有料です。


なにはともあれ、いろいろチャレンジしてみるのが一番だと思います。がんばりましょう。

おわり。