アバター改変手順【自己流】

はじめに

 自分なりの改変手順がだいぶ固まってきたので、吐き出してみようと思い、この記事を書き始めます。
 ただし、あくまで自己流なところはご了承ください。もっといいやり方があるとか、間違ってるとかあったらむしろ教えて下さい。

 基本的な考え方としては、1アバター(キャラクター)1プロジェクトで管理していくための記事になります。
(Quest対応用プロジェクトはもちろん別)

前提条件

  • Unity2022

  • Unityは日本語化済み

環境構築

Unity入れたり、VRChatSDK入れたり、VCC(その他代替)入れたりは省略。

VCC(追加ツール)

VCC 経由でインストールしているツール類

VCCからインストールしているツールをいくつか紹介します。
(バージョンが古いとかはちょっと一旦気にしないでください)

  • Modular Avatar(必須)
     言わずもがなの必須ツール。
     1アバター1プロジェクト管理するうえでも無いと始まらない。

  • Gesture Manager(ほぼ必須)
     たまーに入れてない方を見かけますがほぼ必須ツールですよ。
     単純な動作確認からデバッグまでできることは多岐。

  • liltoon
     VCC経由でインストールするのが便利です。

  • AAO: AvatarOptimizer
     軽量化を少しでも考えるなら入れておいて損はないです。
     とりあえず入れておくだけでも。
    (今回はあまり説明しません)

  • Floor Adjuster(必須)
     ヒールの高い衣装を着せる際、FBXをいじらずにアバターを浮かせられるツール。FBXをいじらないことが可能になるため1アバター1プロジェクト管理するためにも必須。

  • LigthLimitChanger
     ワールドのライティングに影響されないでアバターのライティングを調整できる、VRC内で使えるツール。写真撮影等に便利です。

その他ツール(unitypackage)

 VCC外からインストールしているツールを紹介します。

  • にゃんにゃんメッシュエディター
    https://booth.pm/ja/items/3003506
    Unity上で簡単なメッシュ編集ができます。
    (今回は説明しません)

  • TexTransTool
    https://booth.pm/ja/items/4833984
    アバター軽量化の際、マテリアルの統合をするために使っています。
    VCC経由でもインストールできるみたいですが、自分の環境ではなぜかできなかった。
    (今回は説明しません)

  • MeshDeleterWithTexture beta
    https://booth.pm/ja/items/1501527
    貫通防止用などの用途でメッシュを削除するツール。
    AAO: AvatarOptimizerでもある程度は代替可能。
    (今回は説明しません)

素体の作成

 素体を作ります。
 素体は最初に1回作ってしまえば、追加で素体を改変することは少ないと思います。

素体を構成する要素を考える

 どこまでを素体とするか、を考えます。
 もちろん例外はありますが、一度素体を作成したら、今後やることとしては、「素体に手を加えず、衣装をMAで着せていくだけ」です。
(あとから素体を改変することも可能ではある)
 したがって、やることは、

  1. デフォルト衣装、それに付随するギミック、ボーン等を削除

  2. すべての衣装に共通として実装する小物、ギミックの実装

です。

不要な要素の削除

 デフォルト衣装、それに付随するギミック、ボーン等を削除する作業です。
 これは比較的簡単かなと思います。
 この際、絶対にほか衣装で使わないようなオブジェクトを消す場合は「EditorOnly」ではなく完全に消しちゃいましょう。理由は邪魔だからです。ヒエラルキーは見やすいほうがいいです。

共通化を考える

 すべてのアバターに共通して実装したい機能は素体に入れてしまいましょう。一度素体に入れてしまえば、新しい衣装を追加するために改変する際、改めて実装する必要がなくなります。
 具体的にどんなものを共通化したらいいか、私の素体を例に紹介します。

Expressionメニューを考える

Expressionメニュートップ

 まずはベースとなるExpressionメニュートップを考えましょう。
 このメニュートップは今後増減しないような構成にするといいです。
 私の場合、上記のようなメニュー構成にしており、衣装ギミックや、その他ギミックを実装する際は、MAでメニュートップではなく、サブメニューに入れていく感じにしています。
 ちなみに、Expressionパラメーターは基本的にいじりません。可能な限りすべてMAから追加します。(後述)

ギミック、小物の実装

 私が共通ギミック・小物として実装しているものを紹介します。
 読み飛ばしてもいいです。

  • LigthLimitChanger
    環境構築で紹介したツールです。
    「衣装」のサブメニューに入れています。

