Avatars3.0の仕組みについて!VRChatから内部の動きの解説
みなさん!こんばんにゃんこ!
今日は何人かの方から質問があった、**Avatars3.0のセットアップについての基本的なところ**について仕組みから解説していこうと思いますにゃ!
Avatars3.0では、**ExメニューやExパラメーターを通してVRCHAT側とアバターがやり取り**していますが、この**設定がうまく行っていないとせっかく作った機能も動きません!**
そもそも、**どうやって動いているのか?**これを理解することが大事だと思うので簡単にまとめてみましたにゃ!
1.図解(超ざっくり!)
まず、Avatars3.0の処理の一覧の流れを簡単な図にしてみましたにゃ!
ただし、**超ざっくりなのであまり細かいツッコミはなしでお願いします**にゃ♪

このような流れで**VRChatからの命令をアバター側で処理**していますにゃ!
この後でそれぞれの**赤い数字の部分**を細く解説していきますにゃ!
その前に**重要な部分**の説明にゃ!
2.メニューとパラメーターの接続

ExメニューとExパラメーターの接続はUnity上でアバターのコンポーネント
**「VRC Avatar Descriptor」**の中にある**「Expressions」**という項目で**「Menu」**と**「Parameters」**が接続されていますにゃ!メニュー側で操作を行うとその変化がここを通して**Exパラメーターに渡ります**にゃ!
詳しい流れは次に説明しますにゃ!
3.詳細の解説
3-1.ExMenu(最初の図の①)

上の図のようにVRChat側の**エクスプレッションメニュー(以下:ExMenu)**をユーザーが操作すると、**メニューに設定されているパラメーターの値がアバターのExパラメーターにセットされます**にゃ。
ここからアバター内での処理になりますにゃ!
3-2.ExParameter(最初の図の②)

ExParameterは自分で好きにアレンジできますが、このパラメーターは次で説明するAnimationコントローラーの中のパラメーターと**大文字・小文字も含めて一致していないとだめ**にゃ!
**名前が一致しているパラメーターの数値がコントローラー側のパラメーターにセット**されますにゃ!
3-3.Animatorコントローラーのパラメーター(最初の図の③)

3-3で書いたように**ExParameterからAnimationコントローラー側の同じ名前のパラメーターに値がセットされます**にゃ!このセットされた値を**各レイヤーが監視**していて、値が変わると**レイヤー内で状態遷移の判定****結果が変化**しますにゃ!
3-4.Animatorコントローラーのレイヤー(最初の図の④)

**Waightが1**になっている(正確には0ではない)レイヤーではパラメーターを監視していて、**常に遷移条件の確認が行われています**にゃ!
**パラメーターの値が変わると遷移条件の判定に影響が出ます**にゃ~!
3-5.トランジッション(最初の図の⑤)


パラメーターの値が変わると、レイヤー内の**トランジッション(白い線)で設定されている**状態遷移の条件にあっているか判定されて、**条件を満たしていれば状態が遷移します**にゃ!
これによって再生されるアニメーションが変わって、メニューを操作する前とは別の状態に変化することになりますにゃ!
3-6.ステート(最初の図の⑥と⑦)
状態遷移が起こって他のステートに移動すると、そこに**セットされているアニメーションが再生されて、アニメーションで設定されている変化が起こります**にゃ!
これによって、洋服が変わったり、オブジェクトが表示されたり、色が変わったりといった変化を発生させることができますにゃ♪
以上!ここまでがAvatars3.0でのメニュー操作からアバター変化までの流れですにゃ♪
4.まとめ
いかがでしたでしょうか?
このような流れで処理されていることがわかると設定時に特に注意する点も見えてきますにゃ!
具体的には以下のような部分は特に気をつけたい項目ですにゃ!
4-1.アバターのセットアップ時に特に気をつける点
・アバターの「**VRC Avatar Descriptor**」に「**メニュー設定**(VRCExpressionsMenu)」と「**パラメーター設定**(VRCExpressionParameters)」がセットされているか?
・アバターの**パラメーター設定とAnimationコントローラー側**の**パラメーター名が大文字小文字も含めて一致**しているか?
・Animatorコントローラーの**各レイヤーのWaightが1**になっているか?
・状態遷移の条件がきちんと設定されているか?
・アニメーションがイメージ通りに設定できているか?
以上のような内容がチェックすべきものになりますにゃ!
下の2つは結構確認が大変と思うけど、実は**めっちゃ便利なツールがある**のでそういうものも活用していってほしいにゃ!
**改変作業が劇的に楽になる**のでにゃんこからの**おすすめ**ですにゃ♪
4-2.アニメーションや状態遷移の設定ミスを簡単に確認する方法
それでは最後に、**便利ツールの紹介**ですにゃ!
4-2-1.**AnimationValidator**(がとーしょこらさん)
URL:https://github.com/gatosyocora/AnimationValidator4VRC/releases
いつもお世話になっている**がとーしょこらさん作のツール!**
アニメーションに問題がある場合に**問題を見つける**だけでなく、簡単なミスとかは**自動で修正**できちゃうすぐれものですにゃ!
今度紹介と使い方の動画も作ろうと思いますにゃ♪
4-2-2.**Avatar 3.0 Emulator**
URL:https://github.com/lyuma/Av3Emulator/releases
以前動画でも説明しましたが、**Avatars3.0のエミュレーター**というのがあって、**Unity上でメニューから入力した時の動きのチェック**などができて、めちゃめちゃ便利ですにゃ!
こちらも最近さらに進化したので今度紹介の動画を作りたいと思いますにゃ♪
以上!めかにゃんこがお送りしましたにゃ~!
5.Youtubeのチャンネル登録協力のお願い★ミ
最後にちょっとお願いがあるのですが、Youtubeのチャンネルがもうちょっとで**1,000人**が見えてきそうな状況なので、もしよろしければ**チャンネル登録**してもらえるととても嬉しいですにゃ♪
下のアドレスをクリックして出てくるメッセージの**「チャンネル登録」をクリック**するだけですにゃ!
URL:https://www.youtube.com/channel/UCUBwIFm0Uu9cIi0KMxxBkPA?sub_confirmation=1
それでは!またどこかで会いましょうにゃ♪