見出し画像

VRChatのエクスプレッションメニュー改変備忘録

はじめに

VRChatで、アバターと専用衣装を購入して、着せ替えをしたはいいものの、靴脱げなくなっちゃった…って落ち込んだことありませんか?ありますよね。
今回はそんな経験をした筆者が、完全に理解した!と意気込んで書く備忘録になります。
少し長いですが、未来のどこかの誰かの役に立てることを願ってます。

※注意※
あくまでも筆者が仕組みを理解したくていじった結果なので、こんなことしなくてもツールを使えばすぐ設定できること、というのをご理解ください。
Unityのバージョンは2022.3.22f1です。

作るもの

着せ替えについては、専用衣装であれば簡単ですし、Youtubeなどにもたくさん情報はあるので割愛します。

まず着せ替えが完了したらUnityのヒエラルキーがこんな感じになると思います。

今回は、ひゅうがなつみかんさんの「狛乃」と、
Achromousさんの「シンプルビッグシルエットコーデ」
を使って改変しました。

上から三つ目のKomano_Kaihenがアバターの大元、親になるオブジェクトなのですが、それを選択すると、インスペクターにこんな感じの情報が出てくると思います。

Komano_Kaihenのインスペクター

この中の、「VRC Avatar Descriptor (Script)」っていうコンポーネントを探して、このコンポーネントの「Playable Layers」っていう項目を展開します。

Playable Layersを展開するとこうなる。ごちゃごちゃしてて探しにくいかも。

このなかの、FXっていう項目に設定されている、Komano_FX_Kaihen_WDっていうのが、メニューとかでいじれるアニメーションを設定してるところです。アニメーションコントローラーって言います。
こいつをダブルクリックすると、こんな感じでAnimatorウィンドウが開くかと思います。

左上のLayersかParametersで表示される画面が違うのでとりあえずLayersを選択しといてください

画像で表示されている、Kaihen_Shoseが今回作るものになります。

製作開始

まずは、アニメーションを作ります。
今回はON,OFFだけなのでそこまで難しくないです。
アバターを構成する数あるオブジェクトの中で、ヒエラルキー上一番上にあるオブジェクトを選択します。
今回だと、Komano_Kaihenになります。

色々見えてて気持ち悪い笑

この状態で、AnimationウィンドウのCreateを押します。
※Animationウィンドウがない場合は、画面上のWindow>Animation>Animationで表示できます。

Animationウィンドウを表示する方法
Createを押す


すると、アニメーションを作成することになるので、適当にアニメーションの名前を決めて保存します。
すでにプロジェクト内にアニメーションがある場合は、それと被らない名前にするといいです。
今回は、靴を着てる状態と、脱いでいる状態の2パターンなので、Kaihen_Shose_onとKaihen_Shose_offにします。

まずはonから作っていきます。

Kaihen_Shose_onの作成

こんな感じ
ちなみに今回はここに保存してます。

保存すると、アニメーションウィンドウがこんな感じに変わります。

緑の線の部分がファイル名になります

Add Propertyから、今回変化させたいオブジェクトの名前を探して、展開し、Game Object.Is Activeのプラスマークを押します。

今回はくつを脱いだり履いたりさせたいので、sandalsをのGame Object.Is Activeを選択
プラスマークを押すとこうなる。

onはこれでOK。次はoffを作っていきます。

Kaihen_Shose_offの作成

まずはアニメーションを作ります。
Animationウィンドウの、Kaihen_Shose_onと書いてある欄の▼を押して、Create New Clip…を押し、アニメーションを作成して保存します。

▼が小さいので見逃しやすいかも…
名前は相変わらず適当

出来たら、Kaihen_Shose_onと同じように、Game Object.Is Activeを追加します。

sandalsのGame Object.Is Activeを追加

こっちは、off(脱いでいる状態)にしたいのでチェックを外します。

Sceneウィンドウでは変化ないけど安心してね

これでアニメーションの作成はできました!

レイヤーの作成とアニメーションの追加

アニメーションもできたことですし、さっそくアニメーションを組んでいきます。
と、その前に、先ほどの手順で、不要なアニメーションコントローラーが作成されているのでそれを削除します。
今回だと、Komano_Kaihenを選択してインスペクターを見ると、オブジェクトの名前と同じ名前のアニメーションコントローラーがアタッチされています。これを選択します。

赤丸を押す

すると、選択したアニメーションコントローラーが、Projectウィンドウでハイライトされるので、そのアニメーションコントローラーを消します。

ハイライトされてるやつを選択してDelete

それでは、「作るもの」のところで確認した、アニメーションコントローラーを再度開きます。
そして、AnimatorウィンドウのLayersの画面で、プラスを押して、Kaihen_Shoseレイヤーを作ります。(レイヤーの名前は何でもいいです。)

AnimatorウィンドウのLayersタブのプラスを押す
こうなるので名前を設定する
今回はKaihen_Shoseにします。

このレイヤーは、後から追加するアクションについては、基本的には1機能1つでいいと思います。(表情変化とかはまとまってますが…)

そうしたら、追加したレイヤーの歯車を押して、Weightを1に設定する

スライダーを右にするか、数値を1に変更する
こうなればOK

そして、このレイヤーに先ほど作成したアニメーションを追加します。
Projectウィンドウの検索窓に、Kaihen_Shoseと入れて、onとoff両方ドラッグ&ドロップでAnimationウィンドウに追加してください。

