VRChat用Unityエディタ拡張「MyAvatarBuildSetting」のドキュメントです。
![]()
VRChatで複数の異なる設定のアバターを連続自動アップロード出来るエディタ拡張です。
手作業で設定を変えて1つずつアップロードする手間がなくなります。
あるモデルに対して
等により複数のアバターとしてアップロードするユースケースを主に想定しています。
MyAvatarBuildSettingは、これらを設定で管理して適用するツールと、それら設定を適用しつつ順番に複数のアバターを一括アップロードするツールを提供します。
Booth から入手してください。
メニューの「Window」→「アバタービルド設定」からはじめます。
![]()
MyAvatarBuildSettingにはまず全体設定が必要です。
アバタービルド設定ウインドウを開くと全体設定が無いことを警告されるので、「全体設定」ボタンを押してアバタービルド全体設定ウインドウを開き、全体設定ファイルを作成します。
![]()
(全体設定を完了するとこのウインドウで設定の適用が出来るようになります。)
アバタービルド全体設定ウインドウで、参照アバターとしてアップロードしたいアバターを選択してください。
基本設定はそれぞれのボタンを押すと自動設定されます。
![]()
次に個別設定を作ります。
アセットのメニューから「Create」→「アバタービルド設定」を選ぶと設定が作成されます。
![]()
全体設定を選んでから、blueprint id(アップロード済みのアバターであれば「VRChat SDK」→「Manage Uploaded Contents」の「Copy ID」から取得して指定)、アバター名、説明、Publicの可否等を設定できます。
その他オブジェクトの表示制御やマテリアルの制御なども設定できますが、これは後の項目で説明します。
アバタービルド設定ウインドウから「一括アップロード」を開くと自動連続アップロードができるウインドウが出ます。
![]()
機能を使用するには最初に指示に従ってパッチを適用してください。
アバターと設定を選んで「アップロード」を押すとアップロード出来ます。
![]()
ここで複数の設定を選ぶと全てが連続自動アップロードされます。
等の機能を利用する場合、設定が必要です。
![]()
アバターの大きさが1倍の状態でのView Position(視点 VRC_Avatar Descriptorコンポーネントで指定する値と同一)です。
アバターの大きさを変更するオプションがあるため、これをベースとして使います。
ボタンから自動検出できます。
変更したい外部マテリアルがあるフォルダのパスを指定します。(Unityプロジェクトルートフォルダからの相対パス)
例: Assets/MyModel/Materials等
ボタンから自動検出できます。
「アバターパス」は設定を必ず特定のアバターに適用したい場合にアバターGameObjectのパスを設定出来る機能です。
アップロード時にも考慮されるので、この指定を利用するとシーン中にある複数のアバターを切り替えながら一括アップロードすることもできます。
この全体設定を使う場合にデフォルトでアバターパスを使う場合指定します。
複数のオブジェクト・シェイプキーの組をチェックボックスで簡単にオンオフ制御できるようになります。
シェイプキーを指定するには後述の「シェイプキー制御」を有効にしてください。
![]()
基本的なユースケースではオンオフで十分だと思いますが、例えば複数の宣伝用の看板を出し分けたい等の場合に便利かと思います。
オブジェクトを選択せずにボタンを押して、何も指定しない「なし」の設定を作ると何かと使いやすいと思います。
![]()
特定の設定のみで例外的に非表示にするオブジェクトがある場合、毎回オンオフでチェックをつけるのではなく個別に指定することが出来ます。(例えば水着の時のみ服オブジェクトをオフにしたいなど)
アバター直下のみまたは全階層のオブジェクトの表示非表示を一括制御することによってこれを実現していますので、常に非表示にするものはここで指定してください。(表情制御用の予備顔メッシュなど)
![]()
アバター直下のオブジェクトのシェイプキーを名前で管理して値を変更できます。
デフォルトで0ではないシェイプキーがあれば指定してください。
![]()
ワールドによってシェーダーを使い分けたり、試験的に複数のシェーダーを試したりする場合に便利です。
シーンのオブジェクトを選択してボタンを押すとマテリアルスロットが追加されます。
いつもシェーダーを変更しない場合は設定しなくてかまいません。
この機能を利用するには マテリアル外部化 が必要です。
![]()
3種類のオブジェクトの組にそれぞれ異なるシェーダーが設定可能です。 もっと増やしたい場合はソースの4種類目のコメントをはずすと可能です。(上級者向け)
「マテリアルセット」とは部分的にマテリアルを変更できる機能です。
例
例えば体のテクスチャを変更することで簡易的に水着を着せるというユースケースでは、以下のように体のテクスチャを変更したマテリアルを水着フォルダに作り、「マテリアルセット」に「水着」を指定すると、体のマテリアルのみ「水着」フォルダのものに変更されます。
MyModel/Materials/
|-体.mat
|-服.mat
|-顔.mat
|-水着/
|-体.mat
ここで指定したフォルダ名が個別設定で選択可能になります。
この機能を利用するにはマテリアルフォルダと マテリアル外部化 が必要です。
![]()
(※この機能は実験的な機能です。将来変更・削除される可能性があります。)
指定されたオブジェクトパス・順番のDynamicBoneの有効・無効を切り替えられます。
VRChatのパフォーマンス情報では無効にしたDynamicBoneも各種カウントに含まれるので、この機能で無効にしてもパフォーマンスは軽くなりません。
![]()
![]()
この設定にはマテリアルフォルダが必要です。
ファイルパスベースでシェーダーを切り替えするモードです。
アニメーションでマテリアルを切り替える等、シーン中に存在しないマテリアルも切り替える必要がある場合ONにします。
この設定を有効にするとシェーダー適用オブジェクトは無視され、常にマテリアルフォルダ内の全てのマテリアルがシェーダー変更されるようになります。
個別の設定です。アセットの「Create」→「アバタービルド設定」で生成できます。
![]()
全体設定を指定します。
設定を必ず特定のアバターに適用したい場合にアバターGameObjectのパスを設定します。
アップロード時にも考慮されるので、この指定を利用するとシーン中にある複数のアバターを切り替えながら一括アップロードすることもできます。
blueprint idを指定します。
新規アバターがアップロードされても自動で更新はされないので、その設定のblueprint idを設定側に適用するようにして下さい。
VRChat SDKの「Manage Uploaded Contents」ウインドウから該当するアバターの「Copy Id」を押して、その値を設定のblueprint idの項目に貼り付けて下さい。
アバタービルド設定ウインドウのボタンで現在のアバターのblueprint idをコピーして設定することも可能です。
省略した場合、設定アセットの名前が使われます。
アバターの説明です。
アバターをpublicにする場合はON。
シェーダーを一括変更できます。
マテリアルセットの指定です。
テクスチャ切り替えで水着にしたい等の場合に便利です。
チェックボックスのオンオフで表示を制御できます。
切り替えパーツのうち一つが表示できます。
DynamicBoneの有効無効を切り替えます。
カスタム非表示制御が有効な場合、例外的に非表示にするオブジェクト名を列挙して設定できます。
テクスチャ切り替えで水着にしたい場合に服オブジェクトを非表示にする等に使えます。
アバターを拡大縮小できます。
ViewPointもあわせて位置が設定されます。
シェイプキー制御が有効な場合、変更するシェイプキー名と値を列挙して設定できます。
アバターGameObjectの直下にある各子GameObjectの同名シェイプキー値が変更されます。
アバターアップロード時の指定項目です。適切なものを指定してください。
シェーダーの変更及びマテリアルフォルダを必要とする機能を使う場合マテリアルの外部化が必要になります。
外部ファイルになっているマテリアルを必要とするので、fbxインポートで予め外部マテリアル形式にしておいてください。
![]()
MyAvatarBuildSettingは設定に従ってアバターに関連するシーン内のオブジェクトやマテリアルを動的に変更します。
基本的に冪等な操作になるような設計ですが、設定を誤ると予期せぬ変更(例えばカスタム非表示制御を全階層にしている場合に深い階層のオブジェクトの表示が切り替わるなど)がありえます。
できればgit等のバージョン管理ツールを導入してプロジェクトのファイルを管理することをおすすめします。
本ツールはVRChat SDK本体のアップロード完了部分にパッチを当てることで一括アップロードを実現しています。
下記の画面にのようになっている場合パッチ未適用ですので、機能を使用する場合は「パッチ適用」ボタンを押してパッチを当てて下さい。
注意: このパッチによって、VRChat SDKのアップロード完了時に通常の完了ダイアログボックスが出なくなります。
(このパッチはアバターを連続してアップロードする目的で、1つのアバターのアップロード完了時に次のアバターをビルドするトリガーを追加するものです。それ以外のSDKの機能は変更されません。)
![]()
新規アバターがアップロードされた場合、その設定のblueprint idを設定側に適用するようにして下さい。
これをしない場合その設定が毎回新規アバターとしてアップロードされることになります。
VRChat SDKの「Manage Uploaded Contents」ウインドウから該当するアバターの「Copy Id」を押して、その値を設定のblueprint idの項目に貼り付けて下さい。
アバタービルド設定ウインドウのボタンで現在のアバターのblueprint idをコピーして設定することも可能です。
![]()