もくじ
先日VRChatがアップデートでUnity2018に対応し、それに伴いソフトウェア開発キットもVRCSDK2/VRCSDK3にそれぞれアップデートされました。
公式で推奨されている方法の簡易的な移行方法を纏めましたので、少しでも参考になればと思います。
0. 事前準備(各種ダウンロード)
事前に「Unity 2018.4.20f1」と「VRCSDK2」をダウンロードしておきます。
UnityHubを使用している場合はVRChatの公式ドキュメントの「Current Unity ertion」のページから「click here to install the current version of Unity via Unity Hub」をクリックしてダウンロードします。
VRCSDK2はVRChatの公式ダウンロードページからダウンロードします。
VRCSDK3はUdon用ですので、Udonを使用しないプロジェクトや「アバター」のプロジェクトはVRCSDK2をダウンロードします。
1. Unity2017のプロジェクトを複製
まず、Unity2017で作成したプロジェクトを【すべて】複製します。
複製したプロジェクトは接尾辞に「_2018」を付けるなどして区別しましょう。
プロジェクトが入っている親ファイルごと複製すると楽です。
2. 複製したプロジェクトは一旦そのまま
名前を変えた新プロジェクトの【中身】は弄らずに、一旦そのまま置いておきます。
3. Unity2018で複製したプロジェクトを開く
恐れずに、複製した新プロジェクトをUnity2018で開きます。
UnityHubを使用している場合は「Unity バージョン」のプルダウンを「Unity 2018.4.20f1」に変更しておきます。
※そのままだと以前の「Unity 2017.4.28f1」で開いてしまいます。
また、UnityHubにプロジェクトが表示されなくなった場合は右上の「リストに追加」ボタンから複製した新プロジェクトのフォルダを選択します。
4. 確認画面が出るので確認して待つ
このような警告画面が出たら「確認」を押して、Unity2018で起動してください。
続行すると、パッケージマネージャのアップグレードや再コンパイルなどが行われます。
この処理にかかる時間はプロジェクトの規模(ファイルサイズ)やパソコンの処理能力によって前後しますが、それなりの時間を要する場合があります。
※参考:120MB程度のキャラクタープロジェクトファイルをi9-9900K/32GBで1分程度。
5. VRC_Trigger類の確認
ワールドの場合は「VRC_Trigger」などのコンポーネントが壊れてないか疎通確認します。
6. 空のシーン(Scene)を作る
メニューから「File>New Scene」を選択し、空のシーンを作成します。
「Ctrl+S」または「File>Save」で空のシーンを保存します。
使用しないので名称は適当でOKです(emptyやtempなど)。
このようにHierarchyの表示が作成した空のシーンになっていれば大丈夫です。
7. Unity2018を閉じる
ここまで出来たらUnityを閉じます。
右上の[×]ボタンでもいいですし、「File>Exit」でも大丈夫です。
8. 古いVRCSDKを削除する
先ほど開いたプロジェクトから削除するファイルは下記の4つです。
- プロジェクト名\Assets\VRCSDK
- プロジェクト名\Assets\VRCSDK.meta
- プロジェクト名\Assets\Plugins\VRCSDK
- プロジェクト名\Assets\Plugins\VRCSDK.meta
順番に説明していきます。
a. Assets直下の「VRCSDKフォルダ」の削除
先ほどUnity2018で開いたプロジェクトのファイルを開きます。
その中にある「Assets」フォルダを開き「VRCSDKフォルダ」を削除します。
b. Assets直下の「VRCSDK.metaファイル」の削除
次は「メタファイル(.meta)」を削除するのですが、フォルダの表示設定によっては「隠しファイル/隠しフォルダを表示しない」設定になっていることがあります。
その設定を確認します。
「Windowsキー」を押下して「フォルダ」と入力します。
「エクスプローラーのオプション」というコントロールパネルの項目が出てきますので、そのままEnterを押下するか、「エクスプローラーのオプション」をクリックしてください。
「表示」タブ内の「詳細設定:」に「ファイルとフォルダーの表示」という項目があり、その中の「隠しファイル、隠しフォルダー、および隠しドライブを表示する」を選択します。
その後、「適用」または「OK」を押下することで.metaファイルなどが表示されるようになります。
c. Pluginsフォルダ内の「VRCSDKフォルダ」の削除
d. Pluginsフォルダ内の「VRCSDK.metaファイル」の削除
最後に「Assets>Plugins」にある「VRCSDKフォルダ」と「VRCSDK.meta」を削除します。
ここまでで、古いファイル類の削除は完了です。次のステップに進みます。
9. 再びUnity2018で開く
削除が終わった新プロジェクトを再びUnity2018で開きます。
ここで注意していただきたいのですが、指示があるまで必ず「6.で作った空のシーン(Scene)のまま」作業を進めてください。
メニューの「Assets>Import Package>Custom Package」から、最新のVRCSDK2のUnityPackageを選択します。
「Import Unity Package」のダイアログが表示されますので「Import」をクリックして、インポートを開始します。
10. 自身のシーン(Scene)を開く
インポートが終わったら、そのプロジェクトで作ってた元々のシーン(空のシーンを作る前に開いていたシーン)を開きます。
メニューから「File>Open Scene」を選択して既存シーンを開くか、エディタ上の「Projects」タブにある「Assets」に表示されているシーンをダブルクリックして開きます。
11. 動かす(【▶】Playする)
シーンが開けたら、中央上部にある【▶】ボタンを押して、シーンを再生します。
動き始めたら、なにも動かさずにそのまま【■】ボタンでストップさせます。
【!】コンパイルエラーが出たら
VRCSDK2のバージョン「2020.04.03.13.11」ではこのエラーは発生しませんでしたが、この記事を執筆している時点での最新バージョン「2020.04.09.10.48」において発生するようです。
シーン上に「All compiler errors have to be fixed before you can enter playmode!」と出た場合はコンパイルエラーになっていますので、エラーをすべて解消する必要があります。
「StripPostProcessing」のエラーが出たら
Assets/VRCSDK/Dependencies/VRChat/Scripts/ShaderStripping/StripPostProcessing.cs(10,30): error CS1644: Feature `expression bodied members’ cannot be used because it is not part of the C# 4.0 language specification
このようなエラーが出た場合は、次の操作が必要になります。
メニューから「Edit>Project Settings」を選択します。
「Player」項目の「Other Settings」を開いて「Configuration」内にある「Scripting Runtime Version*」を「.NET 4.x Equivalent」に変更します。
Restartするか確認されますので「Restart」で再始動させます。
再始動が始まったら再コンパイルされますので、少し待ちます。
最初はAndroid SDKの位置を(場合によっては何回か)聞いてきますが、無視して大丈夫ですので×ボタンでエクスプローラーを閉じてください。
エラーが出ていなければアップロードできる状態ですので「13」へ進んでください。
12. Unityを再起動する
11でエラーが出なかった場合は、上記のようにUnityを再起動するかどうか聞かれますので「Restart」でUnityを再起動します。
13. アップロードする
メニューから「VRChat SDK>Show Control Panel」を選択し、コントロールパネルを表示させます。
VRChat2017までは「Streaming Mip Maps」の項目が無く、VRChat2018ではこのミップマップにチェックが入っていないとアップロード出来ない仕様になっていますので、「Auto Fix」するか、個別にテクスチャのInspectorウィンドウにある「Advanced」から「Streaming Mip Maps」にチェックをします。
※アップロードするアバターに使われているシェーダーで使用しているテクスチャすべてにチェックが入っている必要があります。
「Streaming Mip Maps」へのチェックが終わりましたら、再度メニューから「VRChat SDK>Show Contorl Panel」を選択し、コントロールパネルを開きます。
エラーが出ていなければ「Build & Publish」でアップロードできます。
お疲れ様でした。
Tips: Future Proof Publish
「VRChat SDK」の「Settings」にある「Publish」の「Future Proof Publish」は、今後アバターをパブリック化する予定が無ければチェックを外しておいて構いません。
これを外すことでアバターのアップロード時間を短縮することができます。