Unity2018から2019への移行(公式ドキュメント翻訳)
二番煎じかもしれない。出涸らしかもしれない。
翻訳って権利微妙なので将来的に非公開になるかもです
非公式の試訳(しかも専門家ではない)なので、この訳について発生した問題の責任を負うことはできません。
どうか必ず、原文を参照しながら自己責任で作業するようお願いします。
コメント等で指摘していただいた部分は直すよう努力します。
参照元の原文はこちら。
Contents
2018 LTSから2019 LTSに移行する
プロジェクトをUnity 2018から2019に移行するのは思っているほど難しくないです。ここにステップ毎を詳細に記したガイドがあります。
もし新しいプロジェクトを作ろうとしているのであれば、下のガイドはUnity HubとUnity 2019.4.xをインストールするまで行って、SDKを選ぶを参照してください。
Unity2019へのVRChatのアップグレードのより詳細は、ブログを参照してください!
Unity Hubをインストールする
Unity Hubは、複数のUnityバージョンをシームレスにインストールし、作業するための[Unity本体とは]切り離されたアプリケーションです。まだ使っていないなら、本当に使うべきです。
- Unity Hubを手に入れる – Unityをダウンロードのページから、Unity Hubをダウンロードします。緑の「Download Unity Hub」をクリっすしてUnity Hubだけをダウンロードします。
- Unity Hubをインストールする – ダウンロードしたインストーラを起動します。インストールされたら、Unity2019.4.xを入れる準備完了です。
Unityの公式ドキュメントで、Unity Hubについてさらに詳細を確認できます。
Unity 2019.4.x LTSをインストールする
Unity Hubがインストールされたので、正しい版のUnity 2019をインストールする準備完了です!
Unityをインストールするには、現在のUnityのバージョンのページに行きます。そこで、現在のUnityのバージョンがいくつなのかわかります。Unity Hubを通じてインストールするために[移動先の]指示に従ってください。
正しいバージョンが見つからない場合は、現在のUnityのバージョンドキュメントの直接ダウンロードの項を参照します。インストールしたものを手動でUnity Hubに追加する必要があることを気に留めておいてください。
プロジェクトの移行準備をする
インストールしたばかりのUnity 2019への移行にすぐ取り掛かる前に、以前の版のUnityを使ってプロジェクトの準備をする必要があります。
ステップ1:プロジェクトをコピーする
Unity 2018から古いプロジェクトを移行する最初のステップは、プロジェクトフォルダ全体を複製して新しい名前をつけることです。「-2019」を追加するといいと思います。
古いプロジェクトをUnityPackageとして出力しないでください。永遠に時間がかかり、他のエラーも起こします。
移行前にバックアップを取っておくのは重要です!新しい版のUnityにプロジェクトをインポートすると、古い版に差し戻すのは非常に難しい/不可能になります。私たちはあなたのプロジェクトを元に戻す手助けはできません。
「-2019」版のフォルダを作ったら、それをUnity Hubに追加します。
プロジェクトをバックアップしてください。
プロジェクトのコピーを作るのをスキップしないでください。最初にバックアップをすることなく、プロジェクトをアップグレードしようとしないでください。
アップグレード作業にそう苦労はしませんが、修復不能なエラーの可能性を孕みます。こうして失われたプロジェクトを回復するお手伝いはできません。
ステップ2:SDK2もしくはSDK3-AVATARSのプロジェクトなら、アップグレード前にSDK2019を導入する
このステップは、SDK3-AvatarsとSDK2にのみ適用されます。SDK3-Worldsのプロジェクト(Udonを用いたワールドなど)の場合、下記の移行作業のセクションを飛ばしてください。新しいSDKはアップグレード作業が終わった後に導入します。
SDK3-AvatarsやSDK2を使っているプロジェクトを移行しようとしているなら、まだ2018を実行している状態で新しい2019のSDKを導入してください。インポート後にいくつかのエラーが出ることがありますが、無視して構いません。これが終わったらUnityを閉じてください。
SDKを選ぶのページに掲載された場所で、SDKは入手可能です。.unitypackageを普段通りにプロジェクトに導入して、古いファイルを全て上書きしてください。
ステップ2.5:その他の準備
空のSceneを作る
この修正はUdonSharpを使っているプロジェクトに影響します。ので、もしUdonSharpを使っているなら、飛ばしてはいけません!
念には念を入れて、新しい空のSceneを作ってそれを開いたままプロジェクトを保存しておきます。こうすることで、アップグレード後にUnityを開くとき、大量の製作物が入ったSceneではなく、空のSceneが最初に読み込まれるようになります。全てのアセンブリがコンパイルされる前にUnityがSceneを開こうとして、スクリプトが書かれたビヘイビアが参照先を失って壊れることを防ぐためにこうします。[ごめんなさい。専門用語の理解が不十分です]
Fileのメニューから、New Sceneを選びます。そうしたら、Sceneとプロジェクトを保存します。Unityを閉じて2019にアップグレードする直前にこれを行ってください。
Cloth[を保持する]
プロジェクト内の全てのClothに関して、次のようにしてください。
(アバターでもワールドでも)プロジェクト内の何らかがClothのコンポーネントを持っている場合、それはプロジェクトをアップグレードすると失われます。しかし、アップグレード前にいくつかステップを踏むことで元に戻すことができます。
Clothコンポーネントがある全てのSkinnedMeshRendererについて、Meshのスロットを見つけ、Projectのタブを開き、メッシュボックスの白いエリアをクリックしてプロジェクトアセット内でメッシュがハイライトされるようにします。FBXモデル内のメッシュになっているかもしれません。ハイライトしたメッシュを選択し、Ctrl-Dでメッシュアセットを複製します。次に、右上の…をクリックしてCopy componentを選択し、その後Remove componentします。SkinnedMeshRendererのメッシュスロットに複製したメッシュをドラッグし、Clothコンポーネントを付け直し、そして先ほどコピーしたcomponent valuesをペーストします。
こうしておくと、clothはアップグレードで失われません。
今後この問題を解決するためのコミュニティ製ツールが出てくるかもしれません。
[ちなみに]これは、Unity 2019でのFBXインポータについての変更が原因です。
ステップ3:プロジェクトをUnity 2019にアップグレードする
よし!準備はできました。Unity Hubと正しいバージョンのUnity 2019をインストールし、[3.0-Avatarsと2.0から移行する人は]2019 SDKにアップグレードし、その他の準備も済ませたなら、移行の準備完了です。
3つのSDK(SDK2、SDK3-Avatars、SDK3-Worlds)はとても似ています。SDK3-Worldsだけが違います。ステップに注意して従ってください。
はい、そこの君。そう、君だよ。このページを読み飛ばしてアップグレード前にするべきプロジェクトの移行準備をするをスキップした人。戻ってステップ通りにやってきなさい、さもないと下でやることは君のプロジェクトをどうしようもなくぶち壊すし、私たちはそれを直す手助けはできませんよ。しつこくて申し訳ないけど、君に製作物全てを失ってほしくないんだ。ゆっくりでいいからステップ通りにやってくれ。
!移行中に、SDKのタイプを変えないこと
プロジェクトを移行中、前のUnityバージョンと同じSDKの種類を使ってください。
- Unity Hubにプロジェクトを追加する。Unity HubのメインスクリーンでAddボタンを押し、準備したプロジェクトのコピーのディレクトリを探してください。
- プロジェクトを新しいUnityのバージョンで設定する。Unity Hubで、現在のバージョン[に書かれている版]をUnity Versionに選択していることを確かめてください。
- プロジェクトを開く。Unity Hubでプロジェクトをクリックして開きます。
4a. プロジェクトを新しいUnityのバージョンにアップグレードするかという表示がでます。Confirm[確認]を選びます。[各表示については元サイトを参照]
4b. プロジェクトをAsset Database Version 2でアップグレードするかという表示が出ます。Yesを選びます。
4c. プロジェクトを適合しないエディターで開こうとしています、という警告が出る場合があります。Continueを選びます。
4d. APIのアップデートが必要です、という警告が出る場合があります。I made a backup, go ahead.[バックアップは取ってあるので、続行してください]を選びます。
4e. インポートにはしばらく時間がかかる場合があります。Unityがアセットを再導入しプロジェクトをUnity 2019用にアップデートします。辛抱強く待ってください。大きなプロジェクトの場合30分以上、HDDを使っている場合はそれ以上にかかる場合もあります。プロジェクトが開いたら、続きへ進めます。
ところで、こういうことなので、VRChat用の製作物は1つ2つの巨大なプロジェクトではなく、整理して分割しておいた方がいいですよ。
- Sceneを開きます。Unityの準備ができたら、Sceneを開いて内容にアクセスできるはずです。
- SDK3-Worldsパッケージをインポートします。SDK-Worldsのプロジェクトをアップグレードしている場合、準備段階で新しいSDKを入れるのを飛ばしたはずです。2019 SDKをインポートして古い2018 SDKを上書きしてください。
Quest用プロジェクト
Quest用のプロジェクトをアップグレードしている場合、いくつかの問題が発生すると思います。下の「ライブラリフォルダをクリアする」を確認してもらえると、助けになるはずです。
トラブルシューティング
ライブラリフォルダをクリアする
Libraryフォルダが正しく再構成されないSDK2のバグを把握しています。Libraryフォルダは単に一時ファイルなので、解決は簡単です。
Libraryフォルダを削除するには、ただプロジェクトフォルダのところに行ってLibraryという名前のフォルダを削除すればよいです。Assets内ではなく、プロジェクトのルートフォルダにあるはず(Assetsの「隣」)です。
あと、2019に移行する前にLibraryフォルダを削除するのは得策ではないので、やらないでください。上の5ステップをやって、それでもまだ問題があるときだけやってください。
SDK2のライブラリ削除プロセスはSDK3についても有効ですが、必要な場合以外はやらないでください。SDK3は移行を[SDK2より]相当上手くやるので、このステップはいらないはずです。
コンソール内に死ぬほどエラーがあります!
落ち着いて!重要なエラーは普通、最初に目にするものです。Clearを何回かクリックして、最初(一番上)[のエラー]が何なのか見てください。おそらく、VRChat SDKコンポーネントを指摘しているものではないはずです。大抵、サードパーティのコンポーネントやスクリプトの産物です。
それらのコンポーネントを取り除くか、入手元からアップデートしてください(もしくはその両方)。ツールのアップデートには時間がかかることを覚えておいてあげてください。
移行と再アップロードってする必要あるの?
場合によります。今回に関しては、再アップロードが必要なものはそこまで多くありません!下記がワールドやアバターの移行・再アップロードをするべきか考えるのに考慮するべき項目です:
シェーダー
VRChatのUnity 2019アップデートを皆様にとって簡単なものにするために多大な努力がなされました。Unity 2018のコンテンツはアップデート前と同じく正常に見えるはずです。とはいえ、幅広い種類のシェーダーがあるので、全部が以前と同じように動くとは保証できません。シェーダーについての問題があれば、常にコンテンツを移行して再アップロードすることが私たちからのアドバイスです。
テレイン[Terrain]
Unity 2019は、またもTerrainの働き方にいくつか変更を加えています。特に、シェーダーとVertex Shadingについてです。ビルトインのシェーダーでUnity Terrainを使っているなら、大丈夫なはずです。Unity Terrainやシェーダーについて何か特別なことをしていたり、vertex-based shadingを使っているなら、再アップロードの必要があるかもしれません。
他の問題
2019でコンテンツを試して問題が出た場合、どうかバグとして報告する前に再アップロードを試してみてください。古いコンテンツに関して、私たちには治せないけど、再アップロードで直せるものはたくさんあります。
アップロードしたら、今のコンテンツは上書きされる?
いいえ!バージョン毎にアセットは保持されます。同じIDをアップロードしても、2018のコンテンツはそのままです。2019版のVRChatにいるとき、可能なら2019のコンテンツが取得されます。特に何も変わったところはありません。