UnityのUの字もわからないレベルから始めるVRChatのワールド作り(基本編) ※古い記事です

# 注意
<b>この記事はとても古い内容が記載されています。</b>
Unityの基礎動作はおおよそ間違っていませんが、VRCSDK関係は今となってはほぼ嘘ばっかりです。


# 目標
自分のワールドをとりあえずアップロード出来るようになろう

# どの位の人向けなのか
Unityわからんがとりあえずアバターをアップロードしたことある位の人

# 用意するもの
・Unity 2018.4.20f1(記事を書いた当初は2017.4.15f1でした。)
・VRChatアカウント

# 新しいプロジェクトを立ち上げる
Newボタンを押します。赤い丸で囲まれたところです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399875/267c1929-683f-8750-93dc-b7e87e3755f8.png)


その後、名前を設定します。特に理由はありませんが全角文字を使うのは控えておきましょう。
<b>この名前がVRChatにUploadした時のワールド名になるわけではありません。</b>

3Dになってるのを確認したら「Create Project」ボタンを押してワールドを作りましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399875/ad4a2385-3f8d-c0d4-6ed2-b9c5b6a9cdeb.png)

# VRCSDKを導入しよう
<b>SDKはアバターと同一のものを使います。</b>最新のSDKを使うように心がけましょう。
https://www.vrchat.net/home
VRChat Homeにアクセスし、Downloadタブより、「Download VRChat SDK」を選択、VRCSDKをダウンロードします。

<b>2020/05/06追記</b>
SDK2をダウンロードして下さい。この記事を読んでる人にとってSDK3は手に余ります。![a (2).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399875/114d8eb4-c77c-402c-1c06-f2e682742de1.png)

UnityのAssets→Import Package→Custom Packageでもいいですが、Unityが起動している場合はダウンロードしたVRCSDKをダブルクリックするとインポートしてくれます。
以下の画面になったらImportボタンを押してImportします。


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399875/99133203-a9d3-3c4a-152c-5e467496917c.png)

インポートが完了したら矢印の所にVRChat SDKが出現します。
<b>VRChat SDKの中にある「Settings」タブより、ログインをしてください。</b>
また、一応「Future Proof Publish」のチェックを外しましょう。

この中の「Show Build Control Panel」を押します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399875/6b029ab6-afbd-f595-793d-5c7791b855ed.png)

たぶんこんな感じの画面が出てきたと思います。
上の「VRChat」と書かれたタブをInspectorの隣にドラッグすると後で少し楽です。(しなくてもいい)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399875/e94e2c7d-0d93-f7dc-e053-317102f59f26.png)



# とりあえず床を配置してみよう

左側にあるHierarchyの何もないところを右クリックして、「3D Object」→「Plane」を選択しましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399875/bb5344b3-1866-ddaf-12ee-dde514625642.png)

置きました。
置いたら、右側にあるInspectorの、「Position」の値を全て0に合わせます。(手入力)
<b>オブジェクトはなるべく整数あるいはキリのいい少数で管理しましょう。</b>

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399875/1f3f64eb-d3b3-4dfb-f1d2-a2a8a5862691.png)

# 鏡を置いてみよう
下にある「Project」タブの中の「Favorite」→「All Prefabs」を選択、「VRCMirror」を上の「Scene」タブへドラッグしましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399875/76675898-c7bc-3e6a-16b8-6176b5e42519.png)

すると、画面の様にたぶん四角い何かが出たと思います。これが鏡です。
(最近のSDKの更新でScene上に鏡の反射が出るようになりました。便利。)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399875/282055c6-234e-916b-007a-6699146341a9.png)


# 椅子を配置してみよう
鏡と同様に、下にある「Project」タブの中の「Favorite」→「All Prefabs」を選択、「VRCChair」を上の「Scene」タブへドラッグしましょう。

# 位置、向きを調節しよう
Unity上でのオブジェクトの回転や移動は左上のボタンで制御されています。
<b>左から二番目が移動、三番目が回転、四番目が拡大縮小です。</b>
Scene上のオブジェクトに表示されている<b>色のついた矢印を押しながら移動すると、その方向のみの移動</b>が出来ます。
また、<b>Ctrlキーを押しながら移動させることでグリッド移動</b>が出来ます。但し、画像のようにTransform(右上)の値が少数の時にグリッド移動をさせると、その数値のままグリッド移動します。整数になったりはしません。
また、Transformに数字を手入力しても動かせます。
(私はいつも0座標を基準にして手打ち入力とグリッド移動でごまかしています。)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399875/60bd1e04-3d16-b9ed-da10-7a034767a00c.png)

とりあえず鏡を端に寄せて椅子をその近くに動かしました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399875/4d6376fb-774e-8530-8e45-5787e52a2f38.png)

# VRCWorldを配置しよう
VRCWorldは、アバターで言うところの「VRC_Avatar Descriptor」です。
これを配置することでワールドとしてアップロードできるようになります。
また、<b>プレイヤーのスポーン位置は、デフォルトのままならVRCWorldの座標</b>になります。

下の画像の様に、「All Prefabs」の中にある「VRCWorld」をSceneに配置し、座標を0に合わせます。
「床にめり込むのが怖い」という人はY座標を0.5くらいにすると安心
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399875/9c89f18e-8107-fe54-2985-516307bcd0cb.png)






# ビルドしてみよう
VRChatのワールドは、公式のサーバーにアップロードしなくてもテストをすることが出来ます。
ローカル(サーバ経由ではない)なので、<b>誰かを呼ぶことはできません。</b>
また、<b>VR環境がない状態のローカルテストが出来たかはよく覚えてません。</b>(誰か教えて)

先の作業でVRChatタブがある人はそこをクリック
ない人は一番上の所の「VRChat SDK」より「Show Build Control Panel」を選択
「Setup Layers for VRChat」を押します。なんかいろいろ言われますが「Do it!」します。
同じ場所に出現する「Setup Collision Layer Matrix for VRChat」を押します。こっちも「Do it!」します。
<b>追記</b>
2018環境ではSDKの見た目が違いますが、押すボタンは同じです。


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399875/ebffb0df-31ff-5c46-c4c3-95adcd28ccc9.png)

二回「Do it!」するとたぶんボタンが明るくなります。
赤い丸で囲われた部分がテストビルドです。サーバにアップロードしないのでとても速いです。

Publishボタンを押すと、VRChatのサーバにアップロードされ、WorldメニューのMineタブに出現します。
<b>パブリック化されるわけではありません。</b>
(写真を用意したいのですがVRChatにInできないのでごめんなさい)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399875/30a85bd1-46a0-3047-bcb4-16ba9d0886ea.png)


とりあえずこれでワールドがアップロード出来る段階になります。
次から<b>自分で作ったモデルを設置</b>したり<b>当たり判定を工夫</b>したり<b>軽量化</b>したりしましょう。
[応用編はこちら](https://qiita.com/tamsco274/private/dfb66e8770b6ed65d025)