VRChat あまり深く考えずにAvatars3.0対応する
ほぼ自分用メモです。
買ったアバターがSDK3.0未対応だった、という場合はこの手順でだいたいうまくいくのではないかと思います。
逆に、2.0時代に思いっきりカスタマイズしたProjectを3.0に移行するのはやったことがないのでうまくいくか不明です。エモートスイッチ等2.0用のギミックが入ったアバターも難しいかもしれません。
1. VRCAvatars3Tools でコンバート
SDK2.0対応アバターのunitypackageを、以下のツールで変換します。
https://gatosyocora.booth.pm/items/2207020
変換手順はダウンロードしたファイルの中に「README.txt」として同梱されています。
手順の最初にunitypackageを作るよう指示がありますが、今回は買った直後のアバターに含まれるunitypackageをそのまま使うので、「新しくUnityのプロジェクトを作成する」から始めてください。
これだけで8割完成です。このあとの微調整が気にならないなら完了でよいです。
2. 手の設定
Avatar3.0は手の形と表情を別々に設定します。コンバートすると、2.0時代のハンドジェスチャーは表情(FX)にだけ設定されます。
VRCSDKフォルダから適切なファイルをコピーしてきて、Gestureに設定すればよいのですが……
いつも VRCAvatarEditor beta を使って空レイヤーを作っているため、手動での方法をご紹介できません。すみません。
VRCAvatarEditor をインポートして、FaceEmotion(表情)タブの下のほうの「Create Gesture Layer Controller(GestureLayer用のAnimationControllerを作成)」ボタンをクリックしてください。
Window > Animation >animator を開いてから、 Gesture_HandsLayer をクリック。出てきたAnimatorからLeft Handをクリックすると状態遷移図みたいなのが出てくるので……
7つ並んでいる灰色の箱をクリックして、Motion欄に箱の名前に対応する手(=表情)のアニメを設定します。Fistだったらグーのアニメ、という感じ。
Right Hand で同じことをすれば、2.0時代と同じ手の形になります。
(応用で、例えばRocknRollの手が嫌いだったりするならGestureレイヤのRocknRollにFistとかを設定してしまえば、表情はRocknRollのまま手の形をグーにできます)
3. アイトラッキング
Eye Look のEnableをクリック
General の 「Calm <-> Excited」(まばたき頻度)、「Shy <-> Confident」(人の目を見る頻度?)はお好みで。まばたきの話はあとでします。
Eyesの設定。Transformに目のボーンが設定されていることを確認してください。
Rotation States は、Previewを押すとシーンで見ながら設定できるので、自然に見える範囲内で最大だと思う値を設定。大雑把で大丈夫。左右の絶対値は同じにしたほうがいいかなくらい。
Eyelidsは、Type を Blendshapes にして、Looking Up、Looking Downを設定します。Blink(まばたき)はちょっと複雑なので後述。
Looking Up / Looking Downは上(下)を見ているときのまぶたのシェイプキーなのですが、なさそうならnoneでいいと思います。まばたきを設定しないならEyelid Typeごとnoneでいいです。
4. まばたき (お好みで)
2.0時代はそもそもまばたきを無効化したアバターが多かったと思うので、気にしないならやらなくていいと思います。
アイトラッキング設定の続きで、Eyelidsを設定しましょう。
Blink にまばたきのシェイプキーを設定します。これだけでまばたきはするのですが、干渉対策が必要です。
(細かく言うと、「まばたき干渉」といえばこちら(リンク)の設定なのですが、VRCAvatars3Tools でコンバートした時点でそれはできています。ただ、「右手で表情を出す→左手で別の表情を出す→左手を戻す」という状態遷移をしたあとに右手の表情にうまく戻らなかったり、まばたき干渉が復活したりします。それの対策です。)
FXに設定された表情コントローラ(多分「vrc_AvatarV3HandsLayer2_アバター名」みたいな名前)をクリック。さっきのAnimatorが出しっぱなしなら、状態遷移図みたいなのが出てくるはずです。とりあえず、まずはLeft Handをクリック。
先に完成形を見せます。(作り込む前のスクショをとりわすれたので)
最初は、上の図から「Idle2 LeftOnly」が無い状態になっていると思います。
水色の箱とオレンジ色の箱をつなぐ矢印をクリックしてください。その後、Shiftを押しながらオレンジ色の箱をクリックしてください。矢印とオレンジの箱(ここでは「Idle2」)が選択された状態になります。
Ctrl+Dで、矢印と箱を複製します。複製された箱が灰色であることを確認してください。ここでは「Idle2 LeftOnly」と名付けます。
複製された灰色の箱をクリックし、「VRC Animator Tracking Control」の「Eyes & Eyelids」を「No Change」にします。
Any State(水色の箱)からさきほどのIdle2 LeftOnlyに向かう矢印をクリックで選択し、
Conditions の「+」をクリックしてから 『「GestureRight」「NotEqual」「0」』を追加します。
次に、水色の箱からオレンジの箱(Idle2)に向かう矢印をクリックし、
Conditions の「+」をクリックしてから 『「GestureRight」「Equals」「0」』を追加します。
Right Hand レイヤーでも同様に、
・Idle2と矢印を複製
・複製した箱の「Eyes & Eyelids」を「No Change」に変更
・複製した矢印に「GestureLeft」「NotEqual」「0」を追加
・オリジナルの矢印に「GestureLeft」「Equals」「0」を追加
を行います。
これで、まばたきをしつつ2.0時代と同じように表情が出せるようになったものと思います。