【Avatar3.0】Avatar3.0の仕組みについて!VRChatから内部の動きの解説【2020年2月】

Avatar3.0

Avatar3.0の仕組みについて!VRChatから内部の動きの解説

みなさん!こんばんにゃんこ!
今日は何人かの方から質問があった、Avatar3.0のセットアップについての基本的なところについて仕組みから解説していこうと思いますにゃ!
Avatar3.0では、ExメニューやExパラメーターを通してVRCHAT側とアバターがやり取りしていますが、この設定がうまく行っていないとせっかく作った機能も動きません!
そもそも、どうやって動いているのか?これを理解することが大事だと思うので簡単にまとめてみましたにゃ!

1.図解(超ざっくり!)

まず、Avatar3.0の処理の一覧の流れを簡単な図にしてみましたにゃ!
ただし、超ざっくりなのであまり細かいツッコミはなしでお願いしますにゃ♪

Avatar3.0の処理(クリックで拡大)

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

2.メニューとパラメーターの接続

メニューとパラメーターの接続部分

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

3.詳細の解説

3-1.ExMenu(最初の図の①)

ExMenuのイメージ

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

3-2.ExParameter(最初の図の②)

ExParameterのイメージ

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

3-3.Animatorコントローラーのパラメーター(最初の図の③)

パラメーターが渡される様子

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

3-4.Animatorコントローラーのレイヤー(最初の図の④)

レイヤーのイメージ

Waightが1になっている(正確には0ではない)レイヤーではパラメーターを監視していて、常に遷移条件の確認が行われていますにゃ!
パラメーターの値が変わると遷移条件の判定に影響が出ますにゃ~!

3-5.トランジッション(最初の図の⑤)

トランジッションのイメージ
状態遷移の条件

パラメーターの値が変わると、レイヤー内のトランジッション(白い線)で設定されている状態遷移の条件にあっているか判定されて、条件を満たしていれば状態が遷移しますにゃ!
これによって再生されるアニメーションが変わって、メニューを操作する前とは別の状態に変化することになりますにゃ!

3-6.ステート(最初の図の⑥と⑦)

状態遷移が起こって他のステートに移動すると、そこにセットされているアニメーションが再生されて、アニメーションで設定されている変化が起こりますにゃ!
これによって、洋服が変わったり、オブジェクトが表示されたり、色が変わったりといった変化を発生させることができますにゃ♪

以上!ここまでがAvatar3.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

以前動画でも説明しましたが、Avatar3.0のエミュレーターというのがあって、Unity上でメニューから入力した時の動きのチェックなどができて、めちゃめちゃ便利ですにゃ!
こちらも最近さらに進化したので今度紹介の動画を作りたいと思いますにゃ♪

以上!めかにゃんこがお送りしましたにゃ~!

5.Youtubeのチャンネル登録協力のお願い★ミ

最後にちょっとお願いがあるのですが、Youtubeのチャンネルがもうちょっとで1,000人が見えてきそうな状況なので、もしよろしければチャンネル登録してもらえるととても嬉しいですにゃ♪
下のアドレスをクリックして出てくるメッセージの「チャンネル登録」をクリックするだけですにゃ!

URL:https://www.youtube.com/channel/UCUBwIFm0Uu9cIi0KMxxBkPA?sub_confirmation=1

それでは!またどこかで会いましょうにゃ♪

コメント

タイトルとURLをコピーしました