14
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

VRChatでワールドをアップロードする(Udonもちょっとだけこねる)

Last updated at Posted at 2021-01-21

この記事はリンク情報システムの勝手に始める「2021新春アドベントカレンダー Tech Connect」のリレー記事です。
engineer.hanzomon のグループメンバによってリレーされています。
(リンク情報システムのFacebookはこちらから)


年末年始にVertual Market5があったりなどしてVRChatのワールドをいじってみたい欲が少しでたので今回は簡単にワールドアップロードの流れを勉強しようかと思います。
その過程でいじる予定のなかったUdonを少しいじることにもなりましたが・・・。
まぁとにかくそんな感じでワールド作成していこうと思います。

プロジェクト作成

まずはともあれプロジェクト作成です。
UnityHubから2018.4.20f1を選択、テンプレートは3Dを選択して新しいプロジェクトを作成します。
qiita_1.jpg

VRChatSDKのインポート

VRChatのワールドをアップロードするためにVRChatSDKをまずダウンロードしてきます。

ひとまずVRChatのHPにログインし、Downloadのページを開きます。
qiita_3.jpg
SDK2とSDK3がありますがUdonを使う場合はSDK3、古いトリガーなどを使う場合はSDK2をダウンロードしてください。
(VRChatに実装するプログラミング言語『Udon』とは?)
今回は大したことする予定はないのでどちらでもいいのですがせっかくなので新しいSDK3を持ってくることにします。
qiita_2.jpg
ダウンロードしたunitypackageをD&DでUnity画面に放り込み、出てきたダイアログでImportボタンを押せばインポート完了です。
qiita_4.jpg

ワールドを作っていく

まずは下準備としてProjectタブ内のVRChat Example>Prefabs>VRCWorldをHierarchyに突っ込みます。
qiita_5.jpg

とりあえず床を作る

上部メニューのGameObject>3D Object>Planeを選択します。
これで床ができました。
qiita_6.jpg

空を作る

地ができたので次は天を作りましょう。
AssetStoreを開いてskyboxで検索してみます。
今回はフリーのものがあったのでAllSky Freeを使います。
ということでダウンロードしてインポートしておきます。
qiita_9.jpg
インポートしたらフォルダの中から好きなマテリアルを選択してSceneに放り込みます。
これで空ができました。
qiita_10.jpg

ミラーを作る

次にミラーを作ります。
VRChat民はミラーに集まる修正があるのでこれが最重要と言っても過言ではありません。
床とミラーがあればワールドとして完成みたいなところある。

まずはProjectタブ内のVRChat Example>Prefabs>VRCMirrorをHierarchyに突っ込みます。
qiita_11.jpg
これでミラーとしては完成です。

ミラーをON/OFFできるようにする

ミラーはできました。
が、ミラーはON/OFFできてほしい民なのでON/OFFボタンも作っていこうと思います。
まずはボタン用にキューブを生成します。
ついでに大きさ調整でTransform欄から0.50.50.5に変更しておきます。
qiita_12.jpg

ここで問題が一つでてきました。
とりあえずここでトリガーをつければOK!だと思っていたのですが、今回なんとなくでSDK3を使っているのでそういうわけにはいかないようで、Udonをこねないといけなくなりました。
大した事する予定ないしどっちでもええやろSDK3にしよ!と適当に決めたことを若干後悔しつつ・・・
とりあえずキューブのAdd ComponentからUdon Behaviorを追加します。
Program Sourceの下にあるプルダウンからUdonGraphProgramAssetを選択し、New Programをクリックします。
qiita_15.jpg
するとOpen Udon Graphボタンが表示されるのでこれをクリックしてUdon Graph画面を表示します。
qiita_16.jpg
下のような編集画面が表示されます。
Udonはノードベースでプログラムを行うのでここからノードを足したりつなげたりしていきます。
とりあえずHierarchyから使いそうなcubeとVRCMirrorをD&DしたところVariablesに追加されました。
使うかわかりませんがこのまま進めてしまいます。
qiita_17.jpg
次に今回はインタラクトしたときにMirrorのON/OFFを行うためインタラクトのNodeを追加します。
右クリックメニューからCreate Nodeを選択し、出てきた画面でEvents>Event Interactを選択します。
ついでにON/OFF用に同じようにUnityEngine>GameObject>SetActiveを追加しておきます。
qiita_18.jpg
下のように追加されました。
qiita_19.jpg
ここから線をつなげていきます。
InteractとSetActive、VRCMirrorのGameObjectとSetActiveのinstanceをつなげます。
ONにしたいのでvalueにチェックも入れておきます。
qiita_20.jpg
ミラーは初期非表示にしたいのでInspectorのチェックは外しておきます。
これで準備OKなはず!
qiita_21.jpg

