見出し画像

【VRChat】初心者だけどワールドを作りたい①(超基礎~ミラーの設置まで)

はじめに

どうもぱるちゃんです。
VRChatをやっていると、自分だけのワールドを作ってみたい!と思う方もそれなりにいらっしゃるのではないでしょうか。
でも「自分には難しそう」などと諦めてしまう方もたまにお見掛けします。
今回はそんな方に贈る、"超"初心者向けワールド制作記事です。

長くなりますので複数記事に分割します。

※2023/10/14追記
この一連の記事は「Udonだのなんだのよくわからないけど、この通り操作すればそれっぽいものが作れる」的な記事です。
記事を通してざっくりした流れをお伝えし、その先自分で調べてやっていける"土台"作りを支援できたらと思います。

作業環境

・Unity 2019.4.31f
・VCC(2023/10/09執筆時最新版)
この2点があれば記事に沿って進められると思います。
※2024/04/19追記
Unityが2022になりました。
VRChat指定verに、VCCを最新にした状態で読み替えていただければほぼ同じ手順で作れると思います。


この記事に沿ってワールドを作るのに必要なスキル

「自分には難しそう!」と思ったそこのあなた。
(私が思う)最低限必要なスキルは次の2点だけです!

〇アバターを指輪などのアイテムをつけてアップロードすることができる
→Trust RankがNew User以上、VCCもつかったことあるよ!ということです

〇記事を読み飛ばさずに操作を進めることができる

こうしてみると、意外とできそうじゃないですか?

ワールドとして成立するのに必要な要素

次に最低限何があったらワールドとして成立するのか、というお話です。
これは非常にシンプルで、以下の二つです。
①リスポーン地点(VRCworldのprefab)
②プレイヤーが立つことができる床などの面(コライダー)

厳密には①だけなのですが、②がないと無限落下するだけのワールドと化すので、実質的に①と②が最低限必要な要素となります。

それでは早速ワールドを作ってみましょう!

上記の①と②を満たす、最小構成のワールドを実際に作ってみましょう。
まず、VCCを起動して右上にある「Create New Project」を押します。

色んなファイルがあるのでみせることはできませんが、このボタンです。

続いてWorldを選択し、Project Nameのところにお好きな名前を付けてから下部にある「Create Project」を押します。今回私は「test」としました。
この辺りはアバタープロジェクトの手順とほとんど同じです。

Worldを選択、プロジェクトを作成。

それができましたら、右上にある「Open Project」を押してUnityを立ち上げましょう。
VCCが最新版でない場合、立ち上げる前に最新版に更新してください。

プロジェクトのManage画面。

Unityの画面が立ち上がりましたら、まず②のプレイヤーが立つための床を設置します。
Inspector部で右クリック→3D Object→Planeを押しましょう。

planeを選択。

そうすると、画面中央Scene上に白い板が現れると思います。
Planeはデフォルトでコライダー(今回はMesh Collider)がつけられていますので、これが既に立つための床として機能する状態です。

planeがScene上に出現しました。
Inspector内にMesh Colliderがありチェックが入っていることを確認してください。

続いて①のリスポーン地点を設置します。Project内の、
Packages→VRChat SDK - Worlds→Samples→UdonExampleScene→PrefabからVRCWorldを選択、Hierarchyにもってきましょう。

VRCWorldの場所。ちょっと遠い(?)ですね。
床の上にリスポーン地点ができました。

次にVRCWorldの高さがplaneと同じかそれ以上になっていることを確認します。
これがPlaneより低いと、コライダーはあるが、リスポーン地点がコライダー(床)より下にあるため立つことができず、無限落下してしまうので注意です。

念のため高さ確認してください。多分デフォルトのままでOKです。

これでワールドとして成立する最低条件が整いました!

アップロードしてみましょう!

最低限ワールドとしての体裁が整ったのでアップロードしてみたいと思います。
VRChat SDK→Show Control PanelでVRChat SDKのタブが立ち上がります。アバターの時同様ログイン/二段階認証をしていただき、Builderのタブまでたどり着いてください。
概ねアバターのアップロードと同じです。

アップロード画面

続いてワールドの情報を入力していきます。

World Info

World Info

・Name…ワールドの名前です。今回私は「test world」としました。(入力必須)

・Description…ワールドの説明です。必須ではありませんが何か書いておくと他の人がわかりやすいでしょう。

・Max.Capacity…ワールドに入れるMAXの人数です。入力必須です。こだわりがなければデフォルトのままでよいです。

・Rec.Capacity…ワールド推奨人数です。Max.Capacity≧Rec.Capacityとなるように設定してください。入力必須ですが、こちらもこだわりがなければそのままでよいです。

・Tags…ワールドに5つまでタグをつけることができます。つけておくと公開した時に検索に引っかかりやすくなるかもしれません。入力は任意です。今回は特に必要ありません。

・Content Warnings…所謂NSFWに該当するかです。該当するのであれば入力してください。今回(というか通常)は不要です。

・World Debugging…デバッグ関係です。基本的にチェックいれなくてよいです。

Thumbnail

アバターと同様これは必須です。
画像を選択してサムネイルとするか、Sceneからキャプチャしてサムネイルとするかを選択してサムネイルを設定してください。
アバターと全く同じなので割愛します。

