Skip to content

Commit

Permalink
書いてる!
Browse files Browse the repository at this point in the history
  • Loading branch information
huideyeren committed Dec 26, 2023
1 parent 0bbd711 commit bb0eff5
Show file tree
Hide file tree
Showing 7 changed files with 126 additions and 23 deletions.
37 changes: 35 additions & 2 deletions chapter/10_kisekae.re
Original file line number Diff line number Diff line change
@@ -1,3 +1,36 @@
= アバターに着せ替え機能を仕込もう
= VRoidアバターで着せかえをする方法

(書く)
VRoidは基本的に服を着替えされられない前提で組まれているので、着せかえを実装することは容易ではありません。
しかし、着せ替えもできなくはないのです。
また、他のアバターの衣装をVRoidアバターに着せたり、VRoid衣装を他のアバターに着せたりすることもできます。

なお、Android版では相当重くなるので推奨しない方法です。
PCメインの人がAndroid対応を考えるなら、水着用のFallbackアバターを作っておいてPCではPCではVery Poorなアバターを表示するという手もあります。
Android環境にも入る人については、衣装ごとにアバターは分けておくことをおすすめします。
また、衣装ごとにアバターを用意すると何かのバグで全裸でJoinしてしまったという事故も避けられます。
この事故を起こしてしまうと公式からペナルティーを受けかねないので、衣装はちゃんと着せておくことも重要です。
こういった着せ替え戦略を考えつつ、アバターの着せ替え戦略を考えておきましょう。

== ただ脱がすだけなら

VRoidアバターは重くなるの承知でメッシュを分けると服を脱がすことができます。
服のメッシュの表示と非表示を切り替えるギミックが仕込まれていれば、服を脱いで水着姿になるのは可能です。
なお、私の場合はアバターが下に着ているのはだいたい水着ですが、だいたいが趣味です。
なお、これはBlenderと仲良くなっておかなければいけません。

=== Blenderですること

服を
それと、靴下をボディスーツで着せていない場合は脱がせません。
なぜなら、肌着や普通の靴下の場合は身体のテクスチャにそのまま重なってしまうからです。
ボディスーツで靴下を着せれば脱がせられるのですが、その場合は靴に入らなくなります。
なので、脱がすギミックを仕込む場合はサンダルにして当初から靴下を履かないように作りましょう。

VRMをコンバートする際にメッシュは統合されてしまいます。
それを防ぐにはNot Combine Renderer Object Namesを設定します。
これを使うことで衣服のメッシュを統合しなくてもよくなるわけです。
つまり、メニューで衣服のオンオフを設定できます。
要は、下着や水着までは脱がせるということです。
なお、ボディスーツを下着にしている場合はこれもメッシュを分けることが可能です。
しかし……そこから先はパブリックインスタンスで使いたいならやめておきましょう。
これで、コンバートすれば好きに改変できます。
19 changes: 19 additions & 0 deletions chapter/4_Hair.re
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
= 髪のボーンを減らそう

== 髪のボーンが多ければ重くなる

VRoidアバターに限らず、VRChatのアバターの髪の揺れに関してはボーンを使って揺らしています。
ボーンが多くなると表示が重くなり、ランクが下がってしまうのでボーンを減らすことは至上命題です。
その解決策としては髪のボーンを減らすことなのですが、ボーンを減らしてしまうと揺れが不自然になってしまいます。
なので、ボーンが少なくても揺れに影響しないショートヘアを採用するのは一つの最適解といえます。
Fallbackアバターを目指す場合、ショートヘアにした上でこれから紹介する方法を使ってボーンを減らしておくとよいでしょう。

しかし、ロングヘアにこだわりのある方もいると思います。
ロングヘアは、必然的にボーンが多くなります。
髪の揺れを諦めれば、ロングヘアにするという選択肢も採れます。
しかし、揺れる髪もなかなか美しいもので……。
なので、すべきことは髪のボーンを減らすことなのです。

髪のボーンを減らすことはVRM出力時にもできるのですが、その場合は髪が不自然になってしまうこともよくあります。
なら、髪のボーンを不自然にならない程度に削ればよいのです。

35 changes: 25 additions & 10 deletions chapter/5_blender.re
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@

//footnote[short-hair][【使用衣裳】白ワンピ:星井まゆき星空通販様、スク水:ここなふぁくとりー様、桜の髪飾り:リザのアトリエ様]

