コンテンツにスキップ

ワールドプロジェクトを VRCSDK2 から VRCSDK3-Udon に強制的にアップデートする方法

VRCSDK2とVRCSDK3は当然互換性はありません。したがって、VRCSDK2からVRCSDK3へ無理やりアップデートするとSDK2で作られたギミックは全て使用できません。とはいえ、セットアップ済みのライトデータやプレハブ、コライダーの設定などはUnity標準のものなのでそのまま使えるものがほとんどです。 この記事では、ギミックは全て再設定を覚悟したうえで、プロジェクトのVRCSDKを2から3-Udonにアップロードする方法を書きます。

執筆段階での環境

Unity 2018.4.20f1

VRCSDK2 : VRCSDK2-2020.10.28.15.58_Public

VRCSDK3 : VRCSDK3-WORLD-2020.10.28.15.57_Public

安全な方法

使用しているアセット、シーンデータを全てUnityPackageにエクスポートして、VRCSDK3でセットアップした新たなプロジェクトファイルでインポートすれば、一応VRCSDK2からVRCSDK3へ移行できます。このほうが後述する方法よりも確実です。
この方法の欠点は、プロジェクトが巨大な場合UnityPackageのエクスポートに時間がかかる、またはGitでプロジェクトをバージョン管理していて、プロジェクトが変わってしまうと面倒という場合です。筆者の場合後者の理由でプロジェクトはそのままでVRCSDK2からVRCSDK3にアップロードしました。
逆にこのような理由がない限りはUnityPackageを介する方法をおすすめします。

アップデート手順

必ずバックアップをしてから行ってください!! 当記事を参考にアップデートに失敗し、プロジェクトが壊れても自己責任でお願いします。

1. VRCSDK2の削除

プロジェクトからVRCSDK2のファイルを削除します。プロジェクトは閉じた状態で、エクスプローラーから

Assets/VRCSDK
Assets/VRCSDK.meta

Assets/VRChat Examples
Assets/VRChat Examples.meta

の4つを削除します。

2. Scripting Define Symbolsの削除

プロジェクトをUnityで開きます。VRCSDK2に入っているVRCWorldなどのプレハブや、コンポーネントはMissing状態になると思います。先に削除しておくとよいです。

Edit->Project Settings...->Player->Other Settingsの、Scripting Define SymbolsVRC_SDK_VRCSDK2と入力されていると思うので削除します。 Postprocessing Stack v2など、インポートしているアセットによってはそのシンボルもありますが、こちらは削除しないようにします。

3. VRCSDK3のインポート

ここまで完了したら、VRCSDK3をインポートします。 インポートが完了したらSDK3へのアップデートは完了です。

あとは壊れてしまったギミックを頑張ってUdonで再実装しましょう・・・。

VRCSDK3アップデート作業で役に立つエディタ拡張

MomomaTools:MissingReferenceFinder

開いているScene上のSDKアップデート時にMissing状態になったオブジェクトを調べる際に便利。ただしこのエディタ拡張は、スクリプトのMissingは検出しないようだった。また、Missing Prefabなども検出しない。

MissingScriptFinder

【Unity】Missing なコンポーネントを検索できる「Missing Scripts Finder」紹介
https://baba-s.hatenablog.com/entry/2019/01/09/160000

こちらはスクリプトのMissingを検索してくれるエディタ拡張。機能しなくなったVRC_Triggerなどを探索する際にとても便利。