見出し画像

【VRChat】ワールド制作時に必ず利用しているおすすめのツール群

2023/03/15 現在でも結構読まれているみたいなので、加筆修正しておきました。
2023/05/06 WCAの代わりになる拡張エディタをGPT-4に作ってもらえたのでプロンプトを置いておきました。

はじめに

今回の記事はワールド製作初心者?向けの記事です。
初心者に知ってもらいたいという意味では初心者向けなのですが、若干難しい内容が出てくるかもしれません。

普段私がワールド製作時に使っているツールについてのお話です。

中には必需品と化しているくらい効率が上がる便利なツールがあるのですが、説明が英語だったり、検索で探し出すのが難しかったりと、なかなか辿り着けない情報かなと思ったので、記事にしてみました。

お品書きは以下の通りです。
①VRWorld Toolkit
②一括圧縮ツールAssetCompresser
③World Create Assistant(WCA)
④VRchat Creator Companion(VCC)
---ここから有料unityアセットなので簡単に紹介します---
⑤Bakery
⑥ConsolePro
⑦MeshCombineStudio 2
⑧Object Placement Tool

では早速内容に参りましょう。
(記事内で下棒線が引かれているところはリンクになっています)

VRWorld Toolkit

これは必需品だと思っています。

これを使うと以下のようなことができます。
①ワールドのビルドサイズ(アップロードした時のサイズ)計測
②画像やモデル等の1個ごとのサイズ確認
③PostProcessingの自動設定
④シーンに使われている画像の一括圧縮
⑤プロジェクト設定のサポート
めちゃめちゃ便利です。

(2023/03/15 加筆
現在はVCC経由でImport出来るようになっていて、Boothからダウンロードしなくても良くなりました。)

使い方は簡単でimportすると、上のメニューに[VRWorld Toolkit]という項目が追加されるので、そこから色々選べます。1回アップロードすると情報が見られるようになります。

順番に説明していきましょう。

①ワールドのビルドサイズ(アップロードした時のサイズ)計測
VRChatにアップロードしたワールドのサイズをUnity上ですぐに確認することができます。

Build sizeはVRChat上でワールド入った時にロードする容量と一緒です

注意点としては、ビルドした時の情報をもとにしているので、ビルドする必要があります。

VRCSDKのbuildボタンを押して、アップロードするときのサムネイル等が出てくる画面まで行くと、ビルドされるのでその時点で見れるようになります。

②画像やモデル等の1個ごとのサイズ確認
これを使うと、ワールドの容量が大きい原因をすぐに突き止めることができます。Build Reportのタブに行くとみることができます。

ファイル名をダブルクリックすると、そのまま元のファイルがある場所をProjectタブで開いてくれるので、そのまま軽量化の設定を行うことができます。

またStatsを押すとジャンルごとの容量を見ることができます(圧縮前のサイズなので、ビルドサイズとは一致しないです)

③PostProcessingの自動設定

PostProcessingとは何ぞや?って方はネットに記事が色々転がってるので、調べてもらえばいいのですが、雑で簡単な説明をすると、PC版限定で使えるワールドを綺麗でエモくするフィルタです。

[VRWorld Toolkit]→[Post Processing]→[Setup Post Processing]で利用可能です。

VRCWorldやMaincameraやPostProcessing自体の設定など、手動でやろうとすると面倒で、上手く設定できずに諦める人もいるかもしれませんが、これは自動でやってくれます。

ただし、PostProcessingの項目ごとの設定は固定になっているので、自動で設定してもらった後に、お好みで設定をいじるのがいいでしょう。

④シーンに使われている画像の一括圧縮

②で見れる個別のワールド容量を見てもらえればすぐに分かると思いますが、大体のワールドはテクスチャの容量が大部分を占めます。

ディティールの細かいor巨大なワールドであるほど、贅沢にテクスチャを使っていることが多いので、全てのテクスチャを軽量化のために圧縮しようとするととても大変です。

それを一括にやってくれます。しかも関係のあるテクスチャだけ。
最高です。

[VRWorld Toolkit]→[Quick Functions]→[Mass Texture Importer]で利用可能です。

⑤プロジェクト設定のサポート

ワールドの設定について、アドバイスをくれます。
何も分からない人にとっては、一つの道標になってくれるのではないでしょうか。ものによってはAuto Fixを押すことでまとめて自動修正してくれます。

個人的にはBakery使用時に、ライト関係をEditor Onlyにしてくれるのとかが便利だなーと思っています。

一括圧縮ツールAssetCompresser

こちらのツールは画像だけではなく、音声・3Dモデルの軽量化も一括で行うことが出来ます。

画像圧縮といえば、先ほどご紹介したVRWorld Toolkitもできます。
そこで、VRWorld Toolkitの画像圧縮との比較ですが、それぞれの特色として
・VRWorld Toolkit
良い:シーンに使ってる画像限定で圧縮できる
良い:Aniso Levelを一括で変更できる
悪い:画像の種類別の解像度サイズ指定ができない
・AssetsCompressor
良い:画像の種類別に解像度サイズ指定ができる
良い:日本語UIで馴染みやすい上に、公式githubで用語説明してくれている
悪い:選択したフォルダごとなので、関係ない画像も圧縮してしまう
というのがあります。

