Avatars3.0が正式リリースされ、同じ世界線でAvatars3.0で動けるようになりました。
Avatars3.0ではより自由度が高くなっている一方で、Avatars2.0よりも実装の難易度は高まっています。
ここでは、いくつかの機能の実装とそのアプローチについて説明します。
ここで例に挙げているアバターはロジウラキッサにて販売されているオルフェネシアちゃんです。

大きなドラゴンメイドで、シェイプキーでさらに調整することもできます。このシェイプキーもAvatars3.0では後述の通り動的に変更することができます。
Avatars3.0の設計思想
Avatars3.0では、今まで既存のアニメーションをオーバーライドする形でカスタマイズしていたアニメーションをAnimation Controllerで自由に定義できるようになっています。
Animation Controllerを使用することで、アバターの状態やExpression Menuの操作から書き換えられる値を使用して自由度の高い動作を行うことができるようになります。
2.0
— けもみみおーこく (@kemomimi_oukoku) August 8, 2020
アニメーションのテンプレートがあるから、再生するアニメーションファイルを上書きして動作をカスタムしてくれ!
3.0
自由度がほしい?分かった!
変数とUIをカスタムできるようにして、定義済みのパラメータも用意したから、あとは好きなようにアニメーションコントローラー作ってくれ!
Avatars3.0では、従来のアニメーションオーバーライドに相当するほとんどの動作は基本的にAnimation Controllerで実現されています。
Animation Controllerでは条件に応じてアニメーションを再生するという思想であることから、既存の2.0環境のアバターに設定されていたアニメーション自体はほぼそのまま持ってくることができます。
単純に、そのアニメーションの設定方法が変わっているだけです。
1からAnimation Controllerを実装することは非常に面倒であるため、VRCSDK3に同梱されているサンプルファイルをコピーすることをお勧めします。
やりたいこと別の記録
雑な書き方ですが、何をするためにどうすればいいのかを記録しています。
Avatars3.0へのマイグレーション(持ち込み)
上記サイトの手順を踏むことで、既存の2.0アバターをとりあえずAvatars3.0環境に持ち込むことができます。
アバター本体、ハンドサインはこの手順に従うことで引き継ぐことができます。
エモートスイッチの移植
Avatars3.0ではエモートスイッチが廃止されました。
代わりにAnimator Controllerで同等の機能を実装できます。
「Animator Controllerの編集」および「Expression Parameters」を参照してください。
Expression Parametersには、Int型またはFloat型の変数を持たせることができ、この変数をフラグとしてAnimator Controllerで動作が定義できるようになっています。

物を持たせる動作を定義するのであれば、Int型を定義した上で持っていない場合は0、持っている場合は1として定義すると良いでしょう。
物の出し入れやコライダージャンプ時のスイッチとして利用するのが便利です。
2018年の記事ですが、コライダージャンプ自体は現在でも有効な方法です。
ハンドサインの代わりにAnimator Controllerで実装することでハンドサインに囚われずに片手で有効と無効を切り替えられます。
Expression Parametersでは、Toggleに設定をしておくと状態を保持できます。
ホバー移動の移植
Animator Controller内で、BlendTreeを使用することで設定できます。
BlendTree…
— コバルト (@27Cobalter) August 8, 2020
左右方向の移動速度をVelocityX、前後方向の移動速度をVelocityZで取得することができます。
また、立位状態かどうかを判定するヒントとして、Upright変数を確認することで判定ができます。うつぶせの場合で0、完全に直立の場合で1と判定され、その間はFloat値で取得ができます。

移動速度はデスクトップモード時、走行時で4.00m/s、歩行時で2.00m/sです。斜めに移動する場合はそれぞれの成分に分かれます。
胸の大きさの調整
シェイプキーを変更するアニメーションを2つほど用意し、それらをBlendTreeに設定することで実現できます。
Blendtreeに設定された複数のアニメーションは、与えられたパラメーターの値に応じて滑らかに変化します。
Expression ParametersでRadial Puppetを指定してFloat型の値を取得しておくのがおすすめです。

ParameterにExpression Menuで指定した値を受け取る変数を設定し、Paramater RotationでAnimation Controllerに渡す変数を設定します。
Parameterの下にあるValueは、その変数の最大値を指定しますが、ユーザー定義のFloat値の値域は±1.0に制限されているため、変更することはないかと思われます。
つまり、Expression Menuで指定した値が事実上そのままAnimation Controllerに渡ります。
どうしてもInt型で使用しなければならないような場合に、ここで指定します。
AFKモーションを変えたい
デフォルトのAFKポーズは、座禅を組んで浮遊します。それをカスタマイズするための方法です。
Avatars2.0ではカスタマイズできませんが、3.0ではカスタマイズが可能です。

AFKポーズは任意のアニメーションを登録できるので、選択や調整に迷った場合は配布や販売されているIdleモーションを使うと簡単に可愛くなれます。

わたしはここのIdleモーションをAFKモーションとして使わせていただきました。
ドローンを飛ばしたい
何かしら飛行物体を飛ばしたいような場合は、べりりん氏開発のエクスプレッションドローンを導入することで実現できます。
VRモードでの利用前提です。導入にはパラメーターに5変数以上の空きが必要です。
これを導入することで、エクスプレッションメニューから任意のオブジェクトをワールド固定オブジェクトとして動かすことができるようになります。

このような感じに召喚し、Expression Menuから6方向に動かすことが可能です。召喚したオブジェクトが向いている方向は右手の方向に連動します。