LigthLimitChanger
  • FloorAdjuster
     こちらも環境構築で紹介したツールです。
     このツールを使わずFBXの高さをいじってしまうと、プロジェクト内のアバター全てに影響を及ぼしてしまいますが、このツールを使うとアバターごとに高さを調整できます。
     あらかじめ素体のArmatureに設定しておき、衣装に合わせて高さをいじるのがいいと思います。

FloorAdjuster
  • AAO: AvatarOptimizer
     AAO Trace And Optimizerだけでも設定して、素体としておくと良いと思います。
     メッシュの統合等は残念ながら衣装ごとに設定する必要があります。
    (今回はやりません)

AAO Trace And Optimizer
  • MMD表情設定ツール(有料)
    https://booth.pm/ja/items/3696116
     こういうツールも共通として入れておくと良いです。衣装側にアニメーションが付属する場合は、そちらのWriteDefaultを意識する必要がありますが、このツール自体の設定は一度で済みます。

MMD表情設定ツール
  • HitEffect(有料)
    https://booth.pm/ja/items/4973351
     これでどのアバターでも叩けます。
     オンオフを「ギミック」のサブメニューに入れています。
     こちらの商品のようにMA対応商品は、あらかじめMA設定されており、特に、MA Menu Installerのインストール先はデフォルトがメニュートップになっているはずなので、必要なら変更しておきましょう。

HitEffect
  • 髪型変更
     最近買ったサイドポニーとデフォルトの髪型を切り替える機能。
    (今後髪型を増やすことを考えるとちょっと実装を変える余地あり)
     なお、髪型を変更するためのアニメーションクリップとコントローラー、メニューは自分で作成して、画像のように自分でMA設定(※)しています。
     メニューは「衣装」のサブメニューに入れています。
    ※ MA Merge Animator、MA Menu Installer、MA Parameters

髪型変更
  • 可愛い座りツール
    https://yunisaki.booth.pm/items/3611536
     メニュートップにも見えていたと思いますが、姿勢制御系のVRC内ツールです。こういったものも共通として素体に実装しておくといいでしょう。
     ツールとしては、アバターのBaseコントローラー、Expressionメニュー、Expressionパラメーターを直接変更するツールである点だけ注意してください。
     あと、最新版(?)はこっちみたい。(可愛いポーズツール)
    https://booth.pm/ja/items/5479202

  • その他
     表情系のギミックなども素体に入れておくと良いですね。
     あとは、例えばですけど、指輪とかも物によっては共通として素体に入れておくと良いと思います。衣装ごとに付ける必要がなくなりますし、のちほど説明しますが、外すのも楽になりますよ

【重要】プレハブバリアント作成

 超重要です。
 とりあえず、素体作成お疲れさまです。1衣装1プロジェクト管理をしている場合や、素体を作成しない場合、ここより上の工程を毎回行う必要がありましたが、今後は基本的に不要になります。時短です。

 で、プレハブバリアントを作成しましょう。
 作り方は、ヒエラルキーからアバタールートを任意のプロジェクトディレクトリへドラッグ&ドロップし、表示されるポップアップから「プレハブバリアント」を選びましょう。
 今後、衣装ごとにシーンを作成し、ここで作成したプレハブバリアントをヒエラルキーに配置して、衣装を着せていく形になります。
 プレハブバリアントを作成したら、編集していたシーンは破棄してください。素体用のシーンは要りません。(むしろ混乱の元なので消しましょう)

PrefabVariant作成

 また、Pipeline ManagerのBlueprintIDが消えていることは念の為確認しておいてください。

Pipeline Manager

素体の改変

 もし、素体を改変しなければいけなくなった場合、プロジェクトに作成したプレハブバリアントをダブルクリックしましょう。プレハブバリアントの編集画面になります。普段のアバター改変画面とはちょっとだけUIが違いますが、基本的な編集方法は同じです。
 プレハブバリアントを改変し、保存すると、このプレハブバリアントを使用しているすべてのシーンに反映されます。
 これがとても重要な特徴で、これのお陰で、素体に手を入れる場合は、プレハブバリアントを変更した上で各シーンのアバターをアップロードするだけで良くなります。
 最近、プロジェクト内のシーンを一括アップロードしてくれるツールが出てたような気がします。

ちょとだけ色白になりました

衣装を着せる

 ここが本題です。ですが本題のほうが短いと思います。事前準備をしっかりしたおかげです。

新規シーン作成

 まずはシーンを新たに作成しましょう。
 テンプレートはBasicでいいと思います。

新規シーン作成

素体の配置

 素体のプレハブバリアントをヒエラルキーに配置しましょう。