Thumbnail設定画面

Validations~Build

・Validations
今回の状態であればEverything looks goodとなっているはずです。
何か問題があればそれが表示されるので従って修正することとなります。
このあたりもアバターとほとんど同じですね。

・Selected Platform
WindowsであればPC版、AndroidであればQuest版としてアップロードする、ということです。
このあたりもアバターと同じです。今回はWindowsのままで行きましょう。

・Build
最後にOnline Publishingの下にあるチェックボックスにチェックを入れ、「Build and Upload」を押すとワールドのアップロードが進みます。
成功すると「Upload Succeeded!」と表示されて完了です。

ワールドアップロードの最後の工程です。
このように表示されればアップロード完了です!

アップロードしたワールドを確認してみよう!

アップロードが完了していれば、ブラウザ版VRChatを開いたときに自分のプロフィール下に先ほどのワールドを見つけることができるでしょう。

アップロードしたワールド

確認できましたら実際に入ってみましょう。
VRChatにログインしてLaunch Pad→Worlds→My Worlds→Uploadedに先ほどアップロードしたワールドがあることでしょう。
(私は他にもワールドを上げているので他にも表示されていますが、初めてであれば先ほどアップロードした1つだけが表示されていると思います)
クリックして飛んでみましょう。

worldがアップロードされている
Joinしてみましょう。

はい、今回作ったワールドに入ることができました!
これにて最小構成のワールドの作成が完了しました。

初めてのワールド、上陸。

もう一声…っ!

ワールドをアップロードできたとはいえ、床とリスポーン地点だけでは虚無ですね。
ミラー・ペン・プレイヤーあたりが欲しいですよね?
ということで次の項ではミラーの設置についてお伝えします。
(長くなりますのでペン・プレイヤーについては次回以降にします)

ミラーの設置

みんな大好きミラーの設置方法です。
先ほどアップロードしたワールドのUnity画面に戻ります。
Packages→VRChat SDK - Worlds→Samples→UdonExampleScene→PrefabからVRCMirrorを選択して、Hierarchyにもってきましょう。

VRCWorldと同じ階層です。

Planeに突き刺さる形でミラーが出現したかと思います。
高さ・大きさなどお好きなように合わせてみてください。
今回私はリスポーン地点の目の前に出るようにしてみました。

ミラーが出現。
高さを調節、リスポーン地点の前に出るようにしてみました。

それでは先ほど同様にワールドをBuild and Uploadしてみましょう。
成功したらVRChat内で確認してみます。
恐らくミラーがあり映っているはずです。
ミラーが見当たらない場合、座標やミラーの向きが間違っていないか確認してみてください(裏面は透明です)。

ミラーを設置できました。

ミラー設置できたけども!

無事ミラーを設置できましたが、Launch Padやカメラが映っていていますね。
映っていてもよい/むしろ映っていてほしい場合は良いですが、大抵の場合は映っていないほうがよいでしょう。
というわけでそのあたりの最適化をやっていきましょう。

Hierarchy上のVRCMirrorを選択、右側のInspectorを見てください。
その中に「VRC Mirror Reflection (Script)」という項目があるかと思います。
この項目内がミラーの設定を行う部分になります。
更にその中の「Reflect Layers」のドロップダウンをクリックしてみてください。ずらずらと出てきますね。

Reflection Layersのドロップダウン

この部分でどのレイヤーを映すかを選択するわけです。デフォルトでは全て映る状態になっています。
Launch Padおよびカメラは
・UI
・UIMenu
・reserved2
が該当しますので、これらをオフにしてみてください。

この状態で再度アップロードしてワールドを確認してみましょう。
映らないようになっていると思います。

こうなっていれば成功です。
今度はLaunch Padやカメラが映っていません!

(応用編)ミラー設定

※この項目はあくまでおまけです。飛ばしてもOKです。
先ほどミラーのReflect Layersを設定し、カメラ等が映らないようにしました。
逆に言えば他のレイヤーに割り振られているものをオフにすればそれも非表示にできます。
(詳しいレイヤーの役割については説明しません、というか私もあやふやです)
例えば…
・プレイヤーだけが映るミラー(プレイヤーオンリーミラー)
Player、PlayerLocal、MirrorReflectionだけをオンにします。
床(Defaultレイヤー)が映らずアバターだけが映るはずです。

プレイヤーオンリーミラー
床が映らずアバターだが映っています。

設置物のレイヤー割り振りはInspector内で確認できます。
大抵のものは下の図のようにDefaultレイヤーが初期で割り振られています。

PlaneはDefaultレイヤー

レイヤーは自分で変える/作ることもできます。
即ち今後たくさんのものを設置していったときに、設置物ごとにレイヤー分け・Reflect Layersの設定を行えば、ミラーに映る/映らないを制御できるわけです。
今は特に意識する必要はありませんが、いつか負荷軽減と向き合うときには重要になってきます。

おわりに

今回は床とミラーだけのワールドを作るところまでを説明してみました。
次回はペンやプレイヤーの設置について説明できたらと思います。
お付き合いいただきありがとうございました。
次回もよろしくお願いします。

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