らぷとのメモ帳

VRChatとその周りに関することをメインに記事を書いています

VRChat : SDK2アバターをSDK3に移行する(表情などは後回し)

VRChatのSDK3が出てから久しいですが,まだまだSDK2アバターのメンテに追われていることと思います. でもSDK3のアニメーションコントローラーとかSDK3のみに対応したギミックを使いたいというときは,否が応でもSDK3に対応させなければなりません.

この記事ではSDK2用のunitypackageをSDK3に対応させる手順を紹介します.

表情などを再現するのはかなり難しいので,とにかく最低限の設定ができるようになることを目標としています.

そしてそれは超かんたんです.びっくりするぐらい簡単です.ですので記事にしました.

では行きましょう.

下準備

VRChat SDK

  1. VRChatのWeb版のDownloadをクリックしてSDK等をダウンロードするページを開きます.
  2. VRChat SDK3の「Download SDK3 - Avatar」をクリックしてアバター用のSDKをダウンロードします.

f:id:rapt_vrc:20210607193555p:plainf:id:rapt_vrc:20210607193550p:plain

SDK2と異なりSDK3ではアバターとワールドで利用するunitypackageが異なります. また,SDK2をすでにインポートしているUnityプロジェクトにはSDK3をインポートできないので注意してください.

Unity

UnityのバージョンはSDK2とおなじく2018.4.20f1です.

今までアバターをアップしたことがない場合は,事前にUnityを入れてください. 絶妙に長くなるのでそれらの手順は割愛します.

  1. Unity Hubなどをつかって新しいプロジェクトを作成してください
    • 名前は何でもいいです.私は「VRChat Avatar SDK3 PC Pre」にしました.
  2. プロジェクトが開かれたら,先ほどダウンロードしたSDK3のunitypackageをインポートしてください.

これで下準備は完了です

SDK2対応アバターをプロジェクトにインポートする

見出しのとおりですが,いつものようにSDK2対応アバターのunitypackageを「Import > Custom Package...」でインポートします.

f:id:rapt_vrc:20210607193639p:plain

UTS2やDynamic Boneなどが必要なアバターの場合は事前にそれらをインポートしておいてください.これはSDK3でも同じです.

この記事では拾い部屋氏のVVVV(シヴィー)を例として使います.

インポートは特に何か言われることなく終わると思います.

SDK2のときと同じようにアバターのprefabをシーンにドラッグアンドドロップして,アバターをシーンに出現させます.

f:id:rapt_vrc:20210607193621p:plain

特に見た目に破綻などはないはずです.もし破綻しているようならSDK以前の問題とおもわれます.そのunitypackageがSDK2でちゃんと動くことを確認してください.

SDK2に由来するComponentを削除する

Inspectorを見ると何やら黄色い三角形の警告マークがありますね. これはSDK2のVRC Avatar Descriptorです.

(複数あるが?という場合は,Dynamic Boneとかの関連パッケージのインポートを忘れてないか今一度確認を)

そしてその上に「Pipeline Manager (Script)」というのがありますね.これもSDK2由来です.

f:id:rapt_vrc:20210607193648p:plain

この2つをComponentの右上にある歯車マークをクリックしてRemove Componentしましょう.これでComponentは削除されます.

f:id:rapt_vrc:20210607193659p:plain

Pipeline Managerはなんか「(Removed)」ってなって残っていますが,削除されていますのでおkです.

SDK3のVRC Avatar Descriptorをつける

つぎにAdd Componentをクリックして,検索窓にVRCと打って,SDK3のコンポーネントを検索します.

そして「VRC Avatar Descriptor」を選択してアバターに追加します.

f:id:rapt_vrc:20210607193558p:plain

以下の写真のように色々追加されたらおkです.

f:id:rapt_vrc:20210607193603p:plain

SDK3の各種設定をする

実はもうSDK3に対応できたのですが,このまま上げると色々おかしいので調整をします.

目の位置 (View Posision)

VRC Avatar DescriptorのViewを開いて右側のEditを押します.

f:id:rapt_vrc:20210607193626p:plain

するとシーンのグレーのボールにギズモ(操作ハンドル)がつくと思います.

f:id:rapt_vrc:20210607193630p:plain

グレーのボールをちょうど目の間に配置します.アバターは左右対称なので,上下と前後を調整すればよいです.

こんな感じです.

f:id:rapt_vrc:20210607193611p:plain

最後に最初にクリックしたEditが緑色のReturnになっていると思うので,それをクリックして調整は完了です.

リップシンク (Lip Sync)

日本の一般的な人型アバターリップシンクがついているのでそれも設定しておきましょう.

VRC Avatar DescriptorのLip Syncを開いてAuto Detectをクリックします.

f:id:rapt_vrc:20210607193626p:plain

行儀のいいアバターならSDKが自動的にリップシンクをセットアップしてくれます.

f:id:rapt_vrc:20210607193723p:plain

こんな感じにModeが「Viseme Blend Shape」になってれば大丈夫です.

なってなかったら,とりあえずModeをDefaultに戻しておきましょう.たぶんリップシンクがうまく行ってないと思います.

f:id:rapt_vrc:20210607193705p:plain

SDKのControl Panelを設定する

SDK2と同じようにControl Panelを開きます.

すると何やらエラーや警告が...

f:id:rapt_vrc:20210607193644p:plain

この写真よりもひどいことになっていても多分大丈夫です.重要なのは一番上の「Automatic lightmap generation...」というのと「Switch Build Target to...」の下の「This avatar has mipmapped textures...」です.

これらは「Auto Fix」というボタンがついているためクリックするだけでおkです.

クリックするとライトに関するウィンドウが出てきますが,バツで消してしまって結構です.

f:id:rapt_vrc:20210607193653p:plain

これで一番下の「Build & Publish for ...」が押せるようになると思います.

f:id:rapt_vrc:20210607193617p:plain

アップロード

「Build & Publish for ...」を押してアップロードを開始します.

f:id:rapt_vrc:20210607193718p:plain

あとはSDK2と同じですね.

おわりに

重要なのはSDK2のComponentを削除して,SDK3のものに入れ替えることです. これでSDK3対応になります.

ね,簡単でしょ?

冗談はさておき,役に立つことを願います.