Kaihen_Shoseレイヤーを選択した状態で、二つのアニメーションをドラッグ&ドロップ

すると、こんな感じで、Kaihen_Shose_onとKaihen_Shose_offが追加されます。

勝手にどっちか片方がオレンジになるはず。

もし、この段階でオレンジになっているのが、onの場合は次の操作は飛ばしてください。
画像のようにoffがオレンジになっている人がいたら、次の操作をしてください。
Animatorウィンドウの、Kaihen_Shose_onを選択して右クリック。
その後、Set as Layer Default Stateをクリックします。

デフォルトの状態に設定するってこと。

これで、Kaihen_Shose_onがオレンジになったと思います。

これでOK

次に、onからoffへ、offからonへ遷移できるように、矢印でつなぎます。
やり方は、矢印の始点となるアニメーションを選択して、右クリックで、Make Transitionを選択。

Make Transitionを選択する。

すると、矢印が出てくるので、その状態でつなぎたいアニメーションを選択。これでアニメーションの遷移ができるようになります。

矢印が出る
これで遷移できるようになる。

同様に逆向きの矢印もつなぎます。

最終的にこうなる。

ちょっとこのままだとやりずらいので上をonで、下がoffになるように並び替えておきます。

これでよし

アニメーションコントローラーの設定

ここまでくればあと一息です。ラストスパート頑張りましょう。
最初にKaihen_Shose_onを選択して、インスペクターのWrite Defaultsのチェックを外します。offも同様に。

チェックを外す。
これでOK

次に、Projectウィンドウから、Kaihen_Shose_onを選択して、Loop Timeにチェックが入っていることを確認します。入ってなかったらチェックをつけてください。これもoffも同じです。

Projectウィンドウから選択ないとインスペクターこれにならないので注意
offも設定する

次に、アニメーションを遷移させるために、パラメーターを作成します。
一度AnimatorウィンドウのParametersタブを開き、プラスからBoolを選択します。パラメーターの名前は、P_Kaihen_Shoseとしておきます。

画像の通りに選択する
名前を設定する

次に、遷移の仕方を設定するため、onとoffをつなぐ矢印を選択します。
そして、インスペクターから、Has Exit Timeのチェックを外し、画像のように操作して、遷移が一瞬で終わるようにします。

チェックを外し、二つのつまみを一番左へもっていく
こうなればOK

その後、Conditionsのプラスマークを押します。
ここで、この矢印の向きにアニメーションが遷移する条件を指定します。
後述しますが、今回は、デフォルトの状態は靴を履いており、メニューから設定をonにすると靴を脱ぎ、offにすると履くようにしたいです。
反転するのでややこしいですが、今選択しているのはoff(脱いでいる状態)からon(履いている状態)への矢印なので、パラメーターがfalseになった時に遷移するようにします。

プラスを押して追加し、プルダウンよりP_Kaihen_Shoseを選びます。
falseを設定

これで、offからonへの矢印の設定ができました。
逆の矢印も同様に設定してください。下記に設定後の画像を掲載しておきます。

選択されている矢印に注意して作業すること!

エクスプレッションメニューの設定

長らくお待たせしました。正真正銘ラストの設定です。 
ついに、メニューに登録していきます。

まずは、ヒエラルキー上でアバターの一番上にあるオブジェクトを選択。(今回はKomano_Kaihen)
インスペクターのVRC Avatar Descriptor内の、Expressionsの、MenuにアタッチされているVRC Expressions Menuをダブルクリック。

頑張って探してみて!

インスペクターが開いたら、今回は、サブメニューClothesの中で操作するようにしたいので、ControlsのClothesを選択。その後、アタッチされているSub Menuをダブルクリック。

このあたりで好きなサブメニューを作ったりしてもいいよ!
応用できる人はいじってみてね!

これがメニューのサークルの中身になります。
今回は、Shoseという項目を作ってそれを選択すると、脱ぎ履き出来るようにします。

まず、アニメーターのパラメーターと連携させるために、パラメーターの登録をします。
インスペクター、一番上のParameters右横のopenをクリック 

ここ。上のOpenと間違えないでね

そうしたら、プラスマークを押下してリストにパラメーターを追加。
「アニメーションコントローラーの設定」の項で作成したパラメーターと同じ名前、同じタイプに設定する。それと、Savedにチェックを入れる。
今回だと、名前はP_Kaihen_Shoseで、TypeはBool。

怒涛の設定ラッシュ

次に、さっき開いていたKomano_Clothes Menuを再度開き、
インスペクターより、Controls下のプラスを押して項目を追加。

選択されている項目は、下部で設定する。

NameをShoseに変更し、その隣のアイコン設定欄からは、同梱されていた、靴のアイコンを選択します。(アイコンの選択はご自由にどうぞ。)
TypeはそのままToggle(onとoffを切り替えれるやつ)で、Parameterを、さっき作った、P_Kaihen_Shoseに設定する。

これでOK

完成。

最終確認

あとはアップロードして確認するのみ!!!

靴を履いていて…
脱げた!!!

このままだと、靴の厚み分浮いてたりするけど、それはまたの機会に。
長くなったけどこれで完成です!
お疲れさまでした!

そしてここまで読んでくださりありがとうございました!


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