MyAvatarBuildSetting-doc

MyAvatarBuildSetting ドキュメント for v2.x.x

VRChat用Unityエディタ拡張「MyAvatarBuildSetting」のドキュメントです。

thumbnail

MyAvatarBuildSettingとは

VRChatで複数の異なる設定のアバターを連続自動アップロード出来るエディタ拡張です。

手作業で設定を変えて1つずつアップロードする手間がなくなります。

特徴

想定するユースケース

あるモデルに対して

等により複数のアバターとしてアップロードするユースケースを主に想定しています。

MyAvatarBuildSettingは、これらを設定で管理して適用するツールと、それら設定を適用しつつ順番に複数のアバターを一括アップロードするツールを提供します。

入手方法

Booth から入手してください。

基本的な使用方法

  1. メニューの「Window」→「アバタービルド設定」からはじめます。

    メニュー

  2. MyAvatarBuildSettingにはまず全体設定が必要です。

    アバタービルド設定ウインドウを開くと全体設定が無いことを警告されるので、「全体設定」ボタンを押してアバタービルド全体設定ウインドウを開き、全体設定ファイルを作成します。

    アバタービルド設定ウインドウ

    (全体設定を完了するとこのウインドウで設定の適用が出来るようになります。)

  3. アバタービルド全体設定ウインドウで、参照アバターとしてアップロードしたいアバターを選択してください。

    基本設定はそれぞれのボタンを押すと自動設定されます。

    アバタービルド全体設定1

  4. 次に個別設定を作ります。

    アセットのメニューから「Create」→「アバタービルド設定」を選ぶと設定が作成されます。

    アバタービルド設定1

    全体設定を選んでから、blueprint id(アップロード済みのアバターであれば「VRChat SDK」→「Manage Uploaded Contents」の「Copy ID」から取得して指定)、アバター名、説明、Publicの可否等を設定できます。

    その他オブジェクトの表示制御やマテリアルの制御なども設定できますが、これは後の項目で説明します。

  5. アバタービルド設定ウインドウから「一括アップロード」を開くと自動連続アップロードができるウインドウが出ます。

    アップロード0

    機能を使用するには最初に指示に従ってパッチを適用してください。

    アバターと設定を選んで「アップロード」を押すとアップロード出来ます。

    アップロード1

    ここで複数の設定を選ぶと全てが連続自動アップロードされます

全体設定

等の機能を利用する場合、設定が必要です。

1. 基本設定を行います。

アバタービルド全体設定1

ViewPosition

アバターの大きさが1倍の状態でのView Position(視点 VRC_Avatar Descriptorコンポーネントで指定する値と同一)です。

アバターの大きさを変更するオプションがあるため、これをベースとして使います。

ボタンから自動検出できます。

マテリアルフォルダ

変更したい外部マテリアルがあるフォルダのパスを指定します。(Unityプロジェクトルートフォルダからの相対パス)

例: Assets/MyModel/Materials

ボタンから自動検出できます。

デフォルトアバターパス

「アバターパス」は設定を必ず特定のアバターに適用したい場合にアバターGameObjectのパスを設定出来る機能です。

アップロード時にも考慮されるので、この指定を利用するとシーン中にある複数のアバターを切り替えながら一括アップロードすることもできます。

この全体設定を使う場合にデフォルトでアバターパスを使う場合指定します。

2. パーツの表示オンオフ設定を定義します。

複数のオブジェクト・シェイプキーの組をチェックボックスで簡単にオンオフ制御できるようになります。

シェイプキーを指定するには後述の「シェイプキー制御」を有効にしてください。

アバタービルド全体設定2

3. パーツの表示切り替え設定を定義します。

基本的なユースケースではオンオフで十分だと思いますが、例えば複数の宣伝用の看板を出し分けたい等の場合に便利かと思います。

オブジェクトを選択せずにボタンを押して、何も指定しない「なし」の設定を作ると何かと使いやすいと思います。

アバタービルド全体設定3

4. カスタム非表示ブジェクトの制御を指定します。

特定の設定のみで例外的に非表示にするオブジェクトがある場合、毎回オンオフでチェックをつけるのではなく個別に指定することが出来ます。(例えば水着の時のみ服オブジェクトをオフにしたいなど)

アバター直下のみまたは全階層のオブジェクトの表示非表示を一括制御することによってこれを実現していますので、常に非表示にするものはここで指定してください。(表情制御用の予備顔メッシュなど)

アバタービルド全体設定4

5. シェイプキーの制御を設定します。

アバター直下のオブジェクトのシェイプキーを名前で管理して値を変更できます。

デフォルトで0ではないシェイプキーがあれば指定してください。

アバタービルド全体設定5

6. シェーダーを一括変更するマテリアルスロットを指定します。

ワールドによってシェーダーを使い分けたり、試験的に複数のシェーダーを試したりする場合に便利です。

シーンのオブジェクトを選択してボタンを押すとマテリアルスロットが追加されます。

いつもシェーダーを変更しない場合は設定しなくてかまいません。

この機能を利用するには マテリアル外部化 が必要です。

アバタービルド全体設定6

3種類のオブジェクトの組にそれぞれ異なるシェーダーが設定可能です。 もっと増やしたい場合はソースの4種類目のコメントをはずすと可能です。(上級者向け)

7. マテリアルセットのフォルダ名を指定します。

「マテリアルセット」とは部分的にマテリアルを変更できる機能です。

