ワクワクするアレの副反応で一日のたうち回っていました。Najikoです。
Table of Contents
2018から2019へ
先日ついにVRChatで扱っているUnityのバージョンが2018.4.20f1から2019.4.29.f1に更新されました。ベータテスト時は4.28だったりもしましたが最終的には4.29.f1になりました。
こちらの移行ガイドを参考にすれば、2018で作ったプロジェクトを引き続き2019のプロジェクトとして使用することが出来ます。(散々言われていますが、バックアップだけは絶対に取りましょう)しかし、身の周りでは2019移行に伴って情報が錯綜している様子がちょいちょいみられたので、その辺のちょっとした疑問についてQ&A形式で勝手にまとめてみることにします。
Q.2018関係のものはもう使えなくなるの?
A.使えます。
2019に移行したからといって、2018でアップロードしたアバター、ワールドが使用できなくなることはありません。現在は公式サイトで配布されていませんが、2018で使っていたSDKを持っている場合はそれを使ってアバターやワールドをアップロードすることもできます。極端な話、2017ビルドのものも使用不能にまではなっていません。ただし、VRCSDKが2.0から3.0になった時と同様、今後旧バージョンのVRCSDKが更新されることはありません。よって、新たに(または更新して)アバターやワールドををアップロードする際は2019でアップロードすることをお勧めします。
なお、それほど頻繁ではありませんが2018で既にアップロードされているものに不具合が生じる場合は2019であげ直す必要があります。具体的には、ワールドのシェーディングやUDONスクリプトの一部が該当することがあります。
Q.プロジェクトを移行すると色々壊れる?
A.ほとんど壊れません。
移行の情報が出た際は「マテリアルがテクスチャの参照エラーを起こして全部設定し直しになる」「既存のコンポーネントはほとんど使えなくなる」「使えなくなるシェーダーがある」「ギミックがすっかり機能しなくなる」などいろいろなことが言われていましたがほとんどの場合は問題ありません。
正しい方法で移行すればほとんどのものはそのまま使えます。ただし、一部コンパイルエラーを起こすものがあったりするのでそちらは2019に対応した最新版があればそれに更新するか、なければ移行後にプロジェクトから削除して下さい。有志が製作したスクリプトや拡張エディタなどはそのまま使えるか、ダメな場合でもその多くが既に2019に対応しています。
Q.Clothは死んだの?
A.2018と挙動は違うけど使えます。
これについれは一番誤解が多そうなところです。まず、Clothコンポーネントが使えなくなったわけではありません。clothコンポーネントは以前と同じように使用することが出来ます。ただし、移行時にガイドに従った手順を踏まなければEdit constraintsで設定されたピン(ウェイトペイントみたいなやつ)がバラバラになり正しく動かなくなります。つまり、正しく移行すれば見かけはとりあえず動きます。
ただ、ClothはUnity公式すら正しく挙動を把握していないといわれる不可思議なコンポーネントで、さらになんと2019で仕様が変わりました。具体的にはリンク先の話を読んでいただければわかるのですが、「fpsが下がると動きが遅くなる」「ウェイトによってメッシュが伸びることがある」というのが2018の頃と違う点です。そこに目を瞑れば、コンポーネントとして全然機能していない、ということはないのですが、いずれにせよ素人が手出ししても手の施しようがないので可能であればVRC側で修正が入ってほしいな、というところです。
Q.2019にするとなんかいいことあるの?
A.なくはないです。
先述した通り、現在公開されているVRCSDKは全て2019向けのもので、2018以前のVRCSDKは更新されません。よって、それらはサポートが受けられず、VRC側の仕様変更などに対応できなくなる可能性があります。それ以外で2019にしていい点を列挙すると、
・アップロード、プラットフォーム変更にかかる時間が2018より短い
・アップロード時に暗号化処理がかかりリッピングされにくくなった(ソース不明。おそらくですが英語のリリースノートに書いてあります)
・2018では対応しておらず使えなかったアセットが使える
といったことが挙げられます。今後、PhysicsBoneの実装などいいことは増えていくと思われます。
Q.UIが黒いんだけど直せないの?
A.白くできます。
こちらを参考にしてください。一般的に黒い方が目に優しいようですが、お好みで白くもできます。ただ、各種アイコンなどは2018から見た目が大きく変わっているものが多いです。
Q.Normalized Timeがない!
A.名前がMotion Timeに変わりました。
なんででしょうね。
Q.Inspectorが開かないんだけど……
A.最新のVRCSDKを使いましょう。
更新されたばかりの頃のVRCSDK3ではよく起こるバグのようです。最新のVRCSDKを使用すれば直ります。ただし、プロジェクト内にコンパイルエラーを起こしているスクリプトがあると赤エラーを吐いて普通に開かなくなるので、その場合はプロジェクト内から当該のスクリプトを削除しましょう。
あとがき
とりあえず思いつくのはこんなところです。新しい仕様のものに触るのには勇気がいるし、避けられない更新とはいえ今までの知識がひっくり返されるのはストレスです。とはいえ、実際には一部を除いて巷で言われていたほど極端な変更点はなく、移行ガイドに従えばこれまで使っていたプロジェクトをまるっと移行することが可能なので、今のうちに慣れておくと後々役に立つかもしれません。では皆さん、よいVRライフを。わたくしはちょっと横になります。