#概要
この記事は、ゼロから環境を構築して、UDONでScriptを書いて、キューブをY軸中心に回転させる手順を示すものである。
#経緯
何やらUDONと言うプログラミング言語があるらしい。
VRChatで偶に遊んでいる私が、Unityでのゲーム作りを勉強するついでに、ちょろっとやってみようと考えた。
PCも新調した事だし、UDONでの開発環境構築と、その確認をするところまでやってみようではないか。
#環境構築
まず初めに、必要なもののダウンロード及びインストールを行う。
##ダウンロード及びインストール一覧(2020年5月2日現在)
必要なソフトとインストール先の一覧は以下に示す。
特に詰まることもないと思われるため、詳細は割愛する。
1.UnityHub
以下のページからダウンロードしてインストール
https://unity3d.com/jp/get-unity/download
2.Unity 2018.4.20f1
UnityHubインストール後、以下をブラウザのアドレスバーに入力して実行
unityhub://2018.4.20f1/008688490035
3.VRCHAT SDK3 + UDON [LIVE ALPHA]
VRChat公式ページからダウンロード(要ログイン)
https://vrchat.com/home/download
4.UdonSharp_v0.15.9.unitypackage
GitHubからダウンロード。
https://github.com/Merlin-san/UdonSharp/releases
##VRChatSDK及びUdonSharpを導入したプロジェクトの作成
Unityで新規プロジェクトを作成し、SDKを導入する。
1.プロジェクト作成
UnityHub画面左の「プロジェクト」を選択し、「新規作成」をクリックする。
もしバージョンの選択画面が出現すれば「Unity 2018.4.20f1」を選択する。
2.テンプレートの選択
テンプレートを「3D」プロジェクト名及び保存先を任意に設定し「作成」をクリックする。
注意!
アップデートを促す画面が出現するが、アップデートしないように。VRChat向けに何かを作ることが目的ならば、公式からバージョン変更のお触れが出るまではそのままのバージョンで使い続けること。
「Check for Update」のチェックを外して「Skip new version」を選択する。
3.VRCHAT SDK3 + UDON [LIVE ALPHA]の導入
対象のファイルをAssetsにドラッグアンドドロップでも良いのだが、今回はマウスを使わなくてもできる方法で導入する。
Unity画面上の左上から「Assets」→「ImportPackge」→「CustomPackage」を選択
「ダウンロード及びインストール一覧」の章でダウンロードした「VRCSDK3-UDON~」を選択
4.インポート内容の確認
暫く待機(結構長かった)していたらインポート確認の画面が出現するので「Import」をクリックする。
今回はデフォルトだが、もし何か手を加える必要があればここで設定を行う。
暫く待てば(これが結構長い)インポートが完了して「UDONのさらなる進展のためにバグの報告にご協力ください。ついでにこれまでのUDONの歴史はこんな感じです」という趣旨のポップアップが出現する。とりあえず今回はそのポップアップは無視して閉じた。
5.UdonSharpの導入
やることはUDONそのものの導入と一緒で、「Assets」→「ImportPackge」→「CustomPackage」を選択して「UdonSharp_v0.15.9.unitypackage」をインポートする。
#UDONをこねてみる
当初は「HellowWorld」とか書き出そうとか思っていたが、Unityの標準出力を知らないため、「U#でキューブを回転させる」ことを目標に実施する。
##scriptファイルのアタッチ
1.Cubeを作成
デフォルトだと画面左の「Hierarchy」タブで右クリックして「3DObject」→「Cube」を選択して作成
2.udon Behaviourの追加
「Hierarchy」タブで「Cube」を選択して「Inspector」タブの「Add Component」から「udon Behaviour」を選択する。
3.Udon C# Program Assetを選択して、New Programをクリック
4.アタッチ
「Create Script」をクリック。保存先・ファイル名を決定してC#ファイルを作成する。
##script編集
作成されたscriptファイルを開いて、以下の通りに書き換えた。
using UdonSharp;
using UnityEngine;
using VRC.SDKBase;
using VRC.Udon;
public class CubeRoll : UdonSharpBehaviour
{
void Update()
{
transform.Rotate(new Vector3(0, 5, 0));
}
}
雑解説
・void Update()
毎フレーム呼び出されるメソッド。
・transform.Rotate(new Vector3(0, 5, 0));
Y軸に5度回転する
・全部合わせて
箱が毎フレームY軸に5度回転する
これを上書き保存して「Force Compile Script」を実行。
##完成
Unityでキューブが移るようにカメラを調整して実行すれば、キューブが回転している様子が映って完了となる。
#参考にさせていただきましたサイト一覧
Getting Started with Udon
https://ask.vrchat.com/t/getting-started-with-udon/80
U# 入門 ①
https://hatuxes.hatenablog.jp/entry/2020/04/05/013310