プレイ中に衣装のお着換えができるアバター(VRM)の作り方


はじめに

Unityを使ってVRChat用のアバターをVRMに変換する記事を以前書きましたが、今回はブレンドシェイプを使って2つの衣装をパッと入れ替える方法を書いてみます。

注意事項

私が好んで使っているアバターはQuQuさんのNecoMaidさん、Uさん、Pekeさんですが、QuQuさんのアバターの特徴として衣装の下にボディがありません。
そのため衣装自体がボディになっていますので、他のアバターさんで衣装とボディが分かれているときは、そのアバターに合った改変を検討してください。

やりたいこと(実現方法)

VRMで簡単に衣装を着替える方法は、ブレンドシェイプを追加して衣装のマテリアルのアルファ値を変更するだけです。
もうここまで聞けばピーンと来る人もいると思います。

マテリアルの設定

まず必要なのは「VRM/MToon」の"Rendering Type"を"Cutout"か"Transparent"に設定することです。
表示する衣装はアルファ値を255に近い方へ、表示しない衣装はアルファ値を0にすればOK!
なお衣装はどちらもマテリアルの"Rendering Type"を"Cutout"か"Transparent"に変えてくださいね。
合わせるひつようはありませんので、衣装に合った設定を選んでください。

VRM/MToonの設定

Rendering Typeについて

「VRM/MToon」の"Rendering Type"は3つあります。
公式サイトに説明がありますので詳細はそちらで確認してください。
今回利用するのに必要な説明は以下の部分です。
"Opaque":不透明、アウトラインが使えます。
"Cutout":Colorのアルファ値で見えなくできますが、半透明にはできなくてON/OFF状態が切り替わる感じです。アウトラインが使えます。
"Transparent":Colorのアルファ値で見えなくできるし半透明もできますが、アウトラインが使えません。透ける素材を表現する時などに使います。

VRMのブレンドシェイプで切り替え

マテリアルの設定ができたらアバターをVRMファイルに出力して、出力したVRMファイルをもう一度Unityに取り込んでから表情のブレンドシェイプを編集します。
ブレンドシェイプはHierarchyでアバターの一番大元を選んで。

Hierarchy

「VRM Blend Shape Proxy (Script)」の「Blend Shape Avatar」の中身をダブルクリックすると表示できます。

BlendShapeをダブルクリック

私の場合は衣装Aと衣装Bのそれぞれに表情が欲しいので、ブレンドシェイプを追加していますが、Natualは衣装Aで、Joyは衣装Bという切り替えもできます。
そのあたりはどうやって使うかで決めてください。
ブレンドシェイプを追加するか、衣装を変更するブレンドシェイプを選択したら「Material List」のボタンをクリックして、変更したいマテリアルをリストに追加。
消したい衣装のマテリアルはアルファ値を0に、表示したい衣装のマテリアルはアルファ値を255や任意の値にします。
("Transparent"のマテリアルなら半透明もできます)

追加したブレンドシェイプとマテリアルの設定値

ブレンドシェイプの設定ができたらもう一度VRMを出力して完成です!
これで追加したブレンドシェイプを選ぶと衣装が変わると思います♪

どうやって使う?

曲に合わせて手で合わせるのは大変!

私も最初は曲に合わせて手で切り替えてたのですが、そんな事してたらノーツを見逃しちゃいます。
そこでNalulunaAvatarsにある「時間イベント機能」のスクリプトを利用します。
スクリプトの書き方について詳細は、なるるなさんのFANBOXで確認してください。

最後に

以上の方法で作ったアバターを使ったプレイがこんな感じになります。
いろんな衣装を着替えさせて楽しんでください!


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