例えば体のテクスチャを変更することで簡易的に水着を着せるというユースケースでは、以下のように体のテクスチャを変更したマテリアルを水着フォルダに作り、「マテリアルセット」に「水着」を指定すると、体のマテリアルのみ「水着」フォルダのものに変更されます。

MyModel/Materials/
                  |-体.mat
                  |-服.mat
                  |-顔.mat
                  |-水着/
                        |-体.mat

ここで指定したフォルダ名が個別設定で選択可能になります。

この機能を利用するにはマテリアルフォルダマテリアル外部化 が必要です。

アバタービルド全体設定7

8. DynamicBoneセットを設定します。

(※この機能は実験的な機能です。将来変更・削除される可能性があります。)

指定されたオブジェクトパス・順番のDynamicBoneの有効・無効を切り替えられます。

VRChatのパフォーマンス情報では無効にしたDynamicBoneも各種カウントに含まれるので、この機能で無効にしてもパフォーマンスは軽くなりません。

アバタービルド全体設定8

9. 設定ファイルを選択すると、その他の設定があります。

アバタービルド全体設定ファイル1

ファイルモード

この設定にはマテリアルフォルダが必要です。

ファイルパスベースでシェーダーを切り替えするモードです。

アニメーションでマテリアルを切り替える等、シーン中に存在しないマテリアルも切り替える必要がある場合ONにします。

この設定を有効にするとシェーダー適用オブジェクトは無視され、常にマテリアルフォルダ内の全てのマテリアルがシェーダー変更されるようになります。

個別設定

個別の設定です。アセットの「Create」→「アバタービルド設定」で生成できます。

設定2

全体設定

全体設定を指定します。

アバターパス

設定を必ず特定のアバターに適用したい場合にアバターGameObjectのパスを設定します。

アップロード時にも考慮されるので、この指定を利用するとシーン中にある複数のアバターを切り替えながら一括アップロードすることもできます。

blueprintId(ない場合新規アップロード)

blueprint idを指定します。

新規アバターがアップロードされても自動で更新はされないので、その設定のblueprint idを設定側に適用するようにして下さい。

VRChat SDKの「Manage Uploaded Contents」ウインドウから該当するアバターの「Copy Id」を押して、その値を設定のblueprint idの項目に貼り付けて下さい。

アバタービルド設定ウインドウのボタンで現在のアバターのblueprint idをコピーして設定することも可能です。

アバター名

省略した場合、設定アセットの名前が使われます。

説明

アバターの説明です。

Publicアバター

アバターをpublicにする場合はON。

シェーダー1, 2, 3

シェーダーを一括変更できます。

マテリアルセット

マテリアルセットの指定です。

テクスチャ切り替えで水着にしたい等の場合に便利です。

オンオフするパーツ

チェックボックスのオンオフで表示を制御できます。

切り替えパーツ

切り替えパーツのうち一つが表示できます。

DynamicBoneオンオフ

DynamicBoneの有効無効を切り替えます。

カスタム非表示オブジェクト

カスタム非表示制御が有効な場合、例外的に非表示にするオブジェクト名を列挙して設定できます。

テクスチャ切り替えで水着にしたい場合に服オブジェクトを非表示にする等に使えます。

アバター倍率

アバターを拡大縮小できます。

ViewPointもあわせて位置が設定されます。

カスタムシェイプキー設定

シェイプキー制御が有効な場合、変更するシェイプキー名と値を列挙して設定できます。

アバターGameObjectの直下にある各子GameObjectの同名シェイプキー値が変更されます。

各種チェックボックス

アバターアップロード時の指定項目です。適切なものを指定してください。

マテリアル外部化

シェーダーの変更及びマテリアルフォルダを必要とする機能を使う場合マテリアルの外部化が必要になります。

外部ファイルになっているマテリアルを必要とするので、fbxインポートで予め外部マテリアル形式にしておいてください。

fbxインポート設定

注意事項

シーンやマテリアルが変更されます!

MyAvatarBuildSettingは設定に従ってアバターに関連するシーン内のオブジェクトやマテリアルを動的に変更します。

基本的に冪等な操作になるような設計ですが、設定を誤ると予期せぬ変更(例えばカスタム非表示制御を全階層にしている場合に深い階層のオブジェクトの表示が切り替わるなど)がありえます。

できればgit等のバージョン管理ツールを導入してプロジェクトのファイルを管理することをおすすめします。

パッチについて

本ツールはVRChat SDK本体のアップロード完了部分にパッチを当てることで一括アップロードを実現しています。

下記の画面にのようになっている場合パッチ未適用ですので、機能を使用する場合は「パッチ適用」ボタンを押してパッチを当てて下さい。

注意: このパッチによって、VRChat SDKのアップロード完了時に通常の完了ダイアログボックスが出なくなります。

(このパッチはアバターを連続してアップロードする目的で、1つのアバターのアップロード完了時に次のアバターをビルドするトリガーを追加するものです。それ以外のSDKの機能は変更されません。)

アップロード0

新規アバターアップロード後のblueprint id更新

新規アバターがアップロードされた場合、その設定のblueprint idを設定側に適用するようにして下さい。

これをしない場合その設定が毎回新規アバターとしてアップロードされることになります。

VRChat SDKの「Manage Uploaded Contents」ウインドウから該当するアバターの「Copy Id」を押して、その値を設定のblueprint idの項目に貼り付けて下さい。

アバタービルド設定ウインドウのボタンで現在のアバターのblueprint idをコピーして設定することも可能です。

アバタービルド設定ウインドウ2

利用規約