Hello world! 【#1 VR初心者がVRChatのworldを作る話】
はじめまして。小佐田と申します。
最近知り合いの紹介でVRChatを始めて、その美しいワールドに心を奪われるようになりました。(なお、まだVRゴーグルは持っていないのでDesktop版です)
このように進んでいると、あーこんな世界があればなー、なんて思ったりするものです。
ということで、自分でもWorldを作ってみたい! ゆくゆくはライブハウスのようなワールドを作ってイベントなんか開催してみたい!
ということで、UnityとC#の世界に足を踏み入れていくのでございます。
(日記、備忘録のつもりで書いていくので至らぬところあると思いますが、そこは温かく見守ってくださると幸いです)
今回の目標(Hello world!のワールド)
何もない世界の真ん中に箱が表示されている
箱のスイッチみたいなものを押すと「Hello world!」が表示される
やっぱり学習の一番最初には画面上に`Hello world!`って表示してみたいじゃないですか。画面上に文字を表示したり、ギミックを動かしたりするときにどのようにコードが組まれているか確認するために、そんなワールドを作ろうと思い立ちました。
環境の構築(UnityとVR用の拡張機能)
最低限必要なものは次の通りです。
Unity (2019.4.31f1)
VRChat SDK
VRChat Creator Companion
VRChat SDKはVRChat用のアバターやワールドを作成するためのUnityモジュールとなります。これをダウンロードします。
また、VRChat Creator Companion(以後VCC)からプロジェクトを作成することが推奨されているので、こちらもダウンロードしましょう(1敗)。
まず、プロジェクトを作成します
VCCからNew Projectを選択。Worlds U#を選択して諸々入力したのちにCreate Projectを押します。
Manage Packageが出てきますが、そのまま`Open Project`を押します。
上部メニューから VRChat SDK -> Show Control Panel -> Authenticationを開いてVRChatのアカウントにサインインします。
床を設置 & VRCWorld.prefabを設置
`Hierarchy`で右クリック -> 3D Object -> Planeを選択します。
`Project`の中の検索バーに`vrcworld`と入力してSearch欄を`all`にする。
見つかった`VRCWorld.prefab`を`Hierarchy`にドラッグ&ドロップする。
メインのオブジェクトを設置
`Hierarchy`で右クリック -> 3D Object -> Cubeを選択します。
`Inspector`の下部`Add Component`を押して`Udon Behaviourを追加。
Udon C# Program Assetが選択されていることを確認して`New Program`を押します。(作成できない場合はSceneの保存も試してみてください)
作成したcsファイルを開きます。まずはちゃんとオブジェクトが動くことを確認したいのでこのCube Objectを回転させてみましょう。
using UdonSharp;
using UnityEngine;
using VRC.SDKBase;
using VRC.Udon;
public class Cube : UdonSharpBehaviour
{
void Start()
{
}
void Update(){
this.gameObject.transform.Rotate(Vector3.up, 90f * Time.deltaTime);
}
}
回転するようになりました。
Hello Worldのオブジェクトを出現させるスイッチに変えてみる
using UdonSharp;
using UnityEngine;
using VRC.SDKBase;
using VRC.Udon;
public class Cube : UdonSharpBehaviour
{
[SerializeField] private GameObject target;
void Start()
{
}
void Update(){
this.gameObject.transform.Rotate(Vector3.up, 90f * Time.deltaTime);
}
public override void Interact(){
target.SetActive(!target.activeSelf);
}
}
`[SerializeField] private GameObject target;`を書くことで、Inspectorからターゲットを選択することができます。今回は`Hello World!`の文字のオブジェクトを指定してみました。
無事、Hello Worldが表示できましたね。
今後も、UnityでVRChatのworldを作る過程をこのようにnoteで書くかもしれないので、その際はまた読んでいただけると嬉しいですね。
それでは。
今回の内容のGithubレポジトリ
追記 U# Scriptが選択できなかった話
最初U# Scriptが作成できず、Udon C# Program Assetも選択できず詰みかけました。色々調べてみたところVCCからプロジェクトを作成することが推奨されているようでした。というか、おそらくVCC以外からだとうまくプロジェクトが作成できないようです。
兎にも角にも、VCCから作成する方がうまくいくようです。
この記事が気に入ったらサポートをしてみませんか?