さて、ここからはBlenderを使うのですが、必ず2系のBlenderを使用してください
さて、ここからはBlenderを使うのですが、必ずバージョン2系のBlenderを使用してください
かつ、以下のプラグインが必要になります。

* VRM Add-on for Blender@<fn>{vrm-blender}
Expand All @@ -26,9 +26,11 @@
//footnote[cats-blender][https://github.com/absolute-quantum/cats-blender-plugin]
//footnote[material-combiner-addon][https://github.com/Grim-es/material-combiner-addon]


これらを使用するとVRMをBlenderで扱うことができるようになります。

なぜバージョン2系のBlenderを使うかというと、プラグインがバージョン3系以降のBlenderに対応していないためです。
無理矢理対応させるにはプログラミングの知識が必要なので、プログラミングに自信のない方はやめておいた方が無難です。

なお、BlenderはPythonというプログラミング言語の実行環境が必要です。
OSに別のPythonがインストールされている場合、material-combiner-addonで必要なPillowという画像処理ライブラリのインストールに失敗する場合があります。
その場合は、Windowsの場合は以下のコマンドを実行する必要があります。
Expand Down Expand Up @@ -63,9 +65,26 @@ __import__('pip._internal')._internal.main(['install', 'Pillow'])
//image[in-blender][blenderへインポートしたところ][scale=0.6]{
//}

=== メッシュの分割
== アバターのボーンの最適化

まずすべきは、アバターのボーンの最適化です。
VRoidアバターにはUpperChestというボーンがありますが、これがかつてVRChatでは悪さをしていたのです。
また、ここで最適化を施すことによって全身の状態をアバターに反映させるフルトラッキングを使った際におかしな動きをしないで済みます。

そのためには、CATSプラグインで設定をする必要があります。
Fix Modelsというボタンの隣にある、レンチのマークの付いた設定ボタンを押してください。
押すと設定が出てくるのでKeep End Bonesにチェックマークを付けてください。
これを設定すると末端のボーンが残るので、指が動かなくなるなどボーンが消えてしまったことによるバグに遭遇しなくてよくなります。

//image[keep-end-bones][Keep End Bonesの設定をオンにする][scale=0.6]{
//}

この後Fix Modelsボタンを押すとボーンが最適化され、ボーンの名前もVRoid独自の形式からVRChatでよくある名前に変わります。
これで、ボーンの最適化ができました。

== メッシュの分割

まずすべきは、CATSプラグインのModel Optionsを開き、マテリアル単位にメッシュを分割することです。
次に、CATSプラグインのModel Optionsを開き、マテリアル単位にメッシュを分割することです。
なお、1回では服のポリゴンがうまく分かれてくれないために悲惨なことになります。
顔のメッシュを分割するとシェイプキーが壊れるという話もありますが、ここは全部のメッシュを分割します。
だいたい15個前後のマテリアルになると思います。
Expand All @@ -88,12 +107,8 @@ __import__('pip._internal')._internal.main(['install', 'Pillow'])

これが終わったらまずはメッシュを結合しましょう。
先ほどと同じCATSプラグインのModel Optionsを開くと結合できます。
これは一つにまとめてしまって大丈夫ですが、重くなるの承知でメッシュを分けると服を脱がすことができます。
ただし、重くなるのでおすすめはできません。
それと、靴下をボディスーツで着せていない場合は脱がせません。
なぜなら、肌着や普通の靴下の場合は身体のテクスチャにそのまま重なってしまうからです。
ボディスーツで靴下を着せれば脱がせられるのですが、その場合は靴に入らなくなります。
なので、脱がすギミックを仕込む場合はサンダルにして当初から靴下を履かないように作りましょう。
これは一つにまとめてしまって大丈夫ですが、服を脱がすギミックを仕込みたい場合はメッシュは分けたままにしておくことも一つの解といえるでしょう。
なお、着せかえについては後述いたします。

== テクスチャの結合

Expand Down
19 changes: 17 additions & 2 deletions chapter/6_vcc.re
Original file line number Diff line number Diff line change
@@ -1,8 +1,23 @@
= VCCで設定しよう

== VCCはコマンドラインを使うとよい
この次はVCCの設定です。Windowsの場合、GUI版が使えます。
また、Macの場合はコマンドラインで操作することになりますが、Windowsでもコマンドラインで操作することは可能です。
私はMacで改変することが多いのでコマンドラインを使うことが多いですが、GUI版の方が直感的なのでお好みで、というところです。