個人的には両方使い分ける感じが良いのかなと思っています。
それにAssetsCompresserは画像に加えてモデルと音声も一括で圧縮できるので、入れといて損はありません。

World Create Assistant(WCA)

*現在は個人的に非推奨。理由はこの項目の一番下に加筆。

毎回公式ページを開いてWorld用のSDKを取ってきたり、Githubに行ってUdon Sharpを取ってきているそこのあなた。WCAを使いましょう。

WCAに関する記事はすでにあるので、こちらをありがたくリンクとして貼らせていただきます。

WCAのイチオシな機能は、Unityのアセットストアから既にダウンロード済みのアセットを一括でインポートできる機能です。これはマジで神。

ただ、この機能が使えるのは初回のプロジェクトセットアップ時のみで、あとからアセット追加したくても使えません(この機能が単体であるEditor拡張をずっと探してるんですけど見つかっていません。ご存じの方はご一報ください)

さて、ここからはちょっと変わった話をします。

WCAはUdon sharpや最初に紹介したVRWorld Toolkitを一括で入れてくれる神ツールなのですが、今後非推奨になる可能性があります。

大きな理由としてはVRChat公式で現在ベータ版として出されているVRchat Creator Companion(VCC)があるからです。

(2023/03/15 加筆
現状はUdon SharpやVRWorld Toolkitを入れる場合はVCC経由にしたほうがいいでしょう。WCAで入れてから、Migrateするのは無駄なリスクになると思います。単なるUnityアセットの一括インポートツールとして使うのが良いと思います)
(2023/05/06 加筆
ChatGPT4にお願いしたら拡張エディタ作ってもらえたので、完全にWCA要らなくなってしまいました。以下記事です。
https://note.com/watahumi_mina/n/na1bac6d73bf1)

VRchat Creator Companion(VCC)

恐らく大多数の人は気が付いていないのですが、公式ページのVRCSDKをダウンロードするところからVCCを入手できます。

VCCは公式で出している一括導入アプリ(exe形式)で、最新版のUdon Sharp(Githubにあるやつより新しいです)やVRCSDK、公式のUnity上シミュレーター(ClientSim)等を一括で導入してくれます。

既存のプロジェクトの移行(VCC内では『移行する』を意味する英単語のMigrateで表現されています)にも対応していて、数プロジェクトで試してみたのですが、特に問題なく移行してくれました。(とはいえ、念のためバックアップを取ることをおすすめします)
(08/31追記:ネストされたPrefabとPrefab variantを利用している場合Udonの参照を手動で直す必要があるようです。https://github.com/vrchat-community/UdonSharp/issues/58)

気を付けるべきところはClientSimを有効化するには上メニューの[VRCSDK]→[Utilities]→[ClientSim]でClientSimのウィンドウを出したうえで、[Enable ClientSim]にチェックを入れないといけないってところでしょうか?

あとは現状のVCC(Ver0.34)で古いUdon sharpが入ったプロジェクトをMigrateすると、問答無用で最新版のUdon Sharp(ver1.1)が導入されます。

VCCで最新版のUdon Sharp(ver1.1)をテストしているギミックがおそらく少ないため、Udon Sharpの最新仕様に対応していないギミックも見られました。
この記事執筆時点ではGithubの古いUdon Sharpも動いてそうなので、使えなくなるまではそっちを利用するというのも手だと思います。
(ちなみにWCAのUdon SharpはGithubの古いやつです)
(2023/03/15 加筆
現状は古いUdon SharpはMigrateしないと使えない状態になっていますので、Migrate時に古いUdon Sharp製のプログラムは壊れる可能性があることを覚悟したほうが良いです)

あとVRChat公式が書いてるプログラムもエラーを出して、Udon関係が動かなくなるケースがありそうな気配でした。プログラムちょっと分かる人じゃないとしんどいかもしれません。
(これは制作途中で発生し、根本的な原因が切り分けできなかったので、Cannyで報告はしていませんが)
(2023/03/15 加筆
このバグはこれ以来一度も遭遇したことないので、気にしなくていい気がします)

ただ、それらのデメリットを上回るメリットとして、Udonを高速で読み込むための仕組みが整備されていて、プレイを押した後再生されるまでの速度が圧倒的に早いです。

プレイを押してすぐに再生されるので、ClientSimでのテストが待ち時間なしででき、実装⇔テストの流れが非常にスムーズにできるのはかなりのメリットを感じました。

以上、WCA・VCCについて色々述べましたが、両方いいところがあります。なので、WCAで土台を作って、VCCでプロジェクトを整備するのが賢いんじゃないかなと思っています。

(2023/03/15 加筆・修正)
①WCAでVRCSDKとお好みのUnityアセットのみ導入する  
 (時間かかるので別のことをしたりしながらがいいと思います)
(2023/05/06 WCAの項で書きましたが、WCAの代わりになる拡張エディタをChatGPT4に作ってもらったので、そちらを使えば①はUnityアセット導入だけで良いです)
②適当にUnityアセットの競合を解決しておく
 (やり方はこの記事に書いてあります)
③VCCでプロジェクトを追加、Migrateを行い、VRCSDK・UdonSharp・各種ツール等を入れる。
④エラー等を確認し、問題なければ制作スタート

自分の環境(2022/08/26現在。WCAバージョン1.4 VCCバージョン0.34)ではこの手順で特に問題なくワールド作れています。

(2023/03/15 加筆
現在は、VCC上でVPMと呼ばれるカスタムパッケージを追加することが出来ます。そのため、アセットを沢山使ってワールド制作するスタイルでなければ、VCC側から普段使用するUnityアセットのフォルダを直に指定してあげて、新規プロジェクト作成時に自動的にインポートしてもらうというのも良い手かもなと思っています。
ですが、VCC2.0に上がった時に、プロジェクトファイルが消えた!とか色々な悲鳴が聞こえてきたので、きちんと情報収集してからVCCのバージョンを上げることをお勧めします。
アプリケーション関連でよくある定番の、最新版は怖いぞ!ってやつですね)

Bakery

ライトベイクを標準のライトベイクシステムより綺麗にしてくれるやつです。かなりの人が使用しています(当社比)

ライトベイクとは何ぞや!って記事もネットにごろごろ転がってるので、特に説明はしません。

まぁ、これで説明終わるのは味気ないのでオススメの記事を貼っておきます。個人的にここら辺押さえていればある程度使いこなせる気がします。

後半にBakeryの使い方が載っています。ここが一番スッキリまとまっている気がしています。

Bakeryの記事ではなく、標準のライトベイクシステムの説明ですが、各種項目が共通していたり、トラブルシューティングにも役立つと思うので、必読すべきかなと思っている素晴らしい記事です。

Bakery内にあるBakery Sectorという機能に関する記事。部分的にBakeができます。とても便利。
(2023/05/05 加筆。今は落雷さんのBakery Lightmap Groupの記事のほうをお勧めします。そちらのほうがBakerySectorよりも色々と便利です)
ただし、一度StaticにしたオブジェクトはStaticを外してもbakeされることがある謎仕様があり、黒焦げになるオブジェクトが稀に出てきます(体感)ライトマップの割り当てが変にされている感じっぽいので、複製して黒焦げになっている元オブジェクトを消せば特に問題はないです

Enhanced Hierarchy 2.0

個人的に愛用しているツール。Hierarchyにオブジェクトの活性・非活性ボタン、Staticボタン、ロックボタンが追加されるだけなのですが、HierarchyとInspectorを行き来する必要がなくなり、非常に快適です。
(確かもうちょっと機能があってカスタマイズできたはずですが、自分は十分に感じているのでそのままです)

無料で似たようなのもあるのですが、自分はこのレイアウトが一番しっくり来たので、これを使っています。

Mesh Combine Studio 2

メッシュを結合します。マテリアルとメッシュを結合するMeshBakerとかはよく知られていると思いますが、こちらはメッシュだけ結合します。

Combine押して数秒くらいで結合が終わります。爆速です。
あとマテリアルを触らないので見た目が変になることがほとんどなく、頭を悩ませることもありません。

注意点はMCSプレハブの下にオブジェクトを入れたままCombineすると、そのオブジェクトが消えます。Ctrl+Zでも戻りません。
結合するオブジェクトを入れる必要はないので、気を付けてください。

それ以外は結合解除すると元通りにしてくれるし、めっちゃいい子です。

Object Placement Tool

愛用している配置ツールです。動画を見てもらえれば分かるのですが、重力に従ってバラバラに配置したり、Coliderにそって沢山配置することができます。

コライダーさえあればどこにでも配置出来て、スケールや角度をランダムにでき、配置密度やブラシサイズなどを調整できます。

実はUnity標準ツールの中にPolybrushというのがあって、配置だけならそちらでできたはずですが、スケールや角度のランダム化が出来ないのでこちらを使っています。あと類似ツールは他にもあるので、探せば無料のやつがある気がします。

(2023/06/02 追記 バンドルに入ってたPrefab World Builderってアセットを触ってみたら完全に上位互換だったので、今はそっちを使ってます)

おわりに

他にもプロジェクトによって、入れたり入れなかったりするツールはあるのですが、必ず入れてるのはこのあたりです。

セットアップや軽量化でやたら時間を取られると、モチベーションがゴリゴリと削られていき、肝心のワールド作りに辿り着くのがしんどくなります。

ここらへんの便利ツールを使って少しでも楽をしていきましょう。
快適なワールド製作環境を追求してください。

長文の読了、お疲れさまでした。


おまけ:ワールド製作に使えそうな便利なツールリンクをいくつか


この記事が気に入ったらサポートをしてみませんか?