4
1

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 1 year has passed since last update.

【VRChat】Udonって何?

Last updated at Posted at 2022-02-14

大雑把に言うと

VRChatのSDK3で追加された、ギミック作成のための仕組みです。
SDK3でのワールドギミックの殆どはUdonで作られていると思って問題ないでしょう。

もう少し詳しく

Udonはプログラミング言語で、作った処理をGameObjectに付けて動作させることが出来ます。
有名な作成方法は幾つかあり、

  • UdonGraph
    SDK3に備え付けの方法です。
    任天堂の「はじめてゲームプログラミング」みたいな感じで、処理・データ同士を線で繋いで作ります。
    こちらで作ってみたい方は、私の入門記事が参考になるかもしれません。サンプルはBoothにも無料で配布しています。
    【VRChat】Udon Graph 入門【SDK3】

  • UdonSharp
    別途アセットを導入することで使える方法です。(SDK3.4.0からはSDK側に1.x系が統合されるという話があります)
    テキストベースでUdonの処理が書けるため、プログラミングに馴染みのある方はこちらを好む傾向にあると思います。
    VCC以前で利用されていたのは0.x系、VCC経由で導入可能なものは1.x系であり、互換性があまり無いため注意が必要です。(自動変換は付いていますが、上手く変換されずに壊れることがあります)
    VCCから導入出来るSDKをご利用の方は1.x系を利用しましょう。
    旧リンク: https://github.com/MerlinVR/UdonSharp/
    新リンク: https://github.com/vrchat-community/UdonSharp/

などがあります。

更に詳しく

「Udon」と一口に言っても、文脈によって意味合いが少し異なります。
そのため、ここまでに出した単語についても改めて記述したいと思います。

"Udon"とUdon VMについて

一般に"Udon"というと"SDK3でのワールドギミック作成手段"のことを指しますが、厳密には、UdonはUdon Assembly(後述)から生成されたバイトコードを実行するVMであり、文脈によってはこちらを指す場合があります。
UdonGraphもUdonSharpも、実際には全てUdon Assemblyに変換(コンパイル)され、実行されています。
そのため、Udon AssemblyやVM用のバイトコードに変換する機構(Unityエディタ拡張)を作成することで、自由に言語を作ることが出来ます。
実際に、UdonSharp以外にもUdonを扱う方法を有志が作成しており、例えばCyanTriggerなどがあります。

なお、私が知っているUdon VMの重要な仕様として、変数512個分しかヒープ領域が用意されていない、というものがあります。
他にも色々あるかもしれません。

Udon Assemblyについて

Udon Assemblyはアセンブリ言語のようなプログラミング言語です。
Udon VMで実行するためのバイトコードに対応しているため、自作コンパイラはバイトコードを直接生成せずにUdon Assemblyを中継することが出来ます。

Udon Graphについて

UdonGraphは公式が提供するノード型のビジュアルプログラミング言語です。
VRChatが用意したAPIやUnity/C#のメソッド等をノードで扱います。
複雑なものを作ると、ノードを置くたびに数秒待たされることになったりするため、本格的なものを作るにはあまり向いていない面もあります。

Udon Sharpについて

UdonSharpはMerlin氏が作成した、C#風に記述できるプログラミング言語です。
Udonの仕様上、本来のC#ほど自由には記述出来ませんが、それでも非常に有用です。
複雑なものを作るための方法として選ぶ人は多いです。

4
1
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
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?