VRChatアバター改変:基本的な着せ替え
※この記事は私がBOOTH( https://kindergarten21.booth.pm )で販売しているアバター「U10」シリーズを基にした内容で、VRChatでの使用を想定しています。U10ちゃんの取説を兼ねていますが、一般的なアバターは同じ手順での着せ替えが可能です。
Aのアバターに、Bのアバターの服やパーツor服のみで販売している衣装を着せる場合の解説をします。今回の解説はごく基本的な内容で、サイズ調整の必要がないパーツの着せ替えの場合です(サイズ調整が必要な着せ替えはまた別の機会に。
U10素体ver.の中に含まれている「浴衣ver.」に、別売りの「WinterRoseのケープとブーツと頭の飾り」を移植して冬仕様にしてみます(ちなみに浴衣ver.の中のパーツU10Y.kimonoを表示すると半襟とじゅばんが表示されるのでより着物っぽくできます。
U10素体ver.→ https://kindergarten21.booth.pm/items/1131055
U10//WinterRose→ https://kindergarten21.booth.pm/items/1715387
1:まずは同じシーン上に着せ替えたいアバター(今回はU10素体浴衣)と、着せ替えの素材として使いたいアバター(今回はWinterRose)を配置します。
次に、これからアバター自体のパーツの削除や修正を行ってしまうので、使う両アバターを一度プレハブ化して操作前の状態を保存しておきます。ヒエラルキータブ上でそのアバターを選んで、それをプロジェクトタブの好きなフォルダの中にドラッグ&ドロップしてください。以下のスクショのようにヒエラルキー上での文字が全て青になっていれば成功です(これでプレハブ化ができてます。
浴衣姿のU10ちゃんとコート姿のWinterRoseがしっかり重なっています。このように使うパーツの位置やサイズがそれなりに合っていないと以降の作業は全てうまくいかないので注意してください。
今回は同じU10ちゃんシリーズを使用しているため着せ替え先と着せ替えパーツのサイズ調整は不要なので問題ないのですが、着せ替えの際は使う2体のシルエットも大体合っている必要があるので、異なる体格やポーズのアバター同士の場合、この段階でボーンを操作して位置合わせをしていく必要があります(AポーズとTポーズの差、身長の差、横幅の差等を合わせる必要がある)これについてはまた別の機会に解説します。
とりあえず見辛いので先に作業するパーツ取り用のアバターのみを表示して、着せ替えしたいアバターの方は非表示にしておきます。
これが今回のパーツ取りに使われるWinterRoseちゃん…。
2:着せ替えの素材に使うアバターから、着せ替えに使いたいパーツ以外を削除していきます。
今回はケープとブーツ以外はいらないので削除します。削除するものを選んで右クリックからのDeleteで削除できます。プレハブ壊れるけどいい?みたいな確認メッセージが出ますがOKします。着せ替え先のアバターの不要なパーツも最終的には削除したいのですが、ここで着せ替え先のアバターのプレハブを壊してしまうと後々ちょっと見づらいのでとりあえずは非表示にしておきます。今回の場合は下駄が不要です。
3:パーツの削除が済んだら、今度は不要なボーン(使うパーツのウェイトが乗っていないボーン)の削除を行います。
よくわからない場合この処理はやらなくても大丈夫ですが、やったほうがアバターパフォーマンスは良くなります。例えばケープ自体と両手指のボーンや頭や髪のボーンはどう考えても無関係なので削除してしまっても大丈夫、ということです。同様に、例えばブーツのみの移植であれば上半身のボーンは不要ということです。
ヒエラルキーでボーンを選んで、右クリックでDeleteを選ぶとそのボーンより先のボーンが全て削除されます。なおそのボーンが不要かどうかは、削除してみるとわかります。削除した場合にパーツの形が崩れてしまうボーンは必要なボーン、形が崩れないボーンは削除しても大丈夫なボーンです。基本的に、腰のボーン(大体はHipsという名前)から各パーツまでの経路と、そのパーツ自体に割り当てられているボーンのみを残す感じになります。大体のアバターはボーンにきちんと名前が付いているので、ボーンの名前を参考に要不要を推測して作業してみてください。
例えは上のスクリーンショットが示すように、コートのスカートやドレスのリボンに割り当てられているボーンは今回使いたいケープには全く不要なので削除してしまっても大丈夫です。
一方、必要なボーンを削除してしまった時は大体の場合一発でわかります。例えば試しにケープのポンポン部分に割り当てられているボーンを削除してしまうと…
クチャっとポンポンが潰れて足元に落ちてしまいました。こんな感じで必要なボーンを削除すると大体の場合パーツの形が崩れるのでそれを目安にしてください。
今回はケープとブーツを同時移植するので、ケープ用の腰〜胸付近とケープ専用ボーン&ブーツ用の腰〜爪先までのボーンを残します。WinterRoseのケープのボーンは少し複雑なことになっているので注意が必要です。ケープ用のボーンが3箇所とポンポンのボーンが別であるのに加えて、両腕にもウェイトが乗っているので両腕のボーンも必要になります。基本的には「シーン上で見た時にそのパーツの周辺にあるボーンは必要なボーン」ということです。
この際に不要なコライダーも削除しておくとなお良いです。今回の場合は足のボーンについているスカート用のコライダーや、ケープ用の上腕の子ライダーも移植先がちょうちん袖ではないので削除したほうが自然になります。わかる範囲で削除しておいたほうが良いでしょう(ちなみに記事に使用しているスクショでは足に入れているスカート用のコライダーの削除を忘れています…。
とりあえず今回の場合は以下のような感じになっていればOKです。まぁわからない場合はこの3の工程はせずに次の工程に進めば大丈夫なので問題ありません!(デメリットとしては次の工程がめっちゃ見づらくなるのと、アバターのパフォーマンスランクが悪化するだけ。
4:いよいよ移植を開始します。非表示にしていた着せ替えたいアバターを表示します。
着せ替えたいアバターのボーンの中に、着せ替えたいパーツのボーンを入れ子していきます。着せ替えたいアバターのボーンの中に着せ替えたいパーツのボーンを入れてあげることで、例えばアバターのHipsが曲がればパーツのHipsもそれに沿って曲がるようになるということです。この工程がきちんとできていないと、身体を曲げたらパーツがついてこない…という状態になってしまいます。頭のボーンに髪飾りを入れるというようなごく基本の改変とやっていることの原理は実は全く同じです。
ボーンの名前は大体どのアバターも同じなので、名前で判断して、まずは全体を示すアーマチュア(Armature)にアーマチュアを、腰(Hips)に腰を、背骨(Spine)に背骨を、胸(Chest)に胸を、首(Neck)に首を…と入れ子していきます。ヒエラルキーのリストがごちゃごちゃして見にくくなってきますが頑張ります。下半身の方も同様にしていきます。ちなみに最初の段階で着せ替え先のプレハブをあえて壊さずにしておいたのはこの時のためです。Unityではプレハブが壊れるとヒエラルキー上でのテキスト表示が青から黒に変わるので、プレハブが壊れていない着せ替えたい側のアバターと区別がつきやすくなるのです。
着せ替えたいアバター(浴衣)のArmatureに着せたいパーツ(ケープ)のArmatureを入れて、
着せ替えたいアバターのHipsに着せたいパーツのHipsを入れて…
という感じで続けていきます。この工程を全てのボーンに行う必要があります! 結構大変ですが地道に頑張りましょう(なおスクショ時に前述の通りケープ側のスカート用のコライダーの削除を忘れていたために画像に写っていますが気にしないように)
なお一般的なhumanoid形式のアバターは以下のようなボーンの流れと名称になっていますので、入れるべきボーンを探す時の参考にしてください。大体の場合似たような名前が付けられているはずです。
全体(armature)
└腰(Hips)
├腹(Spine)
│ └胸(Chest)
│ ├首(Neck)
│ │ └頭(Head)
│ │ └両目(LeftEye/RightEye)
│ └肩(Shoulder)
│ └上腕(UpperArm)→下腕(LowArm)→手(Hand)
└膝上(UpperLeg)→膝下(LowLeg)→足(Foot)→つまさき(Toes)
一通り作業が済んだら動作を確認しましょう。着せ替えたアバター側のボーン(この通りにやっていれば青いテキストのもの)を選んで、左上の方の操作方法を選ぶボタンの左から3番目の回転操作ができるモードを選べばボーンを動かすことができます。動かして移植したパーツが追従してくればOKということです。なおUnityはポーズをリセットする方法がないっぽいので、ボーンを動かしたら都度「Ctrl+Z」で取り消しをするか、BOOTHで有志の方が配布されているポーズリセットのツール( https://gatosyocora.booth.pm/items/1016739 )などを使ってください。
…しかしこの確認作業大変にめんどうくさい。もしやり方がわかるのならダンスアニメーションを使ってアバターに勝手に踊ってもらってその様子から確認するのが簡単です。今回は、ユニティちゃんの公式サイト( https://unity-chan.com )で配布されている「ユニティちゃんライブステージ! -Candy Rock Star-」というデータの中に入っていたダンスアニメーションを使って確認してみます。
アニメーションのファイルを選んで、ヒエラルキー上のアバターにドラッグ&ドロップ、その後ウィンドウ上部の再生ボタン▶️を押してみてください。
はい!ケープが腕に追従してない!!
着せ替え素材側のShoulder以降を入れ子忘れていたのが原因でした。修正作業をしてもう一度アニメーションを再生してみます。
ヨシ!
これで多分完成です!!
5:最後に、パーツ自体も着せ替えたいアバターの中に入れて、空っぽになった着せ替えの素材となったアバターの方は削除しておきます(序盤で削除を忘れていた足のボーンの中のスカート用コライダーもここで削除しておきました。
最終的なヒエラルキー上での構造は以下のスクショを確認してください。
全部作業すると、こんな感じです!
出来上がったら、着せ替え終わったアバターをプロジェクトタブの好きなフォルダにドラッグ&ドロップして一番最初に行った「プレハブ化」をやっておくと安心です。ゲームのセーブみたいなものです。ヒエラルキー上での文字表示が全部青になればプレハブ化できています。
6:あとはVRChatにアップロードして確認してね。
おつかれさまでした。Unity上での見た目は綺麗なのにVRchatに行ったらパーツが追従してこないという場合、ほとんどの原因は「3で必要なボーンを削除してしまった」「4でボーンを入れ子にした時にミスしてる(これが一番ありそう」「5のパーツをアバターの中に入れるのを忘れている」だと思います。また、Unity上での着せ替えというもの自体がそもそも結構強引なやり方なので、多少のはみ出し等の汚さは仕様です諦めよう。気になる場合ははみ出しがちな部分のテクスチャを消して透明にしてはみ出してても見えないようにするなんていう対処方法もあります。
ちなみにBOOTHには有志の方が作ってくださった複数の着せ替え支援ツールが存在しています。今回は、着せ替えの仕組み自体を解説したかった&支援ツールだと上手くいかないパターンがあるため、全手動でのやり方を解説しましたが、そういった支援ツールを利用してみるのも良いと思います! おわり。
この記事が気に入ったらサポートをしてみませんか?