素体配置

衣装の配置

 衣装を素体に入れます。
 今回は対応衣装を着せます。
 MA対応してない場合は、Setup Outfitを使用しましょう。

衣装の配置

 単純に衣装を着せるだけなら、後はアップロードするだけです!
 簡単!
 これで、素体に実装した小物、ギミックが反映された状態で衣装を着せたアバターとしてVRCで使えます。

衣装専用ギミックを作ろう

 ここから先は衣装にギミックを追加します。
 たとえば、一部オブジェクトのオンオフだとか、私がよくやる色変更機能だとかです。

コントローラーの作成

 衣装専用のコントローラーを作成しましょう。
 衣装のアセットフォルダ内に作成すると管理しやすいのではないでしょうか。

コントローラー作成

Animatorコンポーネント追加

 衣装に、Animatorコンポーネントを追加しましょう。
 追加しなくても問題はありませんが、アニメーションクリップの作成がやりやすくなりますので、個人的にはやったほうがいいかなと思います。
 後述するMA Merge Animatorでパスモード「相対的」のアニメーションクリップを作成するためにもこちらほうが楽です。
 そして、前述で作成したコントローラーを設定しておきます。

Animator追加

アニメーションクリップ作成、コントローラー編集

 衣装用のギミックのためのアニメーションクリップを作成し、コントローラーを編集しましょう。
 今回は「パーカー上の色変更」、「パーカー下の色変更」を作りました。

コントローラー編集

メニューの作成

 上記の機能をVRCで使用するためのメニュー(サブメニュー)を作成しましょう。
 軽く説明すると、前述のコントローラー上で再生しているアニメーションは対応するfloat値と連動して再生される仕組みなっており、このfloat値をメニューのラディアルで操作し、アニメーションの再生度を調整します。

メニュー作成例

MA Merge Animator

 MA Merge Animatorを設定します。
 衣装用に作成したコントローラーを素体のコントローラー(画像の設定ではFXに)に統合するための機能です。
 「統合されるアニメーター」に先ほど作成・編集したコントローラーを設定します。
 レイヤー種別は「FX」。
 パスモードはこの記事の手順に則っているのであれば、「相対的」でいいです。意図的に絶対参照でアニメーションクリップ作成している場合は絶対的になります。(この文章が分からないうちは考慮する必要ないです)
 Animatorコンポーネントを追加している場合、「付属アニメーターの削除」のチェックを忘れずにしておきましょう。

MA Merge Animator

MA Menu Installer

 MA Menu Installerを設定します。 
 先ほど作成したサブメニューを素体のメニューに統合するための機能です。
 衣装用のギミックなので、「衣装」のサブメニューに追加する設定になっています。
 インストール先を素体の任意のサブメニューに設定します。
 プレハブ開発者向け設定を展開し、インストールされるメニューに先ほど作成したメニューを設定します。

MA Menu Installer

MA Parameters

 MA Parametersを設定します。
 これは、一緒に追加されている「MA Merge Animatorで統合されるコントローラー」、「MA Menu Installerで統合されるメニュー」で使われるパラメーターを素体のExpressionパラメーターに追加してくれる機能です。
 コンポーネントを追加した直後は、未登録パラメーターにパラメーターが表示されているので、すべて、追加ボタンで上段に移動しましょう。
 上段に移動したら、パラメーター型を変更しましょう。「Animatorのみ」のままではうまく実装されません。
 その他、適宜初期値や、保存設定をします。

MA Parameters
これを
こう

Gesture Managerで動作確認

 お疲れ様です。
 ここまでやったらあとはアップロードするだけですが、念の為Gesture Managerで動作確認しましょう。

「ツール」から「Gesture Manager Emulator」を選択

 ヒエラルキーにGestureManagerが追加されるので、選択後、インスペクターから「Enter Play-Mode」をクリックします。

Gesture Manager

 何ができるかというと、Unity上でExpressionメニューを操作できます。

色変更ギミックの動作確認

 また、「Options」→「Locomotion」→「Velocity」などでアバターをモーションさせてある程度の貫通確認などができます。

モーション確認

 これ以外にもいろんな機能があります。

アップロード

 あとはアップロードするだけです。お疲れ様です。

おわりに

 ここまで目を通してくれてありがとうございます。
 知り合い限定になってしまうかもしれませんが、掘り下げてほしいところとか、うまくいかない部分があったら教えて下さい。説明できるかもしれません。
 よい改変ライフを!

この記事が気に入ったらサポートをしてみませんか?