ワールドのテストとアップロード

準備

アバターのアップロードと同様に上部メニューのVRChat SDKからShow Control Panelを選択し、コントロールパネルを表示します。
BuilderタブにSetup Layers for VRChatボタンがあるのでクリックし、表示されたダイアログでDo it!をクリックします。
qiita_22.jpg
次にSet Collision Matrixボタンが出てくるので同じくクリックしてダイアログもDo it!をクリックして進めます。
qiita_23.jpg
すると下のような画面になると思います。
見ての通りテストとアップロードですね。
今回はVRで確認しないといけないようなものはないのでForce Non-VRにチェックを入れてBuild & Testをクリックします。
これでデスクトップモードでVRChatが開きヨシ!となるはずでしたがいくつか問題が・・・・・・
qiita_27.jpg

問題と解決

  1. なぜかVRモードで起動する
    Force Non-VRにチェックを入れたのになぜかVRモードで起動しました。
    どうして・・・と思っていたらどうやらVRChatのクライアントパスが間違えていた様子。
    コントロールパネルSettingsタブのVRchat Clientを正しく修正するとデスクトップモードで起動しました。

  2. 作ったワールドではなくホームに戻される
    デスクトップモードで起動して安心していたところテストしようとしたワールドではなくホームに飛ばされました。
    結構ここで詰まったのですが下記ページの対策Bで何とかなりました。
    確かにログを見たところAllSkyFreeのファイルが原因でエラーとなっていたようで該当ファイルを削除したところ問題なくテストできました。
    “Last built VRChat scene could not be found” エラー

  3. ミラーが表示されない
    テストもできるようになったしギミックもミラーのON/OFFのみなので問題ないでしょうと思ってたわけですが、まぁそのミラーがキューブをインタラクトしても表示されませんでした。
    どういうことなのかと確認していたところキューブに追加したUdon BehaviourPublic Variablesが増えていることに気が付きました。
    なるほど?ということでここのVRCMirrorにHierarchyのVRCMirrorをD&Dしたところ表示されるようになりました。
    Udon GraphにD&Dして作ったんだから設定されてるのかと思いきやそういうわけではないんですね・・・。
    qiita_24.jpg

  4. ミラーがOFFにならない
    さてミラーも表示されたしもうこれで問題はないでしょう。
    いえ、今度は表示されたミラーが消えないという問題が・・・。
    まぁ冷静に先ほどつくったUdonを見てみると消す処理なんてどこにも書いてないですよね・・・。
    消えてたら出す、出てたら消すなので分岐が必要?とか別の変数に状態持ってないとダメ?とか色々試行錯誤した結果下の形でON/OFFができるようになりました。
    なお最初になんとなく突っ込んだCubeは結局使わなかったのでここでは残ってますが消したほうがよさそうです。
    qiita_28.jpg

ワールドのアップロード

なんとか問題も解決したのでワールドを実際にアップロードしていきます。
Build & Publish for Windowsボタンを押すとGameタブが下のような画面になります。
必要項目を入力してUploadボタンを押すとアップロードできます。
qiita_25.jpg
下のような画面が出たらOKです。
qiita_26.jpg
無事にアップロードできました!
VRChat_1920x1080_2021-01-18_00-10-50.196.png

終わりに

いつものように突貫工事でしたがなんとかアップロードまではいけました。
触る予定のなかったUdonにも少し触ることができたので上々ではないでしょうか。
こういう形でプログラムを組むのは初めてですが結構楽しかったのでUdonももう少しいじってみたいですね。
実際にいじるのがいつになるかはわかりませんが・・・。

参考

Udon Graph エディタ ガイド (2020/6月版)
【VRchat】~初めてワールド 作成してみますか?~【前半】

14
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?