== WindowsでVCCを使うには

まずすべきは、リポジトリの追加です。
VCCはリポジトリからパッケージをインストールすることができますが、ここでリポジトリを設定しておくとUnityでポチポチする手間が省けます。
それで、新規アバタープロジェクトを作成したら必要なパッケージを追加してUnityを開くだけと簡単です。

なお、テンプレートを作ることも可能なので、このパッケージを入れた状態でプロジェクトを作っておきたいという場合は作っておいた方がよいでしょう。

ただし、パッケージのバージョンアップはそれぞれ手動で行わなければいけません。
一応、このパッケージのバージョンを上げるには他のパッケージのバージョンも上げなければいけないというケースではいっしょにバージョンを上げてくれます。
後述するコマンドラインからの方法では問答無用に最新版になってしまうので、バグを踏むのが怖いという人は手動でポチポチあげていってもよいと思います。

== コマンドラインでVCCを使うには

この次はVCCの設定です。
実はVCCにはコマンドラインインターフェースがあります。
コマンドラインインターフェースとなるととっつきにくい印象がありますが、一度スクリプトを設定してくれるとインストールするアセットを一発で設定できるので使いやすいです。
まずは、.NET 6系をインストールします。これはVCCのコマンドラインインターフェースを使うのに必要です。
Expand Down
9 changes: 1 addition & 8 deletions chapter/7_vrc_essential.re
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,7 @@ VRMアバターのBlendShapeを開き、それぞれの表情にBlendShapeを設
これが終わったらアバターをVRChatで使える形式にコンバートしましょう。
私は基本的に揺れものは全削除し、その後で設定するようにしています。
それとメッシュを分けていた人はここで要注意です。
VRMをコンバートする際にメッシュは統合されてしまいます。
それを防ぐにはNot Combine Renderer Object Namesを設定します。
これを使うことで衣服のメッシュを統合しなくてもよくなるわけです。
つまり、メニューで衣服のオンオフを設定できます。
要は、下着や水着までは脱がせるということです。
なお、ボディスーツを下着にしている場合はこれもメッシュを分けることが可能です。
しかし……そこから先はパブリックインスタンスで使いたいならやめておきましょう。
これで、コンバートすれば好きに改変できます。あとはPhysBoneを設定するなり、ギミックを仕込むなりお好きにどうぞ。
あとはPhysBoneを設定するなり、ギミックを仕込むなりお好きにどうぞ。

//image[vrm-convert][VRMをVRChatで使える形式にコンバートする][scale=0.6]{
//}
Expand Down
30 changes: 29 additions & 1 deletion chapter/8_modern_plugin.re
Original file line number Diff line number Diff line change
@@ -1,3 +1,31 @@
= モダンな改変ツールを使いこなそう

(書く)
ここからは最近VRChatでのアバター改変時によく使うであろうツールを紹介します。
これは絶対使うべきというものから微妙なものまでいろいろありますが、参考にしていただければ幸いです。
なお、推奨レベルは★から★★★までがありますが、もちろん★★★が最も推奨するレベルです。

== Modular Avatar

【推奨レベル:★★★】

@<href>{https://modular-avatar.nadena.dev/ja/docs/, Modular Avatar公式ページ}

どう考えても確実に使うツールです。VCCからインストール可能です。
対応したPrefabをアバターに投げ込むだけで組み込みが完了するので、ギミックの組み込みには絶対使います。

また、着せる服をVRoidで作っておいて同じ素体のVRoidアバターに着せることもできます。
ボーンは増えますが、これは後述するAvatar Optimizerを使うことによって軽減できるでしょう。

使い方は、衣装の場合はアバターのルート直下にPrefabを入れて右クリックからSetup Outfitするだけです。
これでエミュレーターを起動して動かしてみると、アバターに服が着せられていることに気がつくと思います。

VRoidでアバターを作る場合にもModular Avatarは役に立ってくれるので、必ず入れるツールになっています。

== lilToon

【推奨レベル:★★★】 ※ PC版のみ

アバターのシェーダーといったらこれ、というツールです。
ちょうどよい感じのToon調に仕上がる上、影の設定もできます。
また後述するlilAvatarUtilsというツールで見た目も確認できます。私の場合だいたい忘れますが。
だいたいのアバターがlilToonを使っているので、使いかたの説明は探せば出てくると思います。
Binary file added images/keep-end-bones.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit bb0eff5

Please sign in to comment.