バーチャル3Dクリエイター神部まゆみです(*^-^*)
この記事は、VRChatワールドでエラーが出たので解決したメモです。
Assembly ‘Packages/com.vrchat.base/Runtime/VRCSDK/Plugins/VRC.SDK3.Dynamics.Contact.dll’ will not be loaded due to errors:
Reference has errors ‘VRCSDKBase’.
とか
Assembly with name ‘com.vrchat.core.vpm-resolver.Editor’ already exists (Assets/VRCexamples-image-loading-main/Packages/com.vrchat.core.vpm-resolver/Editor/com.vrchat.core.vpm-resolver.Editor.asmdef)
ってエラーが大量に出ましたΣ(゚Д゚)
動作確認した最新バージョンはunity2022.3.22、VRChat SDK3.8.2です。
しかしこのエラーはバージョンが関係するエラーではなかったので、どのバージョンでも出ると思います。たぶん。
こんなエラーがΣ(゚Д゚)
VRChatワールドをいじろうと思いunityを開いたらこんなウィンドウが出ましたΣ(゚Д゚)

とりあえずIgnore(無視)して開いたところこんなにたくさんのエラーたちがΣ(゚Д゚)
消去を押しても消えません(~_~;)

Assembly ‘Packages/com.vrchat.base/Runtime/VRCSDK/Plugins/VRC.SDK3.Dynamics.Contact.dll’ will not be loaded due to errors:
Reference has errors ‘VRCSDKBase’.Assembly ‘Packages/com.vrchat.worlds/Runtime/VRCSDK/Plugins/VRCSDK3-Editor.dll’ will not be loaded due to errors:
Unable to resolve reference ‘UnityEditor.UI’. Is the assembly missing or incompatible with the current platform?
Reference validation can be disabled in the Plugin Inspector.
Unable to resolve reference ‘UnityEngine.UI’. Is the assembly missing or incompatible with the current platform?
Reference validation can be disabled in the Plugin Inspector.…(中略)
Assembly with name ‘com.vrchat.core.vpm-resolver.Editor’ already exists (Assets/VRCexamples-image-loading-main/Packages/com.vrchat.core.vpm-resolver/Editor/com.vrchat.core.vpm-resolver.Editor.asmdef)
仮説:SDK更新したからそれが原因?
そういえばCreator CompanionでSDKを更新したような…?
SDK更新だけしてちょっとだけ開いて、3日くらい開いてなかったような気がする。
心当たりはそれくらいかなぁ…。
【ダメだった】対策1:Creator CompanionでSDKを一度消してから入れ直す
↓以前エラーが出た時は大抵これで直ったからいけるかな…?
VRChat SDK – Worldsの横のマイナスを押してSDK削除、プラスを押して入れ直す。
あーでもまたこの画面が出てしまった…。ダメか…(-_-;)


【ダメだった】対策2:SDKのバージョンを下げてみる
SDK 3.6.1だけど3.6.0にしてみるか…。
これがダメなら3.5.2に戻してみます。
結構時間かかるっぽいです。
これで戻りましたね。


ん-でもダメでした。


3.5.2に変えてもダメでした。
モームリ!(´;ω;`)
対策3:Enter Safe Modeで入って地道にバグを潰す
ここまで頑固にIgnore(無視)してきたわけだけど、大人しくEnter Safe Modeで入ってみます。


これで入ると大量のエラーのほとんどは黄色い警告になっていて、消去を押しても消えないエラーは二つだけになってました。


Assembly with name ‘com.vrchat.core.vpm-resolver.Editor’ already exists (Assets/VRCexamples-image-loading-main/Packages/com.vrchat.core.vpm-resolver/Editor/com.vrchat.core.vpm-resolver.Editor.asmdef)
Assembly with name ‘com.vrchat.core.vpm-resolver.Editor’ already exists (Packages/com.vrchat.core.vpm-resolver/Editor/com.vrchat.core.vpm-resolver.Editor.asmdef)
優秀なChatGPT先輩に聞く
もはや頼れるのは彼しかいない…。ChatGPTの靴の裏を舐めてでもエラーを解決したい。
どうかお願いします!なんでもしますから!( ;∀;)


このエラーは、同じアセンブリ名が2箇所で定義されているために発生しています。これにより、Unityがどのアセンブリを使用するべきか混乱しています。この問題を解決するためには、重複しているアセンブリ定義を削除する必要があります。
以下の手順を試して、問題を解決してください:
プロジェクト内の重複アセンブリの確認:
プロジェクトビューで com.vrchat.core.vpm-resolver.Editor.asmdef を検索し、どの場所に存在するか確認します。
重複アセンブリの削除:Assets/VRCexamples-image-loading-main/Packages/com.vrchat.core.vpm-resolver/Editor/com.vrchat.core.vpm-resolver.Editor.asmdef ともう一つの重複している場所のどちらかを削除します。
一般的には、Packages フォルダ内のものを保持し、Assets フォルダ内の重複を削除するのが良いです。
パッケージの再インポート:Unityエディタのメニューから Assets > Reimport All を選択し、すべてのアセットを再インポートします。
Unityエディタの再起動:Unityエディタを一度閉じてから再起動し、エラーが解消されているか確認します。
アセンブリ定義ファイルのチェック:プロジェクトの Packages フォルダ内のアセンブリ定義ファイルが正しく設定されているか確認します。アセンブリ定義ファイルは、他のアセンブリと競合しないように設定されている必要があります。
これで問題が解決しない場合は、詳細なエラーログを提供していただければ、さらに具体的なサポートが可能です。
エラーをクリックすると該当ファイルに飛ぶので、これを消滅させればいいのかな?
んーダメだ…なんかエラー増えたしΣ(゚Д゚)
仕方ないのでゴミ箱から元に戻しておきます…。


セーフモードだからか?戻しただけだと直らなかったので、セーフモード終了してからアセットフォルダ内で右クリック ⇒ すべてを再インポート で直した。
【解決】VRChat公式から落としたサンプルワールドをAssetsフォルダに入れてしまったのが原因だった
やっていて思い出したけど、画像を読み込ませるサンプルワールドをダウンロードして、そのままAssetsフォルダに放り込んでおいたんだった。
↓のページにあるやつ。

見たらAssetsフォルダの中に更にAssetsとPackagesが入ってるじゃん…これはダメだ。


これだとプロジェクトフォルダの中に更にプロジェクトフォルダが入っている状態。まさかこんな初歩的なミスとは…。
このサンプルの正しい使い方はAssetsフォルダに放り込むことではなく、↓Unity Hubでaddプロジェクトすることでした。プロジェクトフォルダごと配布されていたんだもの。


というかVRChatワールドのプロジェクトはSDKが絡んでくるから、Creator Companionでプロジェクト追加してSDKのアップデートもしたほうが良いと思う。


削除したら直った
解決策は削除する。これだけw


消すまでにかなり時間かかったけど解決しました。これでエラー0になった。


おわりに
はぁ解決して良かった。
サンプルにまさかこんな罠があるとは…。
というかとりあえずAssetsフォルダに放り込むのが習慣化していて、プロジェクトごと配布されているのによく確認しなかったことが原因ですね(~_~;)
まさか同じエラーが出ている人はあんまりいないと思うけど…|д゚)
もしいるのであれば、最近プロジェクトに入れたファイルのなかにAssetsフォルダやPackagesフォルダが含まれてないか確認したほうがいいでしょう。
それはプロジェクトごと配布されてるやつなので、そのままAssetsフォルダに突っ込んでもファイルが重複する可能性があるのでダメですよ!
Unity Hubからプロジェクトの追加をして使いましょう。
まぁ私のような愚か者はそんなにいないか…?(笑)。
しかしここに一人いるのだから、一人いたら100人はいると思う。多分w
誰かの参考になれば幸いです